Merge branch 'master' into improve_history_localization

This commit is contained in:
Daniel Atwood 2020-11-08 13:26:41 +01:00 committed by GitHub
commit a98fa269ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
115 changed files with 13325 additions and 1129 deletions

6
.gitignore vendored
View file

@ -1,4 +1,3 @@
ihatemoney.cfg
*.pyc *.pyc
*.egg-info *.egg-info
dist dist
@ -13,3 +12,8 @@ build
.pytest_cache .pytest_cache
ihatemoney/budget.db ihatemoney/budget.db
.idea/ .idea/
.envrc
.DS_Store
.idea
.python-version

View file

@ -3,13 +3,72 @@ Changelog
This document describes changes between each past release. This document describes changes between each past release.
4.2 (unreleased) 5.0.0 (unreleased)
================ ==================
Breaking changes
----------------
- Drop support for Python 2 (#483)
- Drop support for Python 3.5 (#571)
The minimum supported version is now Python 3.6
Added
-----
- Allow to import previously exported json data (#518)
- Add new optional field "external link" in bill form (#429)
- Add currencies to project and bills (#541)
- Add new statistics showing monthly expenses (#526)
- Add pagination to the list of bills (#480)
- Add sorting, pagination, and searching to the admin dashboard (#538)
- Add Project History page that records all changes (#553)
- Add token-based authentication to the API (#504)
- Add translations for Hindi, Portuguese (Brazil), Tamil
Changed
-------
- Add support for espanol latino america (es_419)
- Use the external debts lib to solve settlements (#476) - Use the external debts lib to solve settlements (#476)
- Remove balance column in statistics view (#323) - Remove balance column in statistics view (#323)
- Remove requirements files in favor of setup.cfg pinning (#558) - Make language choice persistent (#547)
Fixed
-----
- Improve input of email addresses when inviting people to join a project (#133)
4.1.4 (2020-06-07)
==================
This is a bugfix-only release. It is almost certainly the last release to support Python 2:
you should upgrade to Python 3!
Fixed
-----
- Fix failed installation because dependencies were not being pinned (#540, #545, #558)
- backend: Trim usernames to remove leading or trailing spaces. This avoids a situation where different names can be visually identical (#367)
- backend: Fix API to forbid project creation when the `ALLOW_PUBLIC_PROJECT_CREATION` setting is set to false (#496)
- backend: Fix crash when a localized email template is missing (#592)
- backend: Fix language code parsing (#589)
- backend: Improve error handling when sending emails (#595)
- UI: Fix datepicker that was being displayed twice on some browsers (#221)
- UI: Fix "Submit and add a new one" button that had no effect when adding a bill (#498)
- UI: Prevent bill cancellation when cancelling autocomplete (#506)
- UI: Fix responsive width of homepage on small screns (#549)
- UI: Fix color of the "Add a member" button (#499)
- UI: Fix missing HTML tag (#583)
- UI: Fix a small typo in the french project-reminder email (#486)
- UI: Fix typo on message displayed when adding a member (#575)
- UI: Fix incorrect tool-tip message about the private code (#623)
Added
-----
- Add translations for German, Spanish (latin-america), Norwegian (bokmål), Indonesian, Polish, Russian, Chinese, Turkish, Ukrainian
- Update translations for all languages
4.1.3 (2019-09-18) 4.1.3 (2019-09-18)
================== ==================

View file

@ -45,3 +45,5 @@ THANOS SIOURDAKIS
Toover Toover
Xavier Mehrenberger Xavier Mehrenberger
zorun zorun
The manual drawings are from Coline Billon, they are under CC BY 4.0.

View file

@ -1,4 +1,4 @@
VIRTUALENV = virtualenv --python=python3 VIRTUALENV = python3 -m venv
SPHINX_BUILDDIR = docs/_build SPHINX_BUILDDIR = docs/_build
VENV := $(shell realpath $${VIRTUAL_ENV-.venv}) VENV := $(shell realpath $${VIRTUAL_ENV-.venv})
PYTHON = $(VENV)/bin/python3 PYTHON = $(VENV)/bin/python3
@ -50,7 +50,7 @@ black: install-dev ## Run the tests
.PHONY: isort .PHONY: isort
isort: install-dev ## Run the tests isort: install-dev ## Run the tests
$(VENV)/bin/isort -rc . $(VENV)/bin/isort .
.PHONY: release .PHONY: release
release: install-dev ## Release a new version (see https://ihatemoney.readthedocs.io/en/latest/contributing.html#how-to-release) release: install-dev ## Release a new version (see https://ihatemoney.readthedocs.io/en/latest/contributing.html#how-to-release)

View file

@ -67,7 +67,7 @@ If System :ref:`installation-requirements` are fulfilled, you can just issue::
make serve make serve
It will setup a `virtualenv <https://pypi.python.org/pypi/virtualenv>`_, It will setup a `Virtual environment <https://docs.python.org/3/tutorial/venv.html>`_,
install dependencies, and run the test server. install dependencies, and run the test server.
The hard way The hard way
@ -193,7 +193,7 @@ The documentation is using `sphinx <http://www.sphinx-doc.org/en/stable/>`_ and
its source is located inside the `docs folder its source is located inside the `docs folder
<https://github.com/spiral-project/ihatemoney/tree/master/docs>`_. <https://github.com/spiral-project/ihatemoney/tree/master/docs>`_.
Install doc dependencies (within the virtualenv, if any):: Install doc dependencies (within the virtual environment, if any)::
pip install -r docs/requirements.txt pip install -r docs/requirements.txt

View file

@ -1,3 +1,5 @@
.. _installation:
Installation Installation
############ ############
@ -19,9 +21,9 @@ Requirements
* **Python**: either 3.6, 3.7 or 3.8 will work. * **Python**: either 3.6, 3.7 or 3.8 will work.
* **A Backend**: to choose among MySQL, PostgreSQL, SQLite or Memory. * **A Backend**: to choose among MySQL, PostgreSQL, SQLite or Memory.
* **Virtualenv** (recommended): `virtualenv` package under Debian/Ubuntu. * **Virtual environment** (recommended): `python3-venv` package under Debian/Ubuntu.
We recommend to use `virtualenv <https://pypi.python.org/pypi/virtualenv>`_ but We recommend to use `virtual environment <https://docs.python.org/3/tutorial/venv.html>`_ but
it will work without if you prefer. it will work without if you prefer.
If wondering about the backend, SQLite is the simplest and will work fine for If wondering about the backend, SQLite is the simplest and will work fine for
@ -31,16 +33,16 @@ most small to medium setups.
.. _virtualenv-preparation: .. _virtualenv-preparation:
Prepare virtualenv (recommended) Prepare virtual environment (recommended)
================================ =========================================
Choose an installation path, here `/home/john/ihatemoney`. Choose an installation path, here `/home/john/ihatemoney`.
Create a virtualenv:: Create a virtual environment::
virtualenv -p /usr/bin/python3 /home/john/ihatemoney python3 -m venv /home/john/ihatemoney
Activate the virtualenv:: Activate the virtual environment::
source /home/john/ihatemoney/bin/activate source /home/john/ihatemoney/bin/activate
@ -72,7 +74,7 @@ Configure database with MySQL/MariaDB (optional)
apt install python3-dev libssl-dev apt install python3-dev libssl-dev
2. Install PyMySQL (within your virtualenv):: 2. Install PyMySQL (within your virtual environment)::
pip install 'PyMySQL>=0.9,<0.10' pip install 'PyMySQL>=0.9,<0.10'
@ -85,7 +87,7 @@ Configure database with PostgreSQL (optional)
.. note:: Only required if you use Postgresql. .. note:: Only required if you use Postgresql.
1. Install python driver for PostgreSQL (from within your virtualenv):: 1. Install python driver for PostgreSQL (from within your virtual environment)::
pip install psycopg2 pip install psycopg2

View file

@ -1,2 +1,2 @@
Sphinx==3.0.2 Sphinx==3.3.0
docutils==0.16 docutils==0.16

View file

@ -15,7 +15,7 @@ General procedure
*(sufficient for minor/patch upgrades)* *(sufficient for minor/patch upgrades)*
1. From the virtualenv (if any):: 1. From the virtual environment (if any)::
pip install -U ihatemoney pip install -U ihatemoney
@ -35,6 +35,37 @@ Version-specific instructions
When upgrading from a major version to another, you **must** follow special When upgrading from a major version to another, you **must** follow special
instructions: instructions:
4.x → 5.x
---------
Switch to a supported version of Python
+++++++++++++++++++++++++++++++++++++++
.. note:: If you are already using Python ≥ 3.6, you can skip this section, no
special action is required.
If you were running IHateMoney using Python < 3.6, you must, **before** upgrading:
1. Ensure to have a Python ≥ 3.6 available on your system
2. Rebuild your virtual environment (if any). It will *not* alter your database nor configuration. For example, if your virtual environment is in `/home/john/ihatemoney/`::
rm -rf /home/john/ihatemoney
pyhton3 -m venv /home/john/ihatemoney
source /home/john/ihatemoney/bin/activate
You might need to ``pip install`` additional dependencies if you are using one
or several of the following deployment options :
- Gunicorn (Nginx)
- MySQL
- PostgreSQL
If so, pick the ``pip`` commands to use in the relevant section(s) of
:ref:`installation`.
Then follow :ref:`general-procedure` from step 1. in order to complete the update.
2.x → 3.x 2.x → 3.x
--------- ---------
@ -58,7 +89,7 @@ development only.
1. Delete the cloned folder 1. Delete the cloned folder
.. note:: If you are using a virtualenv, then the following commands should be run inside it (see .. note:: If you are using a virtual environment, then the following commands should be run inside it (see
:ref:`virtualenv-preparation`). :ref:`virtualenv-preparation`).

View file

@ -85,7 +85,7 @@ class ProjectStatsHandler(Resource):
class APIMemberForm(MemberForm): class APIMemberForm(MemberForm):
""" Member is not disablable via a Form. """Member is not disablable via a Form.
But we want Member.enabled to be togglable via the API. But we want Member.enabled to be togglable via the API.
""" """

View file

@ -11,8 +11,7 @@
<Directory {{ pkg_path }}> <Directory {{ pkg_path }}>
WSGIProcessGroup ihatemoney WSGIProcessGroup ihatemoney
WSGIApplicationGroup %{GLOBAL} WSGIApplicationGroup %{GLOBAL}
Order deny,allow Require all granted
Allow from all
</Directory> </Directory>
Alias /static/ {{ pkg_path }}/static/ Alias /static/ {{ pkg_path }}/static/

View file

@ -8,7 +8,7 @@ DEBUG = False
# The database URI, reprensenting the type of database and how to connect to it. # The database URI, reprensenting the type of database and how to connect to it.
# Enter an absolute path here. # Enter an absolute path here.
SQLALCHEMY_DATABASE_URI = 'sqlite:///var/lib/ihatemoney/ihatemoney.sqlite' SQLALCHEMY_DATABASE_URI = 'sqlite:////var/lib/ihatemoney/ihatemoney.sqlite'
SQLACHEMY_ECHO = DEBUG SQLACHEMY_ECHO = DEBUG
# Will likely become the default value in flask-sqlalchemy >=3 ; could be removed # Will likely become the default value in flask-sqlalchemy >=3 ; could be removed

View file

@ -0,0 +1,50 @@
from cachetools import TTLCache, cached
import requests
class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]
class CurrencyConverter(object, metaclass=Singleton):
# Get exchange rates
no_currency = "XXX"
api_url = "https://api.exchangeratesapi.io/latest?base=USD"
def __init__(self):
pass
@cached(cache=TTLCache(maxsize=1, ttl=86400))
def get_rates(self):
rates = requests.get(self.api_url).json()["rates"]
rates[self.no_currency] = 1.0
return rates
def get_currencies(self, with_no_currency=True):
rates = [
rate
for rate in self.get_rates()
if with_no_currency or rate != self.no_currency
]
rates.sort(key=lambda rate: "" if rate == self.no_currency else rate)
return rates
def exchange_currency(self, amount, source_currency, dest_currency):
if (
source_currency == dest_currency
or source_currency == self.no_currency
or dest_currency == self.no_currency
):
return amount
rates = self.get_rates()
source_rate = rates[source_currency]
dest_rate = rates[dest_currency]
new_amount = (float(amount) / source_rate) * dest_rate
# round to two digits because we are dealing with money
return round(new_amount, 2)

View file

@ -8,4 +8,20 @@ ACTIVATE_DEMO_PROJECT = True
ADMIN_PASSWORD = "" ADMIN_PASSWORD = ""
ALLOW_PUBLIC_PROJECT_CREATION = True ALLOW_PUBLIC_PROJECT_CREATION = True
ACTIVATE_ADMIN_DASHBOARD = False ACTIVATE_ADMIN_DASHBOARD = False
SUPPORTED_LANGUAGES = ["en", "fr", "de", "nl", "es_419", "nb_NO", "id"] SUPPORTED_LANGUAGES = [
"de",
"en",
"es_419",
"fr",
"hi",
"id",
"nb_NO",
"nl",
"pl",
"pt_BR",
"ru",
"ta",
"tr",
"uk",
"zh_Hans",
]

View file

@ -8,7 +8,7 @@ from flask_wtf.file import FileAllowed, FileField, FileRequired
from flask_wtf.form import FlaskForm from flask_wtf.form import FlaskForm
from jinja2 import Markup from jinja2 import Markup
from werkzeug.security import check_password_hash, generate_password_hash from werkzeug.security import check_password_hash, generate_password_hash
from wtforms.fields.core import SelectField, SelectMultipleField from wtforms.fields.core import Label, SelectField, SelectMultipleField
from wtforms.fields.html5 import DateField, DecimalField, URLField from wtforms.fields.html5 import DateField, DecimalField, URLField
from wtforms.fields.simple import BooleanField, PasswordField, StringField, SubmitField from wtforms.fields.simple import BooleanField, PasswordField, StringField, SubmitField
from wtforms.validators import ( from wtforms.validators import (
@ -20,8 +20,13 @@ from wtforms.validators import (
ValidationError, ValidationError,
) )
from ihatemoney.currency_convertor import CurrencyConverter
from ihatemoney.models import LoggingMode, Person, Project from ihatemoney.models import LoggingMode, Person, Project
from ihatemoney.utils import eval_arithmetic_expression, slugify from ihatemoney.utils import (
eval_arithmetic_expression,
render_localized_currency,
slugify,
)
def strip_filter(string): def strip_filter(string):
@ -39,6 +44,18 @@ def get_billform_for(project, set_default=True, **kwargs):
""" """
form = BillForm(**kwargs) form = BillForm(**kwargs)
if form.original_currency.data == "None":
form.original_currency.data = project.default_currency
show_no_currency = form.original_currency.data == CurrencyConverter.no_currency
form.original_currency.choices = [
(currency_name, render_localized_currency(currency_name, detailed=False))
for currency_name in form.currency_helper.get_currencies(
with_no_currency=show_no_currency
)
]
active_members = [(m.id, m.name) for m in project.active_members] active_members = [(m.id, m.name) for m in project.active_members]
form.payed_for.choices = form.payer.choices = active_members form.payed_for.choices = form.payer.choices = active_members
@ -89,6 +106,15 @@ class EditProjectForm(FlaskForm):
contact_email = StringField(_("Email"), validators=[DataRequired(), Email()]) contact_email = StringField(_("Email"), validators=[DataRequired(), Email()])
project_history = BooleanField(_("Enable project history")) project_history = BooleanField(_("Enable project history"))
ip_recording = BooleanField(_("Use IP tracking for project history")) ip_recording = BooleanField(_("Use IP tracking for project history"))
currency_helper = CurrencyConverter()
default_currency = SelectField(_("Default Currency"), validators=[DataRequired()])
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.default_currency.choices = [
(currency_name, render_localized_currency(currency_name, detailed=True))
for currency_name in self.currency_helper.get_currencies()
]
@property @property
def logging_preference(self): def logging_preference(self):
@ -112,6 +138,7 @@ class EditProjectForm(FlaskForm):
password=generate_password_hash(self.password.data), password=generate_password_hash(self.password.data),
contact_email=self.contact_email.data, contact_email=self.contact_email.data,
logging_preference=self.logging_preference, logging_preference=self.logging_preference,
default_currency=self.default_currency.data,
) )
return project return project
@ -125,6 +152,7 @@ class EditProjectForm(FlaskForm):
project.contact_email = self.contact_email.data project.contact_email = self.contact_email.data
project.logging_preference = self.logging_preference project.logging_preference = self.logging_preference
project.default_currency = self.default_currency.data
return project return project
@ -199,6 +227,8 @@ class BillForm(FlaskForm):
what = StringField(_("What?"), validators=[DataRequired()]) what = StringField(_("What?"), validators=[DataRequired()])
payer = SelectField(_("Payer"), validators=[DataRequired()], coerce=int) payer = SelectField(_("Payer"), validators=[DataRequired()], coerce=int)
amount = CalculatorStringField(_("Amount paid"), validators=[DataRequired()]) amount = CalculatorStringField(_("Amount paid"), validators=[DataRequired()])
currency_helper = CurrencyConverter()
original_currency = SelectField(_("Currency"), validators=[DataRequired()])
external_link = URLField( external_link = URLField(
_("External link"), _("External link"),
validators=[Optional()], validators=[Optional()],
@ -217,6 +247,10 @@ class BillForm(FlaskForm):
bill.external_link = self.external_link.data bill.external_link = self.external_link.data
bill.date = self.date.data bill.date = self.date.data
bill.owers = [Person.query.get(ower, project) for ower in self.payed_for.data] bill.owers = [Person.query.get(ower, project) for ower in self.payed_for.data]
bill.original_currency = self.original_currency.data
bill.converted_amount = self.currency_helper.exchange_currency(
bill.amount, bill.original_currency, project.default_currency
)
return bill return bill
def fake_form(self, bill, project): def fake_form(self, bill, project):
@ -226,17 +260,30 @@ class BillForm(FlaskForm):
bill.external_link = "" bill.external_link = ""
bill.date = self.date bill.date = self.date
bill.owers = [Person.query.get(ower, project) for ower in self.payed_for] bill.owers = [Person.query.get(ower, project) for ower in self.payed_for]
bill.original_currency = CurrencyConverter.no_currency
bill.converted_amount = self.currency_helper.exchange_currency(
bill.amount, bill.original_currency, project.default_currency
)
return bill return bill
def fill(self, bill): def fill(self, bill, project):
self.payer.data = bill.payer_id self.payer.data = bill.payer_id
self.amount.data = bill.amount self.amount.data = bill.amount
self.what.data = bill.what self.what.data = bill.what
self.external_link.data = bill.external_link self.external_link.data = bill.external_link
self.original_currency.data = bill.original_currency
self.date.data = bill.date self.date.data = bill.date
self.payed_for.data = [int(ower.id) for ower in bill.owers] self.payed_for.data = [int(ower.id) for ower in bill.owers]
self.original_currency.label = Label("original_currency", _("Currency"))
self.original_currency.description = _(
"Project default: %(currency)s",
currency=render_localized_currency(
project.default_currency, detailed=False
),
)
def set_default(self): def set_default(self):
self.payed_for.data = self.payed_for.default self.payed_for.data = self.payed_for.default
@ -265,7 +312,7 @@ class MemberForm(FlaskForm):
and Person.query.filter( and Person.query.filter(
Person.name == field.data, Person.name == field.data,
Person.project == form.project, Person.project == form.project,
Person.activated == True, Person.activated,
).all() ).all()
): # NOQA ): # NOQA
raise ValidationError(_("This project already have this member")) raise ValidationError(_("This project already have this member"))

View file

@ -103,7 +103,15 @@ def get_history(project, human_readable_names=True):
if removed: if removed:
changeset["owers_removed"] = (None, removed) changeset["owers_removed"] = (None, removed)
for (prop, (val_before, val_after),) in changeset.items(): # Remove converted_amount if amount changed in the same way.
if (
"amount" in changeset
and "converted_amount" in changeset
and changeset["amount"] == changeset["converted_amount"]
):
del changeset["converted_amount"]
for (prop, (val_before, val_after)) in changeset.items():
if human_readable_names: if human_readable_names:
if prop == "payer_id": if prop == "payer_id":
prop = "payer" prop = "payer"

View file

@ -18,6 +18,9 @@ msgstr ""
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr ""
msgid "Default Currency"
msgstr ""
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr ""
@ -72,6 +75,9 @@ msgstr ""
msgid "Amount paid" msgid "Amount paid"
msgstr "" msgstr ""
msgid "Currency"
msgstr ""
msgid "External link" msgid "External link"
msgstr "" msgstr ""
@ -87,6 +93,10 @@ msgstr ""
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "" msgstr ""
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "" msgstr ""
@ -127,6 +137,9 @@ msgstr ""
msgid "Project" msgid "Project"
msgstr "" msgstr ""
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "" msgstr ""
@ -144,8 +157,22 @@ msgstr ""
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "" msgstr ""
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr "" msgstr ""
msgid "No token provided" msgid "No token provided"
@ -176,6 +203,12 @@ msgstr ""
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "" msgstr ""
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr ""
@ -252,7 +285,7 @@ msgstr ""
msgid "delete" msgid "delete"
msgstr "" msgstr ""
msgid "see" msgid "show"
msgstr "" msgstr ""
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
@ -390,12 +423,6 @@ msgstr ""
msgid "owers list" msgid "owers list"
msgstr "" msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@ -480,6 +507,10 @@ msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified" msgid "modified"
msgstr "" msgstr ""
@ -526,8 +557,8 @@ msgid "Create"
msgstr "" msgstr ""
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
msgid "Account manager" msgid "Account manager"
@ -587,10 +618,8 @@ msgstr ""
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "" msgstr ""
msgid "deactivate" #, python-format
msgstr "" msgid "%(amount)s each"
msgid "reactivate"
msgstr "" msgstr ""
msgid "Invite people" msgid "Invite people"
@ -631,9 +660,6 @@ msgstr ""
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "" msgstr ""
msgid "each"
msgstr ""
msgid "No bills" msgid "No bills"
msgstr "" msgstr ""
@ -702,6 +728,18 @@ msgstr ""
msgid "To whom?" msgid "To whom?"
msgstr "" msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
msgid "deactivate"
msgstr ""
msgid "reactivate"
msgstr ""
msgid "Paid" msgid "Paid"
msgstr "" msgstr ""

View file

@ -0,0 +1,73 @@
"""Add currencies
Revision ID: 927ed575acbd
Revises: cb038f79982e
Create Date: 2020-04-25 14:49:41.136602
"""
# revision identifiers, used by Alembic.
revision = "927ed575acbd"
down_revision = "cb038f79982e"
from alembic import op
import sqlalchemy as sa
from ihatemoney.currency_convertor import CurrencyConverter
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column("bill", sa.Column("converted_amount", sa.Float(), nullable=True))
op.add_column(
"bill",
sa.Column(
"original_currency",
sa.String(length=3),
server_default=CurrencyConverter.no_currency,
nullable=True,
),
)
op.add_column(
"bill_version",
sa.Column("converted_amount", sa.Float(), autoincrement=False, nullable=True),
)
op.add_column(
"bill_version",
sa.Column(
"original_currency", sa.String(length=3), autoincrement=False, nullable=True
),
)
op.add_column(
"project",
sa.Column(
"default_currency",
sa.String(length=3),
server_default=CurrencyConverter.no_currency,
nullable=True,
),
)
op.add_column(
"project_version",
sa.Column(
"default_currency", sa.String(length=3), autoincrement=False, nullable=True
),
)
# ### end Alembic commands ###
op.execute(
"""
UPDATE bill
SET converted_amount = amount
WHERE converted_amount IS NULL
"""
)
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("project_version", "default_currency")
op.drop_column("project", "default_currency")
op.drop_column("bill_version", "original_currency")
op.drop_column("bill_version", "converted_amount")
op.drop_column("bill", "original_currency")
op.drop_column("bill", "converted_amount")
# ### end Alembic commands ###

View file

@ -15,6 +15,7 @@ from sqlalchemy import orm
from sqlalchemy.sql import func from sqlalchemy.sql import func
from sqlalchemy_continuum import make_versioned, version_class from sqlalchemy_continuum import make_versioned, version_class
from sqlalchemy_continuum.plugins import FlaskPlugin from sqlalchemy_continuum.plugins import FlaskPlugin
from werkzeug.security import generate_password_hash
from ihatemoney.patch_sqlalchemy_continuum import PatchedBuilder from ihatemoney.patch_sqlalchemy_continuum import PatchedBuilder
from ihatemoney.versioning import ( from ihatemoney.versioning import (
@ -71,6 +72,7 @@ class Project(db.Model):
members = db.relationship("Person", backref="project") members = db.relationship("Person", backref="project")
query_class = ProjectQuery query_class = ProjectQuery
default_currency = db.Column(db.String(3))
@property @property
def _to_serialize(self): def _to_serialize(self):
@ -80,6 +82,7 @@ class Project(db.Model):
"contact_email": self.contact_email, "contact_email": self.contact_email,
"logging_preference": self.logging_preference.value, "logging_preference": self.logging_preference.value,
"members": [], "members": [],
"default_currency": self.default_currency,
} }
balance = self.balance balance = self.balance
@ -128,7 +131,10 @@ class Project(db.Model):
{ {
"member": member, "member": member,
"paid": sum( "paid": sum(
[bill.amount for bill in self.get_member_bills(member.id).all()] [
bill.converted_amount
for bill in self.get_member_bills(member.id).all()
]
), ),
"spent": sum( "spent": sum(
[ [
@ -151,7 +157,7 @@ class Project(db.Model):
""" """
monthly = defaultdict(lambda: defaultdict(float)) monthly = defaultdict(lambda: defaultdict(float))
for bill in self.get_bills().all(): for bill in self.get_bills().all():
monthly[bill.date.year][bill.date.month] += bill.amount monthly[bill.date.year][bill.date.month] += bill.converted_amount
return monthly return monthly
@property @property
@ -162,8 +168,7 @@ class Project(db.Model):
"""Return a list of transactions that could be made to settle the bill""" """Return a list of transactions that could be made to settle the bill"""
def prettify(transactions, pretty_output): def prettify(transactions, pretty_output):
""" Return pretty transactions """Return pretty transactions"""
"""
if not pretty_output: if not pretty_output:
return transactions return transactions
pretty_transactions = [] pretty_transactions = []
@ -267,9 +272,8 @@ class Project(db.Model):
This method returns the status DELETED or DEACTIVATED regarding the This method returns the status DELETED or DEACTIVATED regarding the
changes made. changes made.
""" """
try:
person = Person.query.get(member_id, self) person = Person.query.get(member_id, self)
except orm.exc.NoResultFound: if person is None:
return None return None
if not person.has_bills(): if not person.has_bills():
db.session.delete(person) db.session.delete(person)
@ -325,14 +329,57 @@ class Project(db.Model):
def __repr__(self): def __repr__(self):
return f"<Project {self.name}>" return f"<Project {self.name}>"
@staticmethod
def create_demo_project():
project = Project(
id="demo",
name="demonstration",
password=generate_password_hash("demo"),
contact_email="demo@notmyidea.org",
default_currency="EUR",
)
db.session.add(project)
db.session.commit()
members = {}
for name in ("Amina", "Georg", "Alice"):
person = Person()
person.name = name
person.project = project
person.weight = 1
db.session.add(person)
members[name] = person
db.session.commit()
operations = (
("Georg", 200, ("Amina", "Georg", "Alice"), "Food shopping"),
("Alice", 20, ("Amina", "Alice"), "Beer !"),
("Amina", 50, ("Amina", "Alice", "Georg"), "AMAP"),
)
for (payer, amount, owers, subject) in operations:
bill = Bill()
bill.payer_id = members[payer].id
bill.what = subject
bill.owers = [members[name] for name in owers]
bill.amount = amount
bill.original_currency = "EUR"
bill.converted_amount = amount
db.session.add(bill)
db.session.commit()
return project
class Person(db.Model): class Person(db.Model):
class PersonQuery(BaseQuery): class PersonQuery(BaseQuery):
def get_by_name(self, name, project): def get_by_name(self, name, project):
return ( return (
Person.query.filter(Person.name == name) Person.query.filter(Person.name == name)
.filter(Project.id == project.id) .filter(Person.project_id == project.id)
.one() .one_or_none()
) )
def get(self, id, project=None): def get(self, id, project=None):
@ -340,8 +387,8 @@ class Person(db.Model):
project = g.project project = g.project
return ( return (
Person.query.filter(Person.id == id) Person.query.filter(Person.id == id)
.filter(Project.id == project.id) .filter(Person.project_id == project.id)
.one() .one_or_none()
) )
query_class = PersonQuery query_class = PersonQuery
@ -432,6 +479,9 @@ class Bill(db.Model):
what = db.Column(db.UnicodeText) what = db.Column(db.UnicodeText)
external_link = db.Column(db.UnicodeText) external_link = db.Column(db.UnicodeText)
original_currency = db.Column(db.String(3))
converted_amount = db.Column(db.Float)
archive = db.Column(db.Integer, db.ForeignKey("archive.id")) archive = db.Column(db.Integer, db.ForeignKey("archive.id"))
@property @property
@ -445,9 +495,11 @@ class Bill(db.Model):
"creation_date": self.creation_date, "creation_date": self.creation_date,
"what": self.what, "what": self.what,
"external_link": self.external_link, "external_link": self.external_link,
"original_currency": self.original_currency,
"converted_amount": self.converted_amount,
} }
def pay_each(self): def pay_each_default(self, amount):
"""Compute what each share has to pay""" """Compute what each share has to pay"""
if self.owers: if self.owers:
weights = ( weights = (
@ -455,13 +507,16 @@ class Bill(db.Model):
.join(billowers, Bill) .join(billowers, Bill)
.filter(Bill.id == self.id) .filter(Bill.id == self.id)
).scalar() ).scalar()
return self.amount / weights return amount / weights
else: else:
return 0 return 0
def __str__(self): def __str__(self):
return self.what return self.what
def pay_each(self):
return self.pay_each_default(self.converted_amount)
def __repr__(self): def __repr__(self):
return ( return (
f"<Bill of {self.amount} from {self.payer} for " f"<Bill of {self.amount} from {self.payer} for "

View file

@ -3,13 +3,15 @@ import os.path
import warnings import warnings
from flask import Flask, g, render_template, request, session from flask import Flask, g, render_template, request, session
from flask_babel import Babel from flask_babel import Babel, format_currency
from flask_mail import Mail from flask_mail import Mail
from flask_migrate import Migrate, stamp, upgrade from flask_migrate import Migrate, stamp, upgrade
from jinja2 import contextfilter
from werkzeug.middleware.proxy_fix import ProxyFix from werkzeug.middleware.proxy_fix import ProxyFix
from ihatemoney import default_settings from ihatemoney import default_settings
from ihatemoney.api.v1 import api as apiv1 from ihatemoney.api.v1 import api as apiv1
from ihatemoney.currency_convertor import CurrencyConverter
from ihatemoney.models import db from ihatemoney.models import db
from ihatemoney.utils import ( from ihatemoney.utils import (
IhmJSONEncoder, IhmJSONEncoder,
@ -26,8 +28,7 @@ def setup_database(app):
"""Prepare the database. Create tables, run migrations etc.""" """Prepare the database. Create tables, run migrations etc."""
def _pre_alembic_db(): def _pre_alembic_db():
""" Checks if we are migrating from a pre-alembic ihatemoney """Checks if we are migrating from a pre-alembic ihatemoney"""
"""
con = db.engine.connect() con = db.engine.connect()
tables_exist = db.engine.dialect.has_table(con, "project") tables_exist = db.engine.dialect.has_table(con, "project")
alembic_setup = db.engine.dialect.has_table(con, "alembic_version") alembic_setup = db.engine.dialect.has_table(con, "alembic_version")
@ -57,7 +58,7 @@ def setup_database(app):
def load_configuration(app, configuration=None): def load_configuration(app, configuration=None):
""" Find the right configuration file for the application and load it. """Find the right configuration file for the application and load it.
By order of preference: By order of preference:
- Use the IHATEMONEY_SETTINGS_FILE_PATH env var if defined ; - Use the IHATEMONEY_SETTINGS_FILE_PATH env var if defined ;
@ -138,6 +139,9 @@ def create_app(
# Configure the a, root="main"pplication # Configure the a, root="main"pplication
setup_database(app) setup_database(app)
# Setup Currency Cache
CurrencyConverter()
mail = Mail() mail = Mail()
mail.init_app(app) mail.init_app(app)
app.mail = mail app.mail = mail
@ -151,6 +155,25 @@ def create_app(
# Translations # Translations
babel = Babel(app) babel = Babel(app)
# Undocumented currencyformat filter from flask_babel is forwarding to Babel format_currency
# We overwrite it to remove the currency sign ¤ when there is no currency
@contextfilter
def currency(context, number, currency=None, *args, **kwargs):
if currency is None:
currency = context.get("g").project.default_currency
"""
Same as flask_babel.Babel.currencyformat, but without the "no currency ¤" sign
when there is no currency.
"""
return format_currency(
number,
currency if currency != CurrencyConverter.no_currency else "",
*args,
**kwargs
).strip()
app.jinja_env.filters["currency"] = currency
@babel.localeselector @babel.localeselector
def get_locale(): def get_locale():
# get the lang from the session if defined, fallback on the browser "accept # get the lang from the session if defined, fallback on the browser "accept

View file

@ -50,16 +50,28 @@ body {
font-size: 2.4em; font-size: 2.4em;
} }
#header .tryout { #header .tryout, #header .showcase {
margin-right: 10em;
color: #fff; color: #fff;
background-color: #414141; background-color: #414141;
border-color: #414141; border-color: #414141;
margin-left: 3px;
margin-right: 3px;
} }
#header .tryout:hover { #header .tryout:hover, #header .showcase:hover {
background-color: #606060; background-color: #606060;
border-color: #606060; border-color: #606060;
cursor: pointer;
}
#header .showcaseimg {
width: 55px;
}
#header .shareimg {
width: 80px;
margin-left: 5px;
margin-bottom: 8px;
} }
#header .additional-content { #header .additional-content {
@ -150,7 +162,7 @@ body {
margin-bottom: 20px; margin-bottom: 20px;
margin-left: 25px; margin-left: 25px;
} }
@media (max-width: 400px) { @media (max-width: 450px) {
.home .card { .home .card {
min-width: unset; min-width: unset;
} }
@ -168,10 +180,10 @@ body {
border: 0; border: 0;
} }
.empty-bill .hand-holding-heart svg { .empty-bill .billimg svg {
fill: lightgray; fill: lightgray;
height: 5em; height: 6em;
width: 5em; width: 4em;
} }
.invites textarea { .invites textarea {
@ -303,7 +315,7 @@ footer .footer-left {
.bill-actions > .delete, .bill-actions > .delete,
.bill-actions > .edit, .bill-actions > .edit,
.bill-actions > .see { .bill-actions > .show {
font-size: 0px; font-size: 0px;
display: block; display: block;
width: 16px; width: 16px;
@ -321,8 +333,8 @@ footer .footer-left {
background: url("../images/edit.png") no-repeat right; background: url("../images/edit.png") no-repeat right;
} }
.bill-actions > .see { .bill-actions > .show {
background: url("../images/see.png") no-repeat right; background: url("../images/show.png") no-repeat right;
} }
#bill_table, #bill_table,
@ -342,7 +354,7 @@ footer .footer-left {
.project-actions > .delete, .project-actions > .delete,
.project-actions > .edit, .project-actions > .edit,
.project-actions > .see { .project-actions > .show {
font-size: 0px; font-size: 0px;
display: block; display: block;
width: 16px; width: 16px;
@ -360,8 +372,8 @@ footer .footer-left {
background: url("../images/edit.png") no-repeat right; background: url("../images/edit.png") no-repeat right;
} }
.project-actions > .see { .project-actions > .show {
background: url("../images/see.png") no-repeat right; background: url("../images/show.png") no-repeat right;
} }
.history_icon > .delete, .history_icon > .delete,
@ -535,11 +547,17 @@ tr:hover .extra-info {
width: 1.2em; /* protection for IE11 */ width: 1.2em; /* protection for IE11 */
} }
.icon.high svg {
height: 2em;
margin-top: -0.2em;
margin-bottom: -0.2em;
}
.download-project .icon svg { .download-project .icon svg {
fill: white; fill: white;
} }
.icon.plus svg { .icon.before-text svg {
margin-right: 3px; margin-right: 3px;
} }
footer .icon svg { footer .icon svg {
@ -562,6 +580,10 @@ footer .icon svg {
width: 200px; width: 200px;
} }
.hiddenpswp {
display: none;
}
#history_warnings { #history_warnings {
margin-top: 30px; margin-top: 30px;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 155 B

View file

@ -0,0 +1,88 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="220.000000pt" height="328.000000pt" viewBox="0 0 220.000000 328.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,328.000000) scale(0.100000,-0.100000)"
stroke="none">
<path d="M1615 3199 c-44 -4 -253 -10 -465 -13 -436 -8 -481 -11 -510 -34 -18
-15 -19 -21 -9 -50 8 -23 9 -83 5 -195 -9 -214 -9 -221 -56 -622 -16 -143 -50
-387 -54 -393 -2 -4 -7 -35 -10 -68 -3 -33 -12 -92 -20 -130 -8 -38 -22 -114
-31 -170 -8 -55 -19 -114 -24 -130 -5 -16 -12 -54 -16 -84 -5 -48 -34 -179
-80 -360 -13 -53 -46 -147 -118 -335 -37 -97 -126 -271 -163 -320 -15 -20 -21
-39 -18 -53 14 -51 147 -94 334 -107 52 -4 113 -9 135 -10 314 -26 428 -37
470 -45 90 -17 201 -15 220 3 11 11 33 17 66 17 45 0 50 -2 44 -19 -13 -43 48
-28 67 16 7 15 19 32 26 37 8 4 37 56 64 115 27 58 54 114 59 123 5 10 9 23 9
29 0 6 15 44 34 84 19 39 38 85 42 101 4 16 13 38 20 49 6 11 15 31 19 45 4
14 17 54 30 90 26 76 75 229 99 315 20 69 91 296 107 340 31 89 116 469 140
625 5 36 18 110 28 165 45 235 68 435 68 575 0 14 1 102 2 195 1 94 2 177 1
186 0 13 -15 18 -67 24 -95 10 -352 13 -448 4z m437 -77 c24 -24 16 -465 -11
-605 -5 -29 -15 -83 -21 -122 -6 -38 -24 -142 -41 -230 -92 -482 -124 -616
-214 -895 -26 -80 -51 -161 -55 -180 -4 -19 -18 -66 -30 -105 -12 -38 -28 -90
-35 -115 -22 -74 -81 -230 -115 -305 -18 -38 -38 -88 -44 -110 -7 -22 -41
-100 -76 -173 l-64 -133 -68 7 c-42 4 -91 2 -126 -6 -48 -10 -82 -9 -193 4
-74 9 -181 18 -239 21 -155 8 -303 26 -320 40 -8 7 -55 16 -105 19 -97 8 -155
22 -155 38 0 16 70 116 85 122 9 3 15 19 15 40 0 20 9 55 19 78 70 159 91 213
111 288 13 47 29 99 37 117 7 17 18 53 23 80 5 26 15 66 21 88 23 85 90 437
109 569 11 77 23 149 25 160 9 37 44 324 75 611 16 154 34 319 40 366 5 47 10
137 10 201 l0 116 29 5 c17 4 166 7 333 9 167 1 368 5 448 9 247 10 517 6 532
-9z"/>
<path d="M1149 3023 c-5 -41 6 -111 18 -125 18 -20 42 -24 44 -8 1 6 3 15 4
20 1 6 3 13 4 18 1 4 5 1 10 -7 5 -8 16 -11 30 -6 16 5 21 14 21 39 0 47 -22
64 -49 37 -19 -19 -21 -19 -21 -3 0 10 -5 23 -12 30 -13 13 -47 16 -49 5z"/>
<path d="M1406 3021 c-7 -10 7 -61 25 -89 10 -16 24 -22 51 -22 20 0 40 -5 43
-10 12 -19 25 1 25 39 0 20 -6 45 -13 55 -18 24 -51 17 -55 -12 -5 -31 -20
-28 -28 6 -9 35 -35 54 -48 33z"/>
<path d="M1318 2995 c-10 -22 -8 -30 9 -53 29 -39 48 -35 47 10 -1 37 -17 68
-35 68 -5 0 -15 -11 -21 -25z"/>
<path d="M1315 2790 c-14 -43 53 -107 69 -65 8 21 23 19 29 -5 12 -47 61 -11
51 38 -8 38 -36 50 -69 28 -22 -15 -24 -14 -30 4 -8 26 -42 26 -50 0z"/>
<path d="M1230 2775 c-11 -21 -10 -28 5 -51 14 -22 19 -24 30 -13 15 17 8 89
-9 89 -7 0 -19 -11 -26 -25z"/>
<path d="M1146 2765 c-33 -31 -37 -98 -7 -115 29 -15 31 -14 31 34 0 25 5 48
10 51 12 8 13 42 1 49 -5 3 -20 -5 -35 -19z"/>
<path d="M1665 2550 c-34 -21 -60 -54 -105 -130 -54 -92 -33 -202 50 -258 41
-27 76 -24 127 10 43 30 57 62 37 83 -14 13 -18 13 -40 -1 -13 -9 -24 -20 -24
-24 0 -14 -58 -22 -79 -10 -34 18 -24 37 25 49 39 10 44 14 39 32 -4 13 0 28
10 40 24 26 4 49 -41 49 -19 0 -34 3 -34 6 0 20 67 97 96 109 38 16 44 39 15
55 -28 14 -42 12 -76 -10z"/>
<path d="M1120 2394 l-50 -46 -35 31 c-20 17 -44 31 -55 31 -21 0 -50 -25 -50
-44 0 -13 -31 -46 -44 -46 -3 0 -11 11 -16 25 -11 29 -36 43 -51 28 -15 -15 7
-95 32 -115 33 -28 59 -22 100 22 21 22 41 40 46 40 4 0 19 -9 33 -20 41 -32
81 -26 134 21 42 37 49 40 64 27 57 -48 152 -40 152 13 0 21 -7 23 -62 20 -27
-2 -47 5 -79 28 -23 17 -48 31 -56 31 -8 0 -36 -21 -63 -46z"/>
<path d="M1166 1961 c-10 -11 -30 -24 -45 -31 -24 -10 -35 -8 -67 9 -46 25
-60 26 -106 6 -22 -8 -50 -12 -72 -8 -29 4 -36 2 -36 -11 0 -22 34 -54 64 -62
14 -3 48 2 75 11 49 16 52 16 77 -4 36 -28 77 -26 134 6 45 25 52 26 84 15 42
-15 86 -7 86 17 0 19 -18 29 -96 54 -66 22 -77 21 -98 -2z"/>
<path d="M1577 1930 c-18 -22 -39 -59 -46 -82 -7 -24 -19 -50 -25 -58 -7 -8
-18 -39 -24 -68 -11 -47 -10 -57 7 -90 46 -89 121 -122 185 -82 45 27 65 56
59 81 -7 26 -25 24 -55 -5 -30 -30 -70 -41 -97 -26 -40 21 -24 48 30 53 41 4
59 20 52 46 -5 21 -9 22 -66 16 -43 -5 -58 -4 -53 4 4 6 19 11 34 11 53 0 101
13 107 27 9 26 -15 43 -61 43 -46 0 -58 17 -31 44 6 8 19 23 27 35 16 24 41
27 70 9 21 -14 25 -12 34 18 10 34 -24 64 -72 64 -35 0 -45 -6 -75 -40z"/>
<path d="M835 1524 c-27 -9 -68 -18 -90 -22 -43 -8 -57 -31 -34 -59 10 -11 24
-14 58 -9 24 3 50 11 56 16 7 6 35 13 62 16 38 5 56 2 86 -15 47 -26 60 -26
108 1 28 15 39 28 39 45 0 19 -5 23 -30 23 -17 0 -38 -5 -48 -11 -13 -8 -30
-6 -70 10 -61 24 -70 25 -137 5z"/>
<path d="M985 1012 c-11 -2 -27 -9 -35 -16 -54 -41 -76 -44 -131 -16 -39 20
-40 20 -82 2 -50 -22 -77 -63 -57 -87 16 -19 46 -20 53 -1 3 8 19 22 36 30 27
14 31 14 46 0 24 -24 101 -31 123 -11 34 31 64 35 98 15 34 -20 148 -42 171
-34 11 5 9 12 -8 36 -19 24 -30 30 -62 30 -39 0 -107 25 -107 40 0 11 -22 17
-45 12z"/>
<path d="M613 717 c-63 -15 -68 -19 -53 -47 11 -21 16 -22 69 -15 31 5 81 8
111 7 30 0 80 -1 110 -2 76 -2 157 4 164 11 4 3 2 19 -4 34 -10 26 -12 27 -58
20 -56 -9 -121 -10 -217 -2 -41 4 -92 1 -122 -6z"/>
<path d="M1154 649 c-20 -10 -65 -79 -94 -146 -8 -18 -19 -32 -25 -32 -31 4
-45 -3 -45 -20 0 -11 5 -23 10 -26 15 -10 12 -35 -5 -35 -21 0 -19 -24 5 -45
11 -10 31 -37 45 -61 61 -105 172 -117 219 -25 14 27 14 31 0 46 -14 14 -19
13 -50 -15 -19 -16 -46 -30 -59 -30 -28 0 -65 32 -65 55 0 16 5 19 53 29 15 4
27 11 27 17 0 19 -28 39 -57 40 -23 0 -17 4 29 22 31 13 60 26 64 30 14 13
-19 37 -52 37 -40 0 -41 6 -11 51 26 39 49 47 84 28 20 -11 26 -11 33 1 36 57
-38 111 -106 79z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"/></svg>

Before

Width:  |  Height:  |  Size: 593 B

View file

@ -0,0 +1,88 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="294.000000pt" height="424.000000pt" viewBox="0 0 294.000000 424.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,424.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M2108 4146 c-8 -7 -22 -40 -32 -73 -17 -57 -83 -151 -173 -246 -34
-36 -40 -38 -75 -33 -22 4 -68 24 -102 46 -63 40 -89 47 -114 31 -27 -17 29
-71 73 -71 8 0 15 -4 15 -9 0 -4 20 -16 45 -25 58 -22 62 -32 26 -50 -16 -9
-50 -47 -75 -85 l-46 -69 0 -90 c0 -50 5 -114 11 -143 15 -71 63 -163 104
-201 19 -17 35 -39 35 -49 0 -29 32 -39 125 -39 71 0 94 4 133 24 56 29 112
87 131 136 7 19 16 42 20 50 4 8 9 58 11 110 4 143 4 143 16 147 7 2 18 -2 26
-9 30 -28 55 -37 67 -25 6 6 11 18 11 27 0 18 -30 50 -46 50 -6 0 -22 13 -37
28 l-27 29 16 54 c9 30 27 79 40 110 13 31 24 62 24 69 0 7 13 32 29 55 32 48
32 80 -2 91 -11 3 -58 44 -103 90 -85 85 -102 95 -126 70z m110 -145 c28 -27
52 -54 52 -60 0 -7 -7 -26 -16 -43 l-16 -31 -44 47 c-33 37 -48 46 -64 41 -26
-8 -26 9 0 42 11 14 20 32 20 39 0 23 12 16 68 -35z m-129 -102 c-11 -7 -12
-12 -1 -29 18 -30 15 -40 -14 -40 -17 0 -28 -6 -31 -20 -4 -14 -14 -20 -34
-20 -33 0 -36 6 -11 29 9 9 35 38 57 65 23 29 41 44 43 36 3 -7 -2 -16 -9 -21z
m80 -260 c-7 -4 -20 -2 -31 4 -21 14 -24 27 -5 27 7 0 19 10 27 23 15 22 15
22 18 -12 2 -19 -2 -37 -9 -42z m-192 12 c40 -17 82 -35 93 -41 23 -12 53 -72
65 -129 6 -29 5 -33 -9 -28 -13 5 -16 -1 -16 -31 0 -29 -8 -46 -38 -78 -52
-59 -192 -124 -265 -124 -36 0 -39 3 -58 46 -40 89 -36 184 12 291 10 24 19
46 19 50 0 9 100 72 115 73 6 0 42 -13 82 -29z m143 -413 c-12 -24 -31 -53
-42 -65 -22 -24 -105 -60 -114 -50 -10 10 59 84 117 127 29 22 54 38 57 35 2
-2 -6 -23 -18 -47z"/>
<path d="M1927 3573 c-4 -3 -7 -15 -7 -25 0 -17 -1 -17 -20 2 -11 11 -32 20
-46 20 l-26 0 4 -112 c4 -122 17 -161 53 -156 17 3 19 9 16 47 -2 29 1 41 8
37 6 -4 11 -12 11 -18 0 -12 47 -58 59 -58 14 0 21 43 9 57 -6 8 -10 49 -9 99
2 85 -7 114 -34 114 -6 0 -15 -3 -18 -7z m-20 -140 c-2 -16 -4 -3 -4 27 0 30
2 43 4 28 2 -16 2 -40 0 -55z"/>
<path d="M218 2923 c-57 -62 -117 -250 -119 -379 -2 -58 2 -88 12 -100 12 -15
14 -15 20 7 4 13 7 42 8 63 1 44 58 218 97 298 15 29 38 63 53 75 21 18 24 25
15 40 -18 29 -56 28 -86 -4z"/>
<path d="M348 2858 c-47 -68 -63 -110 -96 -238 -27 -109 -35 -236 -15 -248 6
-4 13 -18 14 -31 2 -14 9 -26 15 -28 7 -2 11 25 11 84 -1 87 4 107 55 258 25
72 70 154 98 180 25 22 26 44 3 61 -31 23 -49 15 -85 -38z"/>
<path d="M1970 2889 c-69 -19 -106 -41 -139 -85 -18 -24 -38 -44 -44 -44 -5 0
-35 -12 -66 -26 -30 -15 -87 -31 -126 -36 -83 -12 -190 -30 -375 -63 -74 -14
-174 -25 -222 -25 -63 0 -91 -4 -102 -15 -19 -19 -62 -19 -69 -1 -10 25 -86
39 -201 38 -118 -2 -136 -9 -136 -51 0 -34 35 -68 87 -86 36 -12 38 -16 44
-62 12 -89 72 -190 133 -222 42 -23 98 8 137 75 17 30 32 66 35 81 2 16 9 52
15 80 6 29 8 61 5 71 -5 16 1 18 51 20 104 4 291 32 417 61 44 11 112 22 150
26 38 4 94 13 124 21 30 8 57 13 59 11 2 -3 -6 -31 -19 -63 -12 -33 -31 -95
-43 -139 -20 -74 -23 -80 -46 -78 -163 15 -335 37 -379 49 -30 9 -88 24 -129
35 -91 25 -125 22 -129 -9 -5 -31 15 -52 47 -52 15 0 74 -13 132 -29 111 -31
183 -44 349 -61 58 -7 107 -13 109 -15 2 -2 -4 -48 -12 -102 -9 -54 -18 -120
-22 -148 -3 -27 -15 -97 -25 -155 -24 -130 -39 -348 -28 -415 5 -27 6 -74 3
-102 -8 -69 0 -93 31 -93 17 0 31 -10 45 -34 25 -42 104 -84 172 -92 67 -7
418 41 579 80 35 8 60 10 66 4 14 -14 51 12 57 42 12 62 26 332 20 402 -6 70
-5 78 16 99 12 12 37 23 57 25 18 2 39 7 46 12 6 6 27 13 46 17 40 8 90 50 90
76 0 9 -8 26 -17 38 -16 19 -22 20 -53 11 -59 -17 -200 -11 -200 9 0 8 27 35
144 143 172 158 216 210 216 252 0 27 -75 113 -118 136 -13 6 -61 38 -105 69
-133 94 -248 149 -287 136 -15 -5 -25 3 -44 33 -76 120 -222 184 -346 151z
m189 -99 c61 -30 124 -113 154 -200 82 -241 146 -750 133 -1060 -9 -215 -3
-201 -89 -224 -71 -18 -223 -45 -386 -67 -103 -14 -211 -8 -245 15 -51 33 -96
167 -103 306 -5 106 0 142 73 575 25 150 23 145 50 145 20 0 24 5 24 29 0 17
-6 31 -16 35 -18 7 -18 7 16 131 28 103 99 252 137 288 37 35 71 45 151 46 44
1 74 -5 101 -19z m341 -205 c49 -25 192 -120 253 -167 22 -18 37 -38 37 -51 0
-19 -159 -182 -218 -224 -26 -18 -44 -10 -21 10 22 18 53 93 46 112 -4 8 -19
20 -34 26 -15 6 -48 21 -73 33 -43 21 -46 25 -61 86 -54 215 -46 235 71 175z
m-1650 -103 c0 -10 5 -23 11 -29 13 -13 5 -43 -11 -43 -5 0 -10 12 -10 26 0
14 -5 34 -10 45 -8 15 -7 19 5 19 8 0 15 -8 15 -18z m-70 -77 c0 -8 -10 -25
-22 -37 l-23 -23 -3 23 c-2 13 -1 30 2 38 7 19 46 18 46 -1z m1730 -167 c0
-16 -20 -48 -30 -48 -6 0 -10 15 -10 34 0 29 3 33 20 29 11 -3 20 -10 20 -15z
m14 -141 c-7 -19 -34 -31 -34 -15 0 10 32 39 38 34 1 -2 0 -10 -4 -19z"/>
<path d="M1924 1135 c-18 -13 -19 -29 -17 -289 2 -152 5 -294 8 -317 9 -71 42
-91 68 -41 12 25 12 40 0 107 -14 87 -20 414 -8 486 6 41 5 48 -12 58 -15 8
-25 7 -39 -4z"/>
<path d="M2117 1133 c-23 -22 26 -662 54 -715 5 -10 20 -18 34 -18 28 0 35 25
22 85 -19 96 -36 244 -47 430 -7 110 -17 206 -23 213 -10 13 -30 16 -40 5z"/>
<path d="M1730 501 c-109 -35 -229 -145 -216 -197 9 -33 75 -63 140 -64 51 0
126 18 126 30 0 4 15 10 32 14 18 4 50 18 70 31 21 14 41 25 46 25 5 0 17 9
28 21 18 21 18 21 -9 41 -15 11 -27 25 -27 32 0 7 -12 24 -28 39 -21 20 -41
28 -82 31 -30 3 -66 2 -80 -3z m92 -49 c9 -4 26 -19 38 -34 l21 -28 -88 -41
c-66 -31 -102 -41 -143 -43 -46 -1 -55 2 -58 17 -5 25 47 70 123 107 61 31 77
34 107 22z"/>
<path d="M2276 413 c-4 -5 -22 -39 -40 -78 -78 -166 -244 -289 -254 -188 -3
28 5 40 60 93 47 46 76 64 116 76 52 16 64 32 38 53 -24 20 -77 -1 -150 -59
-77 -61 -136 -132 -136 -166 0 -32 54 -91 90 -99 47 -10 111 26 192 107 78 78
114 136 124 199 8 48 -16 85 -40 62z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -0,0 +1,55 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="122.000000pt" height="203.000000pt" viewBox="0 0 122.000000 203.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,203.000000) scale(0.100000,-0.100000)"
stroke="none">
<path d="M646 1999 c-15 -12 -49 -65 -74 -118 l-47 -96 -63 -3 c-69 -3 -75
-12 -41 -56 12 -15 30 -26 44 -26 34 0 37 -12 14 -56 -35 -68 -13 -188 46
-247 27 -27 28 -28 9 -42 -10 -8 -31 -15 -45 -15 -16 0 -32 -9 -40 -21 -10
-15 -37 -26 -99 -39 -114 -24 -147 -37 -199 -76 -128 -98 -172 -288 -93 -401
17 -25 20 -54 26 -253 4 -124 11 -262 14 -307 4 -45 4 -94 0 -108 -5 -19 -1
-32 15 -50 22 -24 23 -24 127 -15 116 10 178 1 218 -30 51 -40 85 -13 40 31
-50 48 -127 73 -234 77 l-101 4 -7 77 c-15 180 -19 321 -8 321 6 0 14 -4 17
-10 9 -15 42 -12 59 6 9 8 16 30 16 48 0 19 6 39 14 45 14 12 10 51 -5 51 -5
0 -9 6 -9 14 0 8 -23 34 -50 57 -43 37 -51 47 -48 73 3 31 3 31 58 29 30 -2
80 -13 110 -26 85 -36 160 -76 160 -87 0 -6 8 -10 19 -10 10 0 25 -7 32 -16
16 -19 81 -14 107 9 22 19 122 53 231 78 47 11 96 27 108 35 12 8 40 14 62 14
30 0 44 6 55 22 40 57 3 79 -96 55 -144 -34 -264 -70 -301 -88 -21 -11 -41
-18 -44 -15 -10 10 9 27 55 47 26 12 74 34 107 50 33 16 85 33 115 39 30 6 61
17 70 26 13 14 12 17 -10 35 -19 17 -33 19 -66 14 l-42 -6 -4 53 c-3 29 -3 56
-1 60 10 20 206 -113 239 -161 34 -50 33 -126 -2 -187 -26 -45 -54 -58 -54
-26 0 23 -19 42 -42 42 -18 0 -23 -14 -19 -63 3 -34 -19 -71 -66 -114 l-36
-31 14 -46 c13 -44 15 -46 51 -46 l38 0 0 -57 c-1 -32 -9 -98 -19 -148 -15
-80 -20 -91 -42 -97 -65 -19 -218 -71 -249 -85 -28 -13 -87 -48 -119 -70 -2
-2 1 -14 7 -28 15 -32 52 -33 95 -2 18 13 57 32 87 44 30 11 89 33 130 49 41
16 77 29 80 30 62 13 71 25 45 54 -14 15 -14 20 -1 45 14 28 29 105 41 216 6
53 8 57 36 63 34 7 52 41 43 85 -8 38 11 95 49 148 61 86 44 214 -40 294 -43
41 -183 139 -198 139 -8 0 -69 44 -73 53 -2 4 -11 7 -21 7 -15 0 -91 68 -91
81 0 4 20 19 45 35 63 39 89 94 83 177 -2 34 -11 76 -20 94 -18 35 -14 47 11
34 25 -13 112 2 125 21 16 26 -28 68 -70 68 -34 0 -44 16 -44 71 0 15 -7 32
-15 39 -8 7 -15 18 -15 24 0 22 -50 80 -83 98 -44 23 -89 22 -121 -3z m138
-95 c11 -28 6 -62 -9 -68 -12 -4 -15 4 -15 39 0 45 12 60 24 29z m-114 -120
c0 -2 -11 -4 -25 -4 -28 0 -30 5 -13 42 l13 26 12 -30 c7 -17 13 -32 13 -34z
m98 -100 c38 -11 55 -144 27 -201 -24 -49 -60 -66 -137 -67 -61 -1 -70 2 -95
27 -24 23 -28 35 -27 80 1 54 29 121 62 149 9 8 35 16 57 17 21 1 41 4 44 6 4
4 38 -1 69 -11z m-38 -419 c33 -30 71 -120 77 -182 l5 -59 -43 -19 c-88 -39
-205 -126 -222 -165 -5 -11 -8 -12 -13 -2 -17 37 -88 112 -128 136 -25 15 -46
28 -46 29 0 1 11 33 25 70 31 88 82 166 112 173 13 4 40 15 61 26 47 25 141
21 172 -7z m-380 -85 c0 -6 -9 -28 -19 -48 -11 -21 -22 -54 -26 -74 l-7 -36
-65 -4 c-69 -4 -86 -17 -76 -55 5 -21 2 -23 -31 -23 -54 0 -51 17 23 141 12
20 39 48 60 62 57 38 141 59 141 37z m-50 -255 c0 -18 -1 -18 -36 0 l-29 15
33 0 c22 0 32 -5 32 -15z m120 -32 c28 -20 69 -64 70 -76 0 -4 -23 8 -51 28
-28 19 -55 35 -60 35 -5 0 -9 7 -9 15 0 20 20 19 50 -2z"/>
<path d="M636 1662 c-14 -23 -18 -117 -6 -153 16 -46 29 -46 46 2 10 30 13 32
20 14 4 -11 14 -26 22 -34 23 -24 37 4 37 76 l0 67 -50 18 c-57 20 -62 21 -69
10z"/>
<path d="M457 463 c5 -265 11 -305 47 -311 17 -4 18 8 14 261 -3 244 -5 267
-22 286 -42 47 -44 36 -39 -236z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

View file

@ -0,0 +1,108 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="213.000000pt" height="257.000000pt" viewBox="0 0 213.000000 257.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,257.000000) scale(0.100000,-0.100000)"
stroke="none">
<path d="M830 2486 c-40 -41 -58 -94 -67 -197 -6 -76 -6 -77 26 -108 17 -17
31 -33 31 -36 0 -3 -11 -10 -25 -15 -14 -5 -25 -14 -25 -19 0 -19 40 -32 75
-25 20 3 41 2 48 -4 6 -5 38 -13 70 -17 52 -7 60 -5 92 19 36 28 46 62 20 72
-9 4 -23 -4 -36 -20 -15 -19 -30 -26 -55 -26 -40 0 -43 12 -9 34 28 19 33 51
9 60 -21 8 -21 8 -36 -7 -7 -7 -26 -18 -43 -25 -26 -12 -31 -11 -42 4 -18 25
-16 32 10 39 45 14 77 30 82 44 14 36 -51 55 -89 26 -29 -22 -36 -19 -36 15 0
45 29 122 57 152 55 58 -1 92 -57 34z"/>
<path d="M1133 2130 c-18 -10 -40 -34 -50 -52 -33 -63 -64 -143 -67 -177 -2
-19 -11 -38 -20 -43 -22 -12 -20 -21 8 -55 14 -16 28 -41 31 -55 4 -14 27 -45
51 -69 39 -39 50 -44 89 -44 56 0 88 26 63 51 -12 12 -20 14 -36 5 -11 -6 -29
-11 -39 -11 -20 0 -83 58 -83 77 0 6 18 14 39 18 27 4 41 12 44 26 7 26 -26
43 -69 34 -31 -5 -34 -4 -34 18 l0 24 66 -15 c36 -8 67 -12 69 -10 2 2 2 13
-1 25 -4 16 -19 25 -56 33 -58 14 -68 31 -43 74 59 101 106 130 138 84 14 -20
18 -21 26 -8 16 23 13 35 -15 64 -32 31 -67 33 -111 6z"/>
<path d="M1407 1846 c-44 -16 -67 -34 -67 -52 0 -7 16 -43 36 -79 31 -57 39
-65 65 -65 22 0 32 7 44 31 31 60 83 52 155 -22 55 -57 130 -189 130 -230 0
-5 -13 -6 -30 -2 -27 5 -30 3 -30 -19 0 -30 79 -108 109 -108 21 0 51 25 51
41 0 6 7 17 15 25 32 32 10 81 -39 87 -26 3 -32 11 -53 67 -32 85 -106 183
-170 226 -48 32 -52 37 -46 64 5 25 2 31 -21 40 -37 14 -103 12 -149 -4z"/>
<path d="M758 1826 c-22 -14 -40 -40 -54 -75 -12 -29 -27 -57 -34 -61 -8 -5
-9 -16 -4 -31 4 -13 7 -32 5 -41 -4 -28 40 -118 68 -137 63 -43 135 -44 168
-2 27 35 -2 67 -35 39 -26 -23 -59 -28 -79 -12 -16 12 -16 15 -3 24 8 6 27 13
42 16 37 9 52 28 34 43 -8 7 -23 12 -33 11 -10 0 -36 -2 -58 -3 -30 -1 -40 2
-40 13 0 11 17 17 65 22 59 7 90 23 90 49 0 12 -41 17 -97 12 l-55 -6 27 41
c15 23 34 42 41 42 16 0 37 37 31 54 -9 24 -46 25 -79 2z"/>
<path d="M462 1777 c-12 -13 -22 -29 -22 -35 0 -6 -13 -18 -29 -26 -57 -30
-231 -223 -231 -256 0 -8 -13 -10 -39 -5 -34 6 -41 3 -51 -15 -14 -26 -4 -94
16 -114 17 -18 18 -38 3 -53 -16 -16 16 -67 38 -59 8 3 18 6 23 6 4 0 13 13
20 29 14 35 48 68 75 73 30 5 25 40 -8 56 -24 12 -27 18 -22 43 4 16 16 41 28
56 60 72 131 142 161 158 l34 18 25 -26 c36 -40 57 -34 95 24 45 69 52 111 21
133 -36 25 -111 21 -137 -7z m88 -57 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10
0 6 5 10 10 10 6 0 10 -4 10 -10z"/>
<path d="M348 1313 c-14 -16 -31 -38 -37 -50 -23 -44 -6 -264 25 -340 52 -123
152 -170 216 -101 16 17 36 44 44 59 16 31 28 197 15 214 -5 5 -11 26 -15 45
-26 144 -176 249 -248 173z m133 -74 c61 -63 83 -128 77 -234 -3 -60 -8 -78
-31 -108 -15 -19 -36 -39 -48 -42 -30 -10 -73 36 -93 99 -20 61 -24 242 -7
259 6 6 11 20 11 32 0 21 17 45 33 45 4 0 30 -23 58 -51z"/>
<path d="M405 1179 c-14 -22 -18 -168 -5 -184 19 -23 40 -18 40 10 0 18 7 26
25 31 23 6 25 10 25 70 0 43 -4 66 -12 68 -41 13 -68 15 -73 5z"/>
<path d="M1146 1213 c-41 -36 -56 -57 -61 -84 -9 -51 28 -143 80 -198 38 -40
47 -45 96 -48 50 -4 57 -2 101 32 71 55 79 99 41 215 -25 79 -91 130 -167 130
-27 0 -47 -11 -90 -47z m164 -35 c48 -52 64 -137 34 -184 -18 -27 -63 -54 -89
-54 -19 0 -75 53 -75 71 0 8 6 5 14 -6 8 -11 20 -16 29 -12 13 5 15 17 12 59
-4 44 -3 48 4 19 18 -66 48 -100 65 -72 7 11 -20 141 -33 154 -12 12 -31 1
-31 -19 0 -17 -12 -18 -28 -2 -19 19 -34 -4 -34 -56 -1 -25 -5 -46 -10 -46 -4
0 -8 24 -8 53 0 44 5 58 29 85 37 40 89 44 121 10z"/>
<path d="M1606 1122 c-3 -6 -19 -13 -35 -17 -49 -11 -66 -39 -65 -109 0 -33 6
-71 12 -83 14 -26 0 -40 -18 -18 -19 23 -43 18 -65 -12 -53 -71 -50 -69 -87
-54 -78 32 -118 27 -165 -19 -31 -31 -33 -31 -55 -14 -27 20 -62 90 -79 154
-16 66 -59 115 -113 130 -59 16 -89 8 -122 -36 -16 -20 -38 -40 -51 -45 -21
-8 -23 -15 -23 -73 0 -45 4 -67 16 -76 8 -8 21 -27 28 -45 15 -34 69 -85 92
-85 18 0 18 -14 -1 -30 -33 -27 -106 -144 -124 -197 l-19 -57 -11 40 c-16 56
-14 62 24 133 41 76 53 125 35 146 -21 25 -29 18 -64 -57 l-32 -73 -25 42
c-37 65 -108 82 -170 40 -31 -21 -72 -71 -82 -100 -6 -18 -41 4 -106 64 -30
27 -62 54 -72 60 -22 12 -62 12 -57 0 8 -22 118 -129 160 -156 l47 -30 1 -126
c0 -163 18 -339 36 -360 21 -23 143 -18 228 11 65 22 69 23 82 6 22 -30 48
-16 54 29 4 33 9 40 25 37 87 -12 189 -13 234 -2 46 11 51 15 51 40 0 22 5 28
23 28 12 0 78 5 147 11 69 5 138 7 154 4 26 -5 28 -8 23 -44 -8 -64 0 -67 148
-59 103 5 137 3 163 -8 31 -14 34 -13 58 9 24 22 26 29 23 104 -4 87 10 122
56 148 67 36 165 108 165 121 0 23 -19 29 -43 13 -47 -30 -139 -78 -143 -75
-2 3 -1 42 3 88 5 69 9 84 25 88 13 3 18 14 18 37 0 18 3 35 8 37 4 2 16 20
26 40 10 21 39 61 62 89 48 55 52 70 28 89 -13 11 -23 5 -69 -40 -29 -29 -61
-68 -71 -86 -23 -42 -34 -43 -56 -3 -11 18 -35 37 -58 47 -42 18 -49 32 -27
54 36 36 45 188 12 188 -8 0 -22 11 -31 25 -17 25 -26 30 -85 40 -21 4 -39 3
-43 -3z m79 -72 c29 -32 27 -116 -3 -157 -27 -38 -53 -42 -82 -11 -25 27 -26
50 -2 46 18 -3 18 1 6 73 -5 31 -2 39 17 53 31 21 42 20 64 -4z m-732 -60 c37
-39 41 -52 37 -100 -3 -34 -18 -61 -49 -87 -36 -31 -66 -29 -91 7 l-21 30 35
0 c41 0 40 -1 25 37 -6 15 -12 54 -14 85 -2 57 -2 58 35 67 3 0 22 -17 43 -39z
m-119 -102 c4 -17 2 -28 -4 -28 -5 0 -10 9 -10 19 0 11 -3 28 -6 38 -5 12 -4
15 3 8 6 -5 13 -22 17 -37z m804 -84 c20 -4 44 -12 52 -19 8 -7 30 -16 48 -20
26 -5 37 -15 48 -40 19 -47 28 -133 19 -200 -5 -47 -10 -58 -31 -66 -18 -6
-33 -5 -54 6 -16 8 -46 15 -66 15 l-38 0 41 30 c41 30 66 70 77 126 6 26 1 37
-41 84 -49 54 -93 80 -138 80 -14 0 -25 5 -25 11 0 7 12 9 35 5 19 -3 52 -9
73 -12z m-548 -39 c33 -34 33 -35 20 -75 -15 -44 -29 -50 -48 -20 -6 11 -30
29 -52 40 l-40 20 38 35 c20 19 39 35 43 35 3 0 20 -16 39 -35z m236 -2 c8
-10 21 -31 29 -48 18 -38 65 -311 65 -380 l0 -52 -146 -8 c-80 -4 -148 -4
-152 0 -3 3 -8 51 -10 105 -4 96 -4 100 17 100 18 0 21 6 21 38 1 44 28 144
53 189 34 64 95 91 123 56z m298 -54 c36 -43 42 -73 19 -111 -27 -47 -42 -47
-36 1 8 55 -3 90 -32 103 -32 14 -51 -1 -59 -47 -10 -52 1 -83 32 -87 30 -4
43 -28 14 -28 -11 0 -34 13 -51 29 -38 36 -42 85 -10 125 42 53 87 58 123 15z
m-1007 -99 c22 -43 36 -103 69 -290 8 -47 19 -100 25 -118 8 -24 8 -37 0 -46
-16 -19 -130 -46 -194 -46 l-54 0 -6 68 c-9 86 -9 290 0 320 4 16 11 22 23 19
20 -5 50 9 50 24 0 5 -11 14 -25 19 -33 13 -32 25 10 67 46 46 73 42 102 -17z
m395 9 c24 -48 40 -164 42 -299 l1 -115 -100 -3 c-55 -1 -118 1 -139 5 -36 8
-40 12 -52 58 -7 28 -16 75 -20 105 l-7 55 21 -19 c18 -15 24 -16 37 -6 8 7
15 18 15 25 0 51 100 208 144 225 30 12 39 8 58 -31z m479 -115 c10 -9 36 -18
58 -21 47 -6 51 -15 16 -31 -28 -13 -33 -43 -11 -61 11 -10 21 -9 46 4 17 9
47 15 67 13 30 -2 39 -9 55 -40 22 -42 44 -159 35 -183 -5 -11 -12 -13 -24 -7
-10 5 -57 7 -105 5 -71 -3 -88 -1 -88 11 0 7 -7 17 -16 20 -11 4 -14 13 -10
28 3 14 -1 30 -13 43 -14 15 -20 42 -24 109 -3 54 -10 91 -17 96 -7 4 -9 13
-6 19 10 15 16 14 37 -5z"/>
<path d="M1647 1033 c-9 -14 -11 -78 -3 -99 5 -16 12 -20 26 -17 16 4 20 14
20 48 0 24 -3 50 -6 59 -6 17 -29 22 -37 9z"/>
<path d="M897 974 c-21 -22 10 -114 39 -114 19 0 29 27 16 43 -6 6 -12 25 -14
42 -3 28 -25 44 -41 29z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 B

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 144 B

View file

@ -0,0 +1,482 @@
/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
Contents:
1. Buttons
2. Share modal and links
3. Index indicator ("1 of X" counter)
4. Caption
5. Loading indicator
6. Additional styles (root element, top bar, idle state, hidden state, etc.)
*/
/*
1. Buttons
*/
/* <button> css reset */
.pswp__button {
width: 44px;
height: 44px;
position: relative;
background: none;
cursor: pointer;
overflow: visible;
-webkit-appearance: none;
display: block;
border: 0;
padding: 0;
margin: 0;
float: right;
opacity: 0.75;
-webkit-transition: opacity 0.2s;
transition: opacity 0.2s;
-webkit-box-shadow: none;
box-shadow: none; }
.pswp__button:focus, .pswp__button:hover {
opacity: 1; }
.pswp__button:active {
outline: none;
opacity: 0.9; }
.pswp__button::-moz-focus-inner {
padding: 0;
border: 0; }
/* pswp__ui--over-close class it added when mouse is over element that should close gallery */
.pswp__ui--over-close .pswp__button--close {
opacity: 1; }
.pswp__button,
.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
background: url(default-skin.png) 0 0 no-repeat;
background-size: 264px 88px;
width: 44px;
height: 44px; }
@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
/* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
.pswp--svg .pswp__button,
.pswp--svg .pswp__button--arrow--left:before,
.pswp--svg .pswp__button--arrow--right:before {
background-image: url(default-skin.svg); }
.pswp--svg .pswp__button--arrow--left,
.pswp--svg .pswp__button--arrow--right {
background: none; } }
.pswp__button--close {
background-position: 0 -44px; }
.pswp__button--share {
background-position: -44px -44px; }
.pswp__button--fs {
display: none; }
.pswp--supports-fs .pswp__button--fs {
display: block; }
.pswp--fs .pswp__button--fs {
background-position: -44px 0; }
.pswp__button--zoom {
display: none;
background-position: -88px 0; }
.pswp--zoom-allowed .pswp__button--zoom {
display: block; }
.pswp--zoomed-in .pswp__button--zoom {
background-position: -132px 0; }
/* no arrows on touch screens */
.pswp--touch .pswp__button--arrow--left,
.pswp--touch .pswp__button--arrow--right {
visibility: hidden; }
/*
Arrow buttons hit area
(icon is added to :before pseudo-element)
*/
.pswp__button--arrow--left,
.pswp__button--arrow--right {
background: none;
top: 50%;
margin-top: -50px;
width: 70px;
height: 100px;
position: absolute; }
.pswp__button--arrow--left {
left: 0; }
.pswp__button--arrow--right {
right: 0; }
.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
content: '';
top: 35px;
background-color: rgba(0, 0, 0, 0.3);
height: 30px;
width: 32px;
position: absolute; }
.pswp__button--arrow--left:before {
left: 6px;
background-position: -138px -44px; }
.pswp__button--arrow--right:before {
right: 6px;
background-position: -94px -44px; }
/*
2. Share modal/popup and links
*/
.pswp__counter,
.pswp__share-modal {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
.pswp__share-modal {
display: block;
background: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
top: 0;
left: 0;
padding: 10px;
position: absolute;
z-index: 1600;
opacity: 0;
-webkit-transition: opacity 0.25s ease-out;
transition: opacity 0.25s ease-out;
-webkit-backface-visibility: hidden;
will-change: opacity; }
.pswp__share-modal--hidden {
display: none; }
.pswp__share-tooltip {
z-index: 1620;
position: absolute;
background: #FFF;
top: 56px;
border-radius: 2px;
display: block;
width: auto;
right: 44px;
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
-webkit-transform: translateY(6px);
-ms-transform: translateY(6px);
transform: translateY(6px);
-webkit-transition: -webkit-transform 0.25s;
transition: transform 0.25s;
-webkit-backface-visibility: hidden;
will-change: transform; }
.pswp__share-tooltip a {
display: block;
padding: 8px 12px;
color: #000;
text-decoration: none;
font-size: 14px;
line-height: 18px; }
.pswp__share-tooltip a:hover {
text-decoration: none;
color: #000; }
.pswp__share-tooltip a:first-child {
/* round corners on the first/last list item */
border-radius: 2px 2px 0 0; }
.pswp__share-tooltip a:last-child {
border-radius: 0 0 2px 2px; }
.pswp__share-modal--fade-in {
opacity: 1; }
.pswp__share-modal--fade-in .pswp__share-tooltip {
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0); }
/* increase size of share links on touch devices */
.pswp--touch .pswp__share-tooltip a {
padding: 16px 12px; }
a.pswp__share--facebook:before {
content: '';
display: block;
width: 0;
height: 0;
position: absolute;
top: -12px;
right: 15px;
border: 6px solid transparent;
border-bottom-color: #FFF;
-webkit-pointer-events: none;
-moz-pointer-events: none;
pointer-events: none; }
a.pswp__share--facebook:hover {
background: #3E5C9A;
color: #FFF; }
a.pswp__share--facebook:hover:before {
border-bottom-color: #3E5C9A; }
a.pswp__share--twitter:hover {
background: #55ACEE;
color: #FFF; }
a.pswp__share--pinterest:hover {
background: #CCC;
color: #CE272D; }
a.pswp__share--download:hover {
background: #DDD; }
/*
3. Index indicator ("1 of X" counter)
*/
.pswp__counter {
position: absolute;
left: 0;
top: 0;
height: 44px;
font-size: 13px;
line-height: 44px;
color: #FFF;
opacity: 0.75;
padding: 0 10px; }
/*
4. Caption
*/
.pswp__caption {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
min-height: 44px; }
.pswp__caption small {
font-size: 11px;
color: #BBB; }
.pswp__caption__center {
text-align: left;
max-width: 420px;
margin: 0 auto;
font-size: 13px;
padding: 10px;
line-height: 20px;
color: #CCC; }
.pswp__caption--empty {
display: none; }
/* Fake caption element, used to calculate height of next/prev image */
.pswp__caption--fake {
visibility: hidden; }
/*
5. Loading indicator (preloader)
You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR
*/
.pswp__preloader {
width: 44px;
height: 44px;
position: absolute;
top: 0;
left: 50%;
margin-left: -22px;
opacity: 0;
-webkit-transition: opacity 0.25s ease-out;
transition: opacity 0.25s ease-out;
will-change: opacity;
direction: ltr; }
.pswp__preloader__icn {
width: 20px;
height: 20px;
margin: 12px; }
.pswp__preloader--active {
opacity: 1; }
.pswp__preloader--active .pswp__preloader__icn {
/* We use .gif in browsers that don't support CSS animation */
background: url(preloader.gif) 0 0 no-repeat; }
.pswp--css_animation .pswp__preloader--active {
opacity: 1; }
.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
-webkit-animation: clockwise 500ms linear infinite;
animation: clockwise 500ms linear infinite; }
.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
-webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; }
.pswp--css_animation .pswp__preloader__icn {
background: none;
opacity: 0.75;
width: 14px;
height: 14px;
position: absolute;
left: 15px;
top: 15px;
margin: 0; }
.pswp--css_animation .pswp__preloader__cut {
/*
The idea of animating inner circle is based on Polymer ("material") loading indicator
by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
*/
position: relative;
width: 7px;
height: 14px;
overflow: hidden; }
.pswp--css_animation .pswp__preloader__donut {
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 14px;
height: 14px;
border: 2px solid #FFF;
border-radius: 50%;
border-left-color: transparent;
border-bottom-color: transparent;
position: absolute;
top: 0;
left: 0;
background: none;
margin: 0; }
@media screen and (max-width: 1024px) {
.pswp__preloader {
position: relative;
left: auto;
top: auto;
margin: 0;
float: right; } }
@-webkit-keyframes clockwise {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes clockwise {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@-webkit-keyframes donut-rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0); }
50% {
-webkit-transform: rotate(-140deg);
transform: rotate(-140deg); }
100% {
-webkit-transform: rotate(0);
transform: rotate(0); } }
@keyframes donut-rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0); }
50% {
-webkit-transform: rotate(-140deg);
transform: rotate(-140deg); }
100% {
-webkit-transform: rotate(0);
transform: rotate(0); } }
/*
6. Additional styles
*/
/* root element of UI */
.pswp__ui {
-webkit-font-smoothing: auto;
visibility: visible;
opacity: 1;
z-index: 1550; }
/* top black bar with buttons and "1 of X" indicator */
.pswp__top-bar {
position: absolute;
left: 0;
top: 0;
height: 44px;
width: 100%; }
.pswp__caption,
.pswp__top-bar,
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
-webkit-backface-visibility: hidden;
will-change: opacity;
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
/* pswp--has_mouse class is added only when two subsequent mousemove events occur */
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
visibility: visible; }
.pswp__top-bar,
.pswp__caption {
background-color: rgba(0, 0, 0, 0.5); }
/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption {
background-color: rgba(0, 0, 0, 0.3); }
/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
.pswp__ui--idle .pswp__top-bar {
opacity: 0; }
.pswp__ui--idle .pswp__button--arrow--left,
.pswp__ui--idle .pswp__button--arrow--right {
opacity: 0; }
/*
pswp__ui--hidden class is added when controls are hidden
e.g. when user taps to toggle visibility of controls
*/
.pswp__ui--hidden .pswp__top-bar,
.pswp__ui--hidden .pswp__caption,
.pswp__ui--hidden .pswp__button--arrow--left,
.pswp__ui--hidden .pswp__button--arrow--right {
/* Force paint & create composition layer for controls. */
opacity: 0.001; }
/* pswp__ui--one-slide class is added when there is just one item in gallery */
.pswp__ui--one-slide .pswp__button--arrow--left,
.pswp__ui--one-slide .pswp__button--arrow--right,
.pswp__ui--one-slide .pswp__counter {
display: none; }
.pswp__element--disabled {
display: none !important; }
.pswp--minimal--dark .pswp__top-bar {
background: none; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

View file

@ -0,0 +1 @@
<svg width="264" height="88" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg"><title>default-skin 2</title><g fill="none" fill-rule="evenodd"><g><path d="M67.002 59.5v3.768c-6.307.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098V71.5L73 65.585 67.002 59.5z" id="Shape" fill="#fff"/><g fill="#fff"><path d="M13 29v-5h2v3h3v2h-5zM13 15h5v2h-3v3h-2v-5zM31 15v5h-2v-3h-3v-2h5zM31 29h-5v-2h3v-3h2v5z" id="Shape"/></g><g fill="#fff"><path d="M62 24v5h-2v-3h-3v-2h5zM62 20h-5v-2h3v-3h2v5zM70 20v-5h2v3h3v2h-5zM70 24h5v2h-3v3h-2v-5z"/></g><path d="M20.586 66l-5.656-5.656 1.414-1.414L22 64.586l5.656-5.656 1.414 1.414L23.414 66l5.656 5.656-1.414 1.414L22 67.414l-5.656 5.656-1.414-1.414L20.586 66z" fill="#fff"/><path d="M111.785 65.03L110 63.5l3-3.5h-10v-2h10l-3-3.5 1.785-1.468L117 59l-5.215 6.03z" fill="#fff"/><path d="M152.215 65.03L154 63.5l-3-3.5h10v-2h-10l3-3.5-1.785-1.468L147 59l5.215 6.03z" fill="#fff"/><g><path id="Rectangle-11" fill="#fff" d="M160.957 28.543l-3.25-3.25-1.413 1.414 3.25 3.25z"/><path d="M152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" id="Oval-1" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M150 21h5v1h-5z"/></g><g><path d="M116.957 28.543l-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/><path d="M108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M106 21h5v1h-5z"/><path fill="#fff" d="M109.043 19.008l-.085 5-1-.017.085-5z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,179 @@
/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
*/
/* pswp = photoswipe */
.pswp {
display: none;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
overflow: hidden;
-ms-touch-action: none;
touch-action: none;
z-index: 1500;
-webkit-text-size-adjust: 100%;
/* create separate layer, to avoid paint on window.onscroll in webkit/blink */
-webkit-backface-visibility: hidden;
outline: none; }
.pswp * {
-webkit-box-sizing: border-box;
box-sizing: border-box; }
.pswp img {
max-width: none; }
/* style is added when JS option showHideOpacity is set to true */
.pswp--animate_opacity {
/* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
opacity: 0.001;
will-change: opacity;
/* for open/close transition */
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
.pswp--open {
display: block; }
.pswp--zoom-allowed .pswp__img {
/* autoprefixer: off */
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in; }
.pswp--zoomed-in .pswp__img {
/* autoprefixer: off */
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab; }
.pswp--dragging .pswp__img {
/* autoprefixer: off */
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing; }
/*
Background is added as a separate element.
As animating opacity is much faster than animating rgba() background-color.
*/
.pswp__bg {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #000;
opacity: 0;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-backface-visibility: hidden;
will-change: opacity; }
.pswp__scroll-wrap {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: hidden; }
.pswp__container,
.pswp__zoom-wrap {
-ms-touch-action: none;
touch-action: none;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0; }
/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none; }
.pswp__zoom-wrap {
position: absolute;
width: 100%;
-webkit-transform-origin: left top;
-ms-transform-origin: left top;
transform-origin: left top;
/* for open/close transition */
-webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }
.pswp__bg {
will-change: opacity;
/* for open/close transition */
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
-webkit-transition: none;
transition: none; }
.pswp__container,
.pswp__zoom-wrap {
-webkit-backface-visibility: hidden; }
.pswp__item {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
overflow: hidden; }
.pswp__img {
position: absolute;
width: auto;
height: auto;
top: 0;
left: 0; }
/*
stretched thumbnail or div placeholder element (see below)
style is added to avoid flickering in webkit/blink when layers overlap
*/
.pswp__img--placeholder {
-webkit-backface-visibility: hidden; }
/*
div element that matches size of large image
large image loads on top of it
*/
.pswp__img--placeholder--blank {
background: #222; }
.pswp--ie .pswp__img {
width: 100% !important;
height: auto !important;
left: 0;
top: 0; }
/*
Error message appears when image is not loaded
(JS option errorMsg controls markup)
*/
.pswp__error-msg {
position: absolute;
left: 0;
top: 50%;
width: 100%;
text-align: center;
font-size: 14px;
line-height: 16px;
margin-top: -8px;
color: #CCC; }
.pswp__error-msg a {
color: #CCC;
text-decoration: underline; }

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View file

@ -16,7 +16,7 @@
<td class="project-actions"> <td class="project-actions">
<a class="edit" href="{{ url_for(".edit_project", project_id=project.id) }}" title="{{ _("edit") }}">{{ _('edit') }}</a> <a class="edit" href="{{ url_for(".edit_project", project_id=project.id) }}" title="{{ _("edit") }}">{{ _('edit') }}</a>
<a class="delete" href="{{ url_for(".delete_project", project_id=project.id) }}" title="{{ _("delete") }}">{{ _('delete') }}</a> <a class="delete" href="{{ url_for(".delete_project", project_id=project.id) }}" title="{{ _("delete") }}">{{ _('delete') }}</a>
<a class="see" href="{{ url_for(".list_bills", project_id=project.id) }}" title="{{ _("see") }}">{{ _('see') }}</a> <a class="show" href="{{ url_for(".list_bills", project_id=project.id) }}" title="{{ _("show") }}">{{ _('show') }}</a>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}

View file

@ -48,11 +48,11 @@
<span class="mb-1">{{ _('Bill items') }}</span> <span class="mb-1">{{ _('Bill items') }}</span>
<span> <span>
<a href="{{ url_for('.export_project', file='bills', format='json') }}" download class="badge badge-secondary"> <a href="{{ url_for('.export_project', file='bills', format='json') }}" download class="badge badge-secondary">
<i class="icon plus">{{ static_include("images/file-alt.svg") | safe }}</i> <i class="icon before-text">{{ static_include("images/file-alt.svg") | safe }}</i>
JSON JSON
</a> </a>
<a href="{{ url_for('.export_project', file='bills', format='csv') }}" download class="badge badge-secondary"> <a href="{{ url_for('.export_project', file='bills', format='csv') }}" download class="badge badge-secondary">
<i class="icon plus">{{ static_include("images/file-csv-solid.svg") | safe }}</i> <i class="icon before-text">{{ static_include("images/file-csv-solid.svg") | safe }}</i>
CSV CSV
</a> </a>
</span> </span>
@ -64,11 +64,11 @@
<span class="mb-1">{{ _('Settle plans') }}</span> <span class="mb-1">{{ _('Settle plans') }}</span>
<span> <span>
<a href="{{ url_for('.export_project', file='transactions', format='json') }}" download class="badge badge-secondary"> <a href="{{ url_for('.export_project', file='transactions', format='json') }}" download class="badge badge-secondary">
<i class="icon plus">{{ static_include("images/file-alt.svg") | safe }}</i> <i class="icon before-text">{{ static_include("images/file-alt.svg") | safe }}</i>
JSON JSON
</a> </a>
<a href="{{ url_for('.export_project', file='transactions', format='csv') }}" download class="badge badge-secondary"> <a href="{{ url_for('.export_project', file='transactions', format='csv') }}" download class="badge badge-secondary">
<i class="icon plus">{{ static_include("images/file-csv-solid.svg") | safe }}</i> <i class="icon before-text">{{ static_include("images/file-csv-solid.svg") | safe }}</i>
CSV CSV
</a> </a>
</span> </span>

View file

@ -75,6 +75,7 @@
{{ input(form.name) }} {{ input(form.name) }}
{{ input(form.password) }} {{ input(form.password) }}
{{ input(form.contact_email) }} {{ input(form.contact_email) }}
{{ input(form.default_currency) }}
{% if not home %} {% if not home %}
{{ submit(form.submit, home=True) }} {{ submit(form.submit, home=True) }}
{% endif %} {% endif %}
@ -96,6 +97,7 @@
</div> </div>
</div> </div>
{{ input(form.default_currency) }}
<div class="actions"> <div class="actions">
<button class="btn btn-primary">{{ _("Edit the project") }}</button> <button class="btn btn-primary">{{ _("Edit the project") }}</button>
<a id="delete-project" style="color:red; margin-left:10px; cursor:pointer; ">{{ _("delete") }}</a> <a id="delete-project" style="color:red; margin-left:10px; cursor:pointer; ">{{ _("delete") }}</a>
@ -122,6 +124,9 @@
{{ input(form.what, inline=True) }} {{ input(form.what, inline=True) }}
{{ input(form.payer, inline=True, class="form-control custom-select") }} {{ input(form.payer, inline=True, class="form-control custom-select") }}
{{ input(form.amount, inline=True) }} {{ input(form.amount, inline=True) }}
{% if g.project.default_currency != "XXX" %}
{{ input(form.original_currency, inline=True) }}
{% endif %}
{{ input(form.external_link, inline=True) }} {{ input(form.external_link, inline=True) }}
<div class="form-group row"> <div class="form-group row">

View file

@ -99,23 +99,7 @@
{% block sidebar %} {% block sidebar %}
<div id="table_overflow"> <div id="table_overflow">
<table class="balance table"> {{ balance_table(show_weight=False, show_header=True) }}
<thead>
<tr class="d-none d-md-table-row">
<th>{{ _("Who?") }}</th>
<th class="balance-value">{{ _("Balance") }}</th>
</tr>
</thead>
{% set balance = g.project.balance %}
{% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id]|round(2) != 0 %}
<tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}>
<td class="balance-name">{{ member.name }}</td>
<td class="balance-value {% if balance[member.id]|round(2) > 0 %}positive{% elif balance[member.id]|round(2) < 0 %}negative{% endif %}">
{% if balance[member.id]|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(balance[member.id]) }}
</td>
</tr>
{% endfor %}
</table>
</div> </div>
{% endblock %} {% endblock %}
@ -251,7 +235,11 @@
{% elif event.prop_changed == "amount" %} {% elif event.prop_changed == "amount" %}
{{ bill_property_change(event, _("amount")) }} {{ bill_property_change(event, _("amount")) }}
{% elif event.prop_changed == "date" %} {% elif event.prop_changed == "date" %}
{{ bill_property_change(event, _("date")) }} {{ simple_property_change(event, _("Date")) }}
{% elif event.prop_changed == "original_currency" %}
{{ simple_property_change(event, _("Currency")) }}
{% elif event.prop_changed == "converted_amount" %}
{{ simple_property_change(event, _("Amount in %(currency)s", currency=g.project.default_currency)) }}
{% else %} {% else %}
{% if event.object_type == "Bill" %} {% if event.object_type == "Bill" %}
{% set bill_description=em_surround(event.object_desc) %} {% set bill_description=em_surround(event.object_desc) %}
@ -293,7 +281,7 @@
<div class="py-3 d-flex justify-content-center empty-bill"> <div class="py-3 d-flex justify-content-center empty-bill">
<div class="card d-inline-flex p-2"> <div class="card d-inline-flex p-2">
<div class="card-body text-center text-muted"> <div class="card-body text-center text-muted">
<i class="icon icon-white hand-holding-heart">{{ static_include("images/hand-holding-heart.svg") | safe }}</i> <i class="icon icon-white billimg">{{ static_include("images/bill.svg") | safe }}</i>
<h3>{{ _('Nothing to list')}}</h3> <h3>{{ _('Nothing to list')}}</h3>
<p> <p>
{{ _("Someone probably cleared the project history.") }} {{ _("Someone probably cleared the project history.") }}

View file

@ -9,14 +9,23 @@
{{ _("Try out the demo") }} {{ _("Try out the demo") }}
</a> </a>
{% endif %} {% endif %}
{% if g.lang == 'fr' %}
ou <a class="showcase btn" onclick="javascript:showGallery(); return false;">Voir la BD explicative</a>
<img class="showcaseimg" src="{{ url_for("static", filename='images/indicate.svg') }}" />
{% endif %}
</div> </div>
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<p class="additional-content"> <table class="additional-content"><tr>
<td>
{{ _("You're sharing a house?") }}<br /> {{ _("You're sharing a house?") }}<br />
{{ _("Going on holidays with friends?") }}<br /> {{ _("Going on holidays with friends?") }}<br />
{{ _("Simply sharing money with others?") }} <br /> {{ _("Simply sharing money with others?") }} <br />
<strong>{{ _("We can help!") }}</strong> <strong>{{ _("We can help!") }}</strong>
</p> </td>
<td>
<img class="shareimg" src="{{ url_for("static", filename='images/share.svg') }}" />
</td>
</tr></table>
</div> </div>
</header> </header>
<main class="row home"> <main class="row home">
@ -82,7 +91,7 @@
{% endblock %} {% endblock %}
{% block js %} {% block js %}
$('#creation-form #password').tooltip({ $('#creation-form #password').tooltip({
title: '{{ _("This access code will be sent to your friends. It is stored as-is by the server, so don\\'t reuse a personal password!")}}', title: '{{ _("Don\\'t reuse a personal password. Choose a private code and send it to your friends")}}',
trigger: 'focus', trigger: 'focus',
placement: 'right' placement: 'right'
}); });

View file

@ -1,11 +1,11 @@
Salut, Salut,
Quelqu'un avec l'adresse "{{ g.project.contact_email }}" vous à invité à partager vos dépenses pour "{{ g.project.name }}". Quelqu'un dont l'adresse email est {{ g.project.contact_email }} vous a invité à partager vos dépenses pour « {{ g.project.name }} ».
C'est aussi simple que de dire qui à payé pour quoi, pour qui, et combien celà à coûté, on soccupe du reste. Il suffit de renseigner qui a payé pour quoi, pour qui, combien ça a coûté, et on soccupe du reste.
Vous pouvez vous authentifier avec le lien suivant: {{ url_for(".authenticate", _external=True, token=g.project.generate_token()) }}. Vous pouvez vous connecter grâce à ce lien : {{ url_for(".authenticate", _external=True, token=g.project.generate_token()) }}.
Une fois authentifié, vous pouvez utiliser le lien suivant qui est plus facile à mémoriser: {{ url_for(".list_bills", _external=True) }} Une fois connecté, vous pourrez utiliser le lien suivant qui est plus facile à mémoriser : {{ url_for(".list_bills", _external=True) }}
Si votre cookie est supprimé ou si vous vous déconnectez, vous devrez vous authentifier à nouveau en utilisant le premier lien. Si vous êtes déconnecté volontairement ou non, vous devrez utiliser à nouveau le premier lien.
Have fun, Have fun !

View file

@ -16,6 +16,7 @@
<link rel=stylesheet type=text/css href="{{ url_for("static", filename='css/datatables.min.css') }}"> <link rel=stylesheet type=text/css href="{{ url_for("static", filename='css/datatables.min.css') }}">
<script src="{{ url_for("static", filename="js/datatables.min.js") }}"></script> <script src="{{ url_for("static", filename="js/datatables.min.js") }}"></script>
{%- endif %} {%- endif %}
{% block head %}{% endblock %} {% block head %}{% endblock %}
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
$(document).ready(function(){ $(document).ready(function(){
@ -32,6 +33,7 @@
</script> </script>
</head> </head>
<body class="d-flex flex-column h-100"> <body class="d-flex flex-column h-100">
{% if g.lang == 'fr' %}{% include "showcase.html" %}{% endif %}
<nav class="navbar navbar-expand-lg fixed-top navbar-dark bg-dark"> <nav class="navbar navbar-expand-lg fixed-top navbar-dark bg-dark">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler" aria-controls="navbarToggler" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler" aria-controls="navbarToggler" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
@ -85,7 +87,7 @@
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarProjectsLinks"> <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarProjectsLinks">
<li> <li>
<a class="dropdown-item" href="{{ url_for("main.create_project") }}"> <a class="dropdown-item" href="{{ url_for("main.create_project") }}">
<i class="icon plus">{{ static_include("images/plus.svg") | safe }}</i> <i class="icon before-text">{{ static_include("images/plus.svg") | safe }}</i>
{{ _("Start a new project") }} {{ _("Start a new project") }}
</a> </a>
</li> </li>
@ -125,8 +127,12 @@
</div> </div>
<div class="messages"> <div class="messages">
{% for message in get_flashed_messages() %} {% for category, message in get_flashed_messages(with_categories=true) %}
{% if category == "message" %}{# Default category for flash(msg) #}
<div class="flash alert alert-success">{{ message }}</div> <div class="flash alert alert-success">{{ message }}</div>
{% else %}
<div class="flash alert alert-{{ category }}">{{ message }}</div>
{% endif %}
{% endfor %} {% endfor %}
</div> </div>
@ -138,7 +144,7 @@
<a target="_blank" rel="noopener" data-toggle="tooltip" data-placement="top" title="{{ _('Code') }}" href="https://github.com/spiral-project/ihatemoney"> <a target="_blank" rel="noopener" data-toggle="tooltip" data-placement="top" title="{{ _('Code') }}" href="https://github.com/spiral-project/ihatemoney">
<i class="icon git">{{ static_include("images/git.svg") | safe }}</i> <i class="icon git">{{ static_include("images/git.svg") | safe }}</i>
</a> </a>
<a target="_blank" rel="noopener" data-toggle="tooltip" data-placement="top" title="{{ _('Mobile Application') }}" href="https://gitlab.com/eneiluj/moneybuster"> <a target="_blank" rel="noopener" data-toggle="tooltip" data-placement="top" title="{{ _('Mobile Application') }}" href="https://gitlab.com/eneiluj/moneybuster#moneybuster-for-android">
<i class="icon mobile">{{ static_include("images/mobile-alt.svg") | safe }}</i> <i class="icon mobile">{{ static_include("images/mobile-alt.svg") | safe }}</i>
</a> </a>
<a target="_blank" rel="noopener" data-toggle="tooltip" data-placement="top" title="{{ _('Documentation') }}" href="https://ihatemoney.readthedocs.io/en/latest/"> <a target="_blank" rel="noopener" data-toggle="tooltip" data-placement="top" title="{{ _('Documentation') }}" href="https://ihatemoney.readthedocs.io/en/latest/">

View file

@ -1,5 +1,9 @@
{% extends "sidebar_table_layout.html" %} {% extends "sidebar_table_layout.html" %}
{%- macro bill_amount(bill, currency=bill.original_currency, amount=bill.amount) %}
{{ amount|currency(currency) }} ({{ _("%(amount)s each", amount=bill.pay_each_default(amount)|currency(currency)) }})
{% endmacro -%}
{% block title %} - {{ g.project.name }}{% endblock %} {% block title %} - {{ g.project.name }}{% endblock %}
{% block js %} {% block js %}
{% if add_bill %} $('#new-bill > a').click(); {% endif %} {% if add_bill %} $('#new-bill > a').click(); {% endif %}
@ -41,36 +45,18 @@
</form> </form>
<div id="table_overflow"> <div id="table_overflow">
<table class="balance table"> {{ balance_table(member_edit=True) }}
{% set balance = g.project.balance %}
{% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id]|round(2) != 0 %}
<tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}>
<td class="balance-name">{{ member.name }}
<span class="light{% if not g.project.uses_weights %} extra-info{% endif %}">(x{{ member.weight|minimal_round(1) }})</span>
</td>
{% if member.activated %}
<td>
<form class="action delete" action="{{ url_for(".remove_member", member_id=member.id) }}" method="POST">
<button type="submit">{{ _("deactivate") }}</button></form>
<form class="action edit" action="{{ url_for(".edit_member", member_id=member.id) }}" method="GET">
<button type="submit">{{ _("edit") }}</button></form>
</td>
{% else %}
<td>
<form class="action reactivate" action="{{ url_for(".reactivate", member_id=member.id) }}" method="POST">
<button type="submit">{{ _("reactivate") }}</button></form></td>
{% endif %}
<td class="balance-value {% if balance[member.id]|round(2) > 0 %}positive{% elif balance[member.id]|round(2) < 0 %}negative{% endif %}">
{% if balance[member.id]|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(balance[member.id]) }}
</td>
</tr>
{% endfor %}
</table>
</div> </div>
</div> </div>
<div class="identifier"> <div class="identifier">
{% if g.lang == 'fr' %}
<a class="btn btn-secondary btn-block" href="" onclick="javascript:showGallery(); return false;">
<i class="icon icon-white high before-text">{{ static_include("images/read.svg") | safe }}</i>
Voir la BD explicative
</a>
{% endif %}
<a class="btn btn-secondary btn-block" href="{{ url_for('.invite') }}"> <a class="btn btn-secondary btn-block" href="{{ url_for('.invite') }}">
<i class="icon icon-white paper-plane">{{ static_include("images/paper-plane.svg") | safe }}</i> <i class="icon icon-white high before-text">{{ static_include("images/paper-plane.svg") | safe }}</i>
{{ _("Invite people") }} {{ _("Invite people") }}
</a> </a>
</div> </div>
@ -79,7 +65,7 @@
{% block content %} {% block content %}
<span id="new-bill" class="float-right" {% if not g.project.members %} data-toggle="tooltip" title="{{_('You should start by adding participants')}}" {% endif %}> <span id="new-bill" class="float-right" {% if not g.project.members %} data-toggle="tooltip" title="{{_('You should start by adding participants')}}" {% endif %}>
<a href="{{ url_for('.add_bill') }}" class="btn btn-primary float-right {% if not g.project.members %} disabled {% endif %}" data-toggle="modal" data-keyboard="false" data-target="#bill-form"> <a href="{{ url_for('.add_bill') }}" class="btn btn-primary float-right {% if not g.project.members %} disabled {% endif %}" data-toggle="modal" data-keyboard="false" data-target="#bill-form">
<i class="icon icon-white plus">{{ static_include("images/plus.svg") | safe }}</i> <i class="icon icon-white before-text">{{ static_include("images/plus.svg") | safe }}</i>
{{ _("Add a new bill") }} {{ _("Add a new bill") }}
</a> </a>
</span> </span>
@ -111,7 +97,14 @@
<div class="clearfix"></div> <div class="clearfix"></div>
<table id="bill_table" class="col table table-striped table-hover table-responsive-sm"> <table id="bill_table" class="col table table-striped table-hover table-responsive-sm">
<thead><tr><th>{{ _("When?") }}</th><th>{{ _("Who paid?") }}</<th><th>{{ _("For what?") }}</th><th>{{ _("For whom?") }}</th><th>{{ _("How much?") }}</th><th>{{ _("Actions") }}</th></tr></thead> <thead>
<tr><th>{{ _("When?") }}
</th><th>{{ _("Who paid?") }}
</th><th>{{ _("For what?") }}
</th><th>{{ _("For whom?") }}
</th><th>{{ _("How much?") }}
</th><th>{{ _("Actions") }}</th></tr>
</thead>
<tbody> <tbody>
{% for bill in bills.items %} {% for bill in bills.items %}
<tr owers="{{bill.owers|join(',','id')}}" payer="{{bill.payer.id}}"> <tr owers="{{bill.owers|join(',','id')}}" payer="{{bill.payer.id}}">
@ -130,12 +123,17 @@
{%- else -%} {%- else -%}
{{ bill.owers|join(', ', 'name') }} {{ bill.owers|join(', ', 'name') }}
{%- endif %}</td> {%- endif %}</td>
<td>{{ "%0.2f"|format(bill.amount) }} ({{ "%0.2f"|format(bill.pay_each()) }} {{ _("each") }})</td> <td>
<span data-toggle="tooltip" data-placement="top"
title="{{ bill_amount(bill, g.project.default_currency, bill.converted_amount) if bill.original_currency != g.project.default_currency else '' }}">
{{ bill_amount(bill) }}
</span>
</td>
<td class="bill-actions"> <td class="bill-actions">
<a class="edit" href="{{ url_for(".edit_bill", bill_id=bill.id) }}" title="{{ _("edit") }}">{{ _('edit') }}</a> <a class="edit" href="{{ url_for(".edit_bill", bill_id=bill.id) }}" title="{{ _("edit") }}">{{ _('edit') }}</a>
<a class="delete" href="{{ url_for(".delete_bill", bill_id=bill.id) }}" title="{{ _("delete") }}">{{ _('delete') }}</a> <a class="delete" href="{{ url_for(".delete_bill", bill_id=bill.id) }}" title="{{ _("delete") }}">{{ _('delete') }}</a>
{% if bill.external_link %} {% if bill.external_link %}
<a class="see" href="{{ bill.external_link }}" ref="noopener" target="_blank" title="{{ _("see") }}">{{ _('see') }} </a> <a class="show" href="{{ bill.external_link }}" ref="noopener" target="_blank" title="{{ _("show") }}">{{ _('show') }} </a>
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
@ -161,7 +159,7 @@
<div class="py-3 d-flex justify-content-center empty-bill"> <div class="py-3 d-flex justify-content-center empty-bill">
<div class="card d-inline-flex p-2"> <div class="card d-inline-flex p-2">
<div class="card-body text-center text-muted"> <div class="card-body text-center text-muted">
<i class="icon icon-white hand-holding-heart">{{ static_include("images/hand-holding-heart.svg") | safe }}</i> <i class="icon icon-white billimg">{{ static_include("images/bill.svg") | safe }}</i>
<h3>{{ _('No bills')}}</h3> <h3>{{ _('No bills')}}</h3>
<p> <p>
{{ _("Nothing to list yet.")}}<br /> {{ _("Nothing to list yet.")}}<br />

View file

@ -4,4 +4,4 @@ Vous avez demandé à réinitialiser le mot de passe du projet suivant : "{{ pro
Vous pouvez le réinitialiser ici : {{ url_for(".reset_password", _external=True, token=project.generate_token(expiration=3600)) }}. Vous pouvez le réinitialiser ici : {{ url_for(".reset_password", _external=True, token=project.generate_token(expiration=3600)) }}.
Ce lien est seulement valide pendant 1 heure. Ce lien est seulement valide pendant 1 heure.
Faites en bon usage ! Faites-en bon usage !

View file

@ -1,9 +1,9 @@
Hey, Salut,
Vous venez de créer le projet "{{ g.project.name }}" pour partager vos dépenses. Vous venez de créer le projet "{{ g.project.name }}" pour partager vos dépenses.
Vous pouvez y accéder ici: {{ url_for(".list_bills", _external=True) }} (l'identifiant est {{ g.project.id }}). Vous pouvez y accéder ici : {{ url_for(".list_bills", _external=True) }} (l'identifiant est {{ g.project.id }}).
Si vous voulez partager ce projet avec vos amis, vous pouvez partager son identifiant et son code d'accès avec eux ou leur envoyer une invitation avec le lien suivant : Si vous voulez partager ce projet avec vos amis, vous pouvez soit leur transmettre l'identifiant et le code d'accès, soit leur envoyer une invitation personnelle grâce au lien suivant :
{{ url_for(".invite", _external=True) }} {{ url_for(".invite", _external=True) }}
Faites en bon usage ! Faites-en bon usage !

View file

@ -2,17 +2,7 @@
{% block sidebar %} {% block sidebar %}
<div id="table_overflow"> <div id="table_overflow">
<table class="balance table"> {{ balance_table(show_weight=False) }}
{% set balance = g.project.balance %}
{% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id]|round(2) != 0 %}
<tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}>
<td class="balance-name">{{ member.name }}</td>
<td class="balance-value {% if balance[member.id]|round(2) > 0 %}positive{% elif balance[member.id]|round(2) < 0 %}negative{% endif %}">
{% if balance[member.id]|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(balance[member.id]) }}
</td>
</tr>
{% endfor %}
</table>
</div> </div>
{% endblock %} {% endblock %}
@ -25,7 +15,7 @@
<tr receiver={{bill.receiver.id}}> <tr receiver={{bill.receiver.id}}>
<td>{{ bill.ower }}</td> <td>{{ bill.ower }}</td>
<td>{{ bill.receiver }}</td> <td>{{ bill.receiver }}</td>
<td>{{ "%0.2f"|format(bill.amount) }}</td> <td>{{ bill.amount|currency }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>

View file

@ -0,0 +1,67 @@
<div id="pswp" class="hiddenpswp" tabindex="-1" role="dialog" aria-hidden="true">
<div class="pswp__bg"></div>
<div class="pswp__scroll-wrap">
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Fermer (Esc)"></button>
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Suivant (flèche droite)">
</button>
<button class="pswp__button pswp__button--arrow--right" title="Précédent (flèche gauche)">
</button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var pswpElement = document.getElementById('pswp');
var items = JSON.parse('[{"h": 2450, "src": "/static/showcase/1.jpg", "w": 2450}, {"h": 2509, "src": "/static/showcase/2.jpg", "w": 2221}, {"h": 2536, "src": "/static/showcase/3.jpg", "w": 2101}, {"h": 2722, "src": "/static/showcase/4.jpg", "w": 2348}, {"h": 2745, "src": "/static/showcase/5.jpg", "w": 1804}, {"h": 3307, "src": "/static/showcase/6.jpg", "w": 2897}, {"h": 2321, "src": "/static/showcase/7.jpg", "w": 2239}, {"h": 2470, "src": "/static/showcase/8.jpg", "w": 2419}, {"h": 3307, "src": "/static/showcase/9.jpg", "w": 2602}]');
var options = {
index: 0,
loop: false,
};
function showGallery(){
/* the CSS and JS for photoswipe is loaded dynamically
* so that they are not loaded if the gallery is not open */
$('head').append('<link rel="stylesheet" type="text/css" href="{{ url_for("static", filename="photoswipe/default-skin/default-skin.css") }}">');
$('head').append('<link rel="stylesheet" type="text/css" href="{{ url_for("static", filename="photoswipe/photoswipe.css") }}">');
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "{{ url_for('static', filename='photoswipe/photoswipe.min.js')}}";
script.onload = function(){
var script2 = document.createElement("script");
script2.type = "text/javascript";
script2.src = "{{ url_for('static', filename='photoswipe/photoswipe-ui-default.min.js')}}";
script2.onload = function(){
pswpElement.className="pswp";
var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};
document.body.appendChild(script2);
};
document.body.appendChild(script);
}
</script>

View file

@ -1,5 +1,49 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% macro balance_table(show_weight = True, show_header = False, member_edit = False) %}
<table class="balance table">
{%- set balance = g.project.balance %}
{%- if show_header %}
<thead>
<tr class="d-none d-md-table-row">
<th>{{ _("Who?") }}</th>
<th class="balance-value">{{ _("Balance") }}</th>
</tr>
</thead>
{%- endif %}
{%- for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id]|round(2) != 0 %}
<tr id="bal-member-{{ member.id }}" action="{% if member.activated %}delete{% else %}reactivate{% endif %}">
<td class="balance-name">{{ member.name }}
{%- if show_weight -%}
<span class="light{% if not g.project.uses_weights %} extra-info{% endif %}">(x{{ member.weight|minimal_round(1) }})</span>
{%- endif -%}
</td>
{%- if member_edit %}
{%- if member.activated %}
<td>
<form class="action delete" action="{{ url_for(".remove_member", member_id=member.id) }}" method="POST">
<button type="submit">{{ _("deactivate") }}</button>
</form>
<form class="action edit" action="{{ url_for(".edit_member", member_id=member.id) }}" method="GET">
<button type="submit">{{ _("edit") }}</button>
</form>
</td>
{%- else %}
<td>
<form class="action reactivate" action="{{ url_for(".reactivate", member_id=member.id) }}" method="POST">
<button type="submit">{{ _("reactivate") }}</button>
</form>
</td>
{%- endif %}
{%- endif %}
<td class="balance-value {% if balance[member.id]|round(2) > 0 %}positive{% elif balance[member.id]|round(2) < 0 %}negative{% endif %}">
{% if balance[member.id] | round(2) > 0 %}+{% endif %}{{ balance[member.id]|currency }}
</td>
</tr>
{%- endfor %}
</table>
{% endmacro %}
{% block body %} {% block body %}
<div class="row"> <div class="row">
<aside id="sidebar" class="sidebar col-xs-12 col-md-3 " style="height: 100%"> <aside id="sidebar" class="sidebar col-xs-12 col-md-3 " style="height: 100%">

View file

@ -2,22 +2,7 @@
{% block sidebar %} {% block sidebar %}
<div id="table_overflow" class="statistics mr-md-n3"> <div id="table_overflow" class="statistics mr-md-n3">
<table class="balance table"> {{ balance_table(show_weight=False, show_header=True) }}
<thead>
<tr class="d-none d-md-table-row">
<th>{{ _("Who?") }}</th>
<th class="balance-value">{{ _("Balance") }}</th>
</tr>
</thead>
{% for stat in members_stats| sort(attribute='member.name') %}
<tr>
<td class="balance-name">{{ stat.member.name }}</td>
<td class="balance-value {% if stat.balance|round(2) > 0 %}positive{% elif stat.balance|round(2) < 0 %}negative{% endif %}">
{% if stat.balance|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(stat.balance) }}
</td>
</tr>
{% endfor %}
</table>
</div> </div>
{% endblock %} {% endblock %}
@ -27,11 +12,11 @@
<table id="bill_table" class="split_bills table table-striped ml-md-n3"> <table id="bill_table" class="split_bills table table-striped ml-md-n3">
<thead><tr><th class="d-md-none">{{ _("Who?") }}</th><th>{{ _("Paid") }}</th><th>{{ _("Spent") }}</th></tr></thead> <thead><tr><th class="d-md-none">{{ _("Who?") }}</th><th>{{ _("Paid") }}</th><th>{{ _("Spent") }}</th></tr></thead>
<tbody> <tbody>
{% for stat in members_stats %} {% for stat in members_stats|sort(attribute='member.name') %}
<tr> <tr>
<td class="d-md-none">{{ stat.member.name }}</td> <td class="d-md-none">{{ stat.member.name }}</td>
<td>{{ "%0.2f"|format(stat.paid) }}</td> <td>{{ stat.paid|currency }}</td>
<td>{{ "%0.2f"|format(stat.spent) }}</td> <td>{{ stat.spent|currency }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
@ -43,7 +28,7 @@
{% for month in months %} {% for month in months %}
<tr> <tr>
<td>{{ _(month.strftime("%B")) }} {{ month.year }}</td> <td>{{ _(month.strftime("%B")) }} {{ month.year }}</td>
<td>{{ "%0.2f"|format(monthly_stats[month.year][month.month]) }}</td> <td>{{ monthly_stats[month.year][month.month]|currency }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,771 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-31 12:12+0200\n"
"PO-Revision-Date: 2020-08-01 10:41+0000\n"
"Last-Translator: Oymate <dhruboadittya96@gmail.com>\n"
"Language-Team: Bengali (Bangladesh) <https://hosted.weblate.org/projects/"
"i-hate-money/i-hate-money/bn_BD/>\n"
"Language: bn_BD\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.2-dev\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr ""
"কোন বৈধ পরিমাণ বা অভিব্যক্তি নয়। শুধুমাত্র সংখ্যা এবং + - * / অপারেটর গ্রহণ "
"করা হয়।"
msgid "Project name"
msgstr "প্রকল্পের নাম"
msgid "Private code"
msgstr "ব্যক্তিগত কোড"
msgid "Email"
msgstr "ইমেইল"
msgid "Enable project history"
msgstr "প্রকল্পের ইতিহাস সক্রিয় করো"
msgid "Use IP tracking for project history"
msgstr ""
msgid "Default Currency"
msgstr ""
msgid "Import previously exported JSON file"
msgstr ""
msgid "Import"
msgstr ""
msgid "Project identifier"
msgstr ""
msgid "Create the project"
msgstr ""
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr ""
msgid "Get in"
msgstr ""
msgid "Admin password"
msgstr ""
msgid "Send me the code by email"
msgstr ""
msgid "This project does not exists"
msgstr ""
msgid "Password mismatch"
msgstr ""
msgid "Password"
msgstr ""
msgid "Password confirmation"
msgstr ""
msgid "Reset password"
msgstr ""
msgid "Date"
msgstr ""
msgid "What?"
msgstr ""
msgid "Payer"
msgstr ""
msgid "Amount paid"
msgstr ""
msgid "Currency"
msgstr ""
msgid "External link"
msgstr ""
msgid "A link to an external document, related to this bill"
msgstr ""
msgid "For whom?"
msgstr ""
msgid "Submit"
msgstr ""
msgid "Submit and add a new one"
msgstr ""
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null"
msgstr ""
msgid "Name"
msgstr ""
msgid "Weights should be positive"
msgstr ""
msgid "Weight"
msgstr ""
msgid "Add"
msgstr ""
msgid "User name incorrect"
msgstr ""
msgid "This project already have this member"
msgstr ""
msgid "People to notify"
msgstr ""
msgid "Send invites"
msgstr ""
#, python-format
msgid "The email %(email)s is not valid"
msgstr ""
msgid "Participant"
msgstr ""
msgid "Bill"
msgstr ""
msgid "Project"
msgstr ""
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later."
msgstr ""
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr ""
msgid "You either provided a bad token or no project identifier."
msgstr ""
msgid "This private code is not the right one"
msgstr ""
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr ""
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format
msgid "The project identifier is %(project)s"
msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
msgid "No token provided"
msgstr ""
msgid "Invalid token"
msgstr ""
msgid "Unknown project"
msgstr ""
msgid "Password successfully reset."
msgstr ""
msgid "Project successfully uploaded"
msgstr ""
msgid "Invalid JSON"
msgstr ""
msgid "Project successfully deleted"
msgstr ""
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr ""
msgid "Your invitations have been sent"
msgstr ""
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format
msgid "%(member)s has been added"
msgstr ""
#, python-format
msgid "%(name)s is part of this project again"
msgstr ""
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
#, python-format
msgid "User '%(name)s' has been removed"
msgstr ""
#, python-format
msgid "User '%(name)s' has been edited"
msgstr ""
msgid "The bill has been added"
msgstr ""
msgid "The bill has been deleted"
msgstr ""
msgid "The bill has been modified"
msgstr ""
msgid "Sorry, we were unable to find the page you've asked for."
msgstr ""
msgid "The best thing to do is probably to get back to the main page."
msgstr ""
msgid "Back to the list"
msgstr ""
msgid "Administration tasks are currently disabled."
msgstr ""
msgid "The project you are trying to access do not exist, do you want to"
msgstr ""
msgid "create it"
msgstr ""
msgid "?"
msgstr ""
msgid "Create a new project"
msgstr ""
msgid "Number of members"
msgstr ""
msgid "Number of bills"
msgstr ""
msgid "Newest bill"
msgstr ""
msgid "Oldest bill"
msgstr ""
msgid "Actions"
msgstr ""
msgid "edit"
msgstr ""
msgid "delete"
msgstr ""
msgid "show"
msgstr ""
msgid "The Dashboard is currently deactivated."
msgstr ""
msgid "you sure?"
msgstr ""
msgid "Edit project"
msgstr ""
msgid "Import JSON"
msgstr ""
msgid "Choose file"
msgstr ""
msgid "Download project's data"
msgstr ""
msgid "Bill items"
msgstr ""
msgid "Download the list of bills with owner, amount, reason,... "
msgstr ""
msgid "Settle plans"
msgstr ""
msgid "Download the list of transactions needed to settle the current bills."
msgstr ""
msgid "Can't remember the password?"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Privacy Settings"
msgstr ""
msgid "Edit the project"
msgstr ""
msgid "Edit this bill"
msgstr ""
msgid "Add a bill"
msgstr ""
msgid "Select all"
msgstr ""
msgid "Select none"
msgstr ""
msgid "Add participant"
msgstr ""
msgid "Edit this member"
msgstr ""
msgid "john.doe@example.com, mary.moe@site.com"
msgstr ""
msgid "Send the invitations"
msgstr ""
msgid "Download"
msgstr ""
msgid "Disabled Project History"
msgstr ""
msgid "Disabled Project History & IP Address Recording"
msgstr ""
msgid "Enabled Project History"
msgstr ""
msgid "Disabled IP Address Recording"
msgstr ""
msgid "Enabled Project History & IP Address Recording"
msgstr ""
msgid "Enabled IP Address Recording"
msgstr ""
msgid "History Settings Changed"
msgstr ""
msgid "changed"
msgstr ""
msgid "from"
msgstr ""
msgid "to"
msgstr ""
msgid "Confirm Remove IP Adresses"
msgstr ""
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
msgid "Close"
msgstr ""
msgid "Confirm Delete"
msgstr ""
msgid "Delete Confirmation"
msgstr ""
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
msgid "Added"
msgstr ""
msgid "Removed"
msgstr ""
msgid "and"
msgstr ""
msgid "owers list"
msgstr ""
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
msgid "Delete stored IP addresses"
msgstr ""
msgid "No history to erase"
msgstr ""
msgid "Clear Project History"
msgstr ""
msgid "No IP Addresses to erase"
msgstr ""
msgid "Delete Stored IP Addresses"
msgstr ""
msgid "Time"
msgstr ""
msgid "Event"
msgstr ""
msgid "IP address recording can be enabled on the settings page"
msgstr ""
msgid "IP address recording can be disabled on the settings page"
msgstr ""
msgid "From IP"
msgstr ""
msgid "added"
msgstr ""
msgid "Project private code changed"
msgstr ""
msgid "Project renamed to"
msgstr ""
msgid "Project contact email changed to"
msgstr ""
msgid "Project settings modified"
msgstr ""
msgid "deactivated"
msgstr ""
msgid "reactivated"
msgstr ""
msgid "renamed to"
msgstr ""
msgid "External link changed to"
msgstr ""
msgid "Amount"
msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified"
msgstr ""
msgid "removed"
msgstr ""
msgid "changed in a unknown way"
msgstr ""
msgid "Nothing to list"
msgstr ""
msgid "Someone probably cleared the project history."
msgstr ""
msgid "Manage your shared <br />expenses, easily"
msgstr ""
msgid "Try out the demo"
msgstr ""
msgid "You're sharing a house?"
msgstr ""
msgid "Going on holidays with friends?"
msgstr ""
msgid "Simply sharing money with others?"
msgstr ""
msgid "We can help!"
msgstr ""
msgid "Log in to an existing project"
msgstr ""
msgid "Log in"
msgstr ""
msgid "can't remember your password?"
msgstr ""
msgid "Create"
msgstr ""
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
msgid "Account manager"
msgstr ""
msgid "Bills"
msgstr ""
msgid "Settle"
msgstr ""
msgid "Statistics"
msgstr ""
msgid "History"
msgstr ""
msgid "Settings"
msgstr ""
msgid "Languages"
msgstr ""
msgid "Projects"
msgstr ""
msgid "Start a new project"
msgstr ""
msgid "Other projects :"
msgstr ""
msgid "switch to"
msgstr ""
msgid "Dashboard"
msgstr ""
msgid "Logout"
msgstr ""
msgid "Code"
msgstr ""
msgid "Mobile Application"
msgstr ""
msgid "Documentation"
msgstr ""
msgid "Administation Dashboard"
msgstr ""
msgid "\"I hate money\" is a free software"
msgstr ""
msgid "you can contribute and improve it!"
msgstr ""
#, python-format
msgid "%(amount)s each"
msgstr ""
msgid "Invite people"
msgstr ""
msgid "You should start by adding participants"
msgstr ""
msgid "Add a new bill"
msgstr ""
msgid "Newer bills"
msgstr ""
msgid "Older bills"
msgstr ""
msgid "When?"
msgstr ""
msgid "Who paid?"
msgstr ""
msgid "For what?"
msgstr ""
msgid "How much?"
msgstr ""
#, python-format
msgid "Added on %(date)s"
msgstr ""
msgid "Everyone"
msgstr ""
#, python-format
msgid "Everyone but %(excluded)s"
msgstr ""
msgid "No bills"
msgstr ""
msgid "Nothing to list yet."
msgstr ""
msgid "You probably want to"
msgstr ""
msgid "add a bill"
msgstr ""
msgid "add participants"
msgstr ""
msgid "Password reminder"
msgstr ""
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
msgid "Return to home page"
msgstr ""
msgid "Your projects"
msgstr ""
msgid "Reset your password"
msgstr ""
msgid "Invite people to join this project"
msgstr ""
msgid "Share Identifier & code"
msgstr ""
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
msgid "Identifier:"
msgstr ""
msgid "Share the Link"
msgstr ""
msgid "You can directly share the following link via your prefered medium"
msgstr ""
msgid "Send via Emails"
msgstr ""
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
msgid "Who pays?"
msgstr ""
msgid "To whom?"
msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
msgid "deactivate"
msgstr ""
msgid "reactivate"
msgstr ""
msgid "Paid"
msgstr ""
msgid "Spent"
msgstr ""
msgid "Expenses by Month"
msgstr ""
msgid "Period"
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language: cs\n" "Language: cs\n"
@ -34,6 +34,9 @@ msgstr ""
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr ""
msgid "Default Currency"
msgstr ""
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr ""
@ -88,6 +91,9 @@ msgstr ""
msgid "Amount paid" msgid "Amount paid"
msgstr "" msgstr ""
msgid "Currency"
msgstr ""
msgid "External link" msgid "External link"
msgstr "" msgstr ""
@ -103,6 +109,10 @@ msgstr ""
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "" msgstr ""
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "" msgstr ""
@ -143,6 +153,9 @@ msgstr ""
msgid "Project" msgid "Project"
msgstr "" msgstr ""
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "" msgstr ""
@ -160,8 +173,22 @@ msgstr ""
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "" msgstr ""
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr "" msgstr ""
msgid "No token provided" msgid "No token provided"
@ -192,6 +219,12 @@ msgstr ""
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "" msgstr ""
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr ""
@ -268,7 +301,7 @@ msgstr ""
msgid "delete" msgid "delete"
msgstr "" msgstr ""
msgid "see" msgid "show"
msgstr "" msgstr ""
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
@ -406,12 +439,6 @@ msgstr ""
msgid "owers list" msgid "owers list"
msgstr "" msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@ -496,6 +523,10 @@ msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified" msgid "modified"
msgstr "" msgstr ""
@ -542,8 +573,8 @@ msgid "Create"
msgstr "" msgstr ""
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
msgid "Account manager" msgid "Account manager"
@ -603,10 +634,8 @@ msgstr ""
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "" msgstr ""
msgid "deactivate" #, python-format
msgstr "" msgid "%(amount)s each"
msgid "reactivate"
msgstr "" msgstr ""
msgid "Invite people" msgid "Invite people"
@ -647,9 +676,6 @@ msgstr ""
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "" msgstr ""
msgid "each"
msgstr ""
msgid "No bills" msgid "No bills"
msgstr "" msgstr ""
@ -718,6 +744,18 @@ msgstr ""
msgid "To whom?" msgid "To whom?"
msgstr "" msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
msgid "deactivate"
msgstr ""
msgid "reactivate"
msgstr ""
msgid "Paid" msgid "Paid"
msgstr "" msgstr ""
@ -729,3 +767,20 @@ msgstr ""
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr ""
#~ msgid "each"
#~ msgstr ""
#~ msgid "Error while sending reminder email"
#~ msgstr ""
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""

View file

@ -1,18 +1,18 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: 2020-02-12 10:50+0000\n" "PO-Revision-Date: 2020-11-04 17:27+0000\n"
"Last-Translator: flolilo <flolilo@mailbox.org>\n" "Last-Translator: mdmdmdmdmd <exe_tmp@gmx.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/de/>\n"
"Language: de\n" "Language: de\n"
"Language-Team: German <https://hosted.weblate.org/projects/i-hate-money/i"
"-hate-money/de/>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
msgid "" msgid ""
@ -32,16 +32,19 @@ msgid "Email"
msgstr "E-Mail" msgstr "E-Mail"
msgid "Enable project history" msgid "Enable project history"
msgstr "" msgstr "Projekthistorie aktivieren"
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr "IP-Tracking für Verlauf benutzen"
msgid "Default Currency"
msgstr "Standardwährung"
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr "Zuvor exportierte JSON-Datei importieren"
msgid "Import" msgid "Import"
msgstr "" msgstr "Import"
msgid "Project identifier" msgid "Project identifier"
msgstr "Projektkennung" msgstr "Projektkennung"
@ -93,11 +96,14 @@ msgstr "Von"
msgid "Amount paid" msgid "Amount paid"
msgstr "Betrag" msgstr "Betrag"
msgid "Currency"
msgstr "Währung"
msgid "External link" msgid "External link"
msgstr "" msgstr "Externer Link"
msgid "A link to an external document, related to this bill" msgid "A link to an external document, related to this bill"
msgstr "" msgstr "Link zu einem externen Dokument, zu dieser Rechnung gehörend"
msgid "For whom?" msgid "For whom?"
msgstr "Für wen?" msgstr "Für wen?"
@ -108,6 +114,10 @@ msgstr "Hinzufügen"
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "Hinzufügen und neuen erstellen" msgstr "Hinzufügen und neuen erstellen"
#, python-format
msgid "Project default: %(currency)s"
msgstr "Projekt Standardwährung: %(currency)s"
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "Der Betrag darf nicht null sein" msgstr "Der Betrag darf nicht null sein"
@ -140,14 +150,17 @@ msgid "The email %(email)s is not valid"
msgstr "Die E-Mail-Adresse(n) %(email)s ist/sind nicht gültig" msgstr "Die E-Mail-Adresse(n) %(email)s ist/sind nicht gültig"
msgid "Participant" msgid "Participant"
msgstr "" msgstr "Teilnehmer/in"
msgid "Bill" msgid "Bill"
msgstr "" msgstr "Rechnung"
msgid "Project" msgid "Project"
msgstr "Projekt" msgstr "Projekt"
msgid "No Currency"
msgstr "Keine Währung"
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "Zu viele fehlgeschlagene Anmeldeversuche, bitte versuche es später." msgstr "Zu viele fehlgeschlagene Anmeldeversuche, bitte versuche es später."
@ -169,9 +182,28 @@ msgstr ""
"Du hast gerade das Projekt '%(project)s' erstellt, um deine Ausgaben zu " "Du hast gerade das Projekt '%(project)s' erstellt, um deine Ausgaben zu "
"teilen" "teilen"
msgid "A reminder email has just been sent to you"
msgstr "Dir wurde eine Erinnerungsmail gesendet"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"Wir haben versucht dir eine Erinnerungsmail zu senden, aber das hat nicht"
" geklappt. Du kannst das Projekt weiterhin wie gewohnt nutzen."
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr "%(msg_compl)sDie Projekt-ID lautet %(project)s" msgstr "Die Projektkennung ist %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"Entschuldigung, es trat ein Fehler beim Senden der E-Mail zur Passwort "
"Zurücksetzung auf. Bitte überprüfe die E-Mail Konfiguration des Servers "
"oder kontaktiere einen Administrator."
msgid "No token provided" msgid "No token provided"
msgstr "Kein Token zur Verfügung gestellt" msgstr "Kein Token zur Verfügung gestellt"
@ -186,10 +218,10 @@ msgid "Password successfully reset."
msgstr "Passwort erfolgreich zurückgesetzt." msgstr "Passwort erfolgreich zurückgesetzt."
msgid "Project successfully uploaded" msgid "Project successfully uploaded"
msgstr "" msgstr "Projekt erfolgreich hochgeladen"
msgid "Invalid JSON" msgid "Invalid JSON"
msgstr "" msgstr "Ungültiges JSON"
msgid "Project successfully deleted" msgid "Project successfully deleted"
msgstr "Projekt erfolgreich gelöscht" msgstr "Projekt erfolgreich gelöscht"
@ -201,9 +233,18 @@ msgstr "Du wurdest eingeladen, deine Ausgaben für %(project)s zu teilen"
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "Deine Einladungen wurden versendet" msgstr "Deine Einladungen wurden versendet"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"Entschuldigung, es trat ein Fehler beim Versenden der Einladungsmails "
"auf. Bitte überprüfe die E-Mail Konfiguration des Servers oder "
"kontaktiere einen Administrator."
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr "%(member)s wurde hinzugefügt"
#, python-format #, python-format
msgid "%(name)s is part of this project again" msgid "%(name)s is part of this project again"
@ -279,8 +320,8 @@ msgstr "Bearbeiten"
msgid "delete" msgid "delete"
msgstr "Löschen" msgstr "Löschen"
msgid "see" msgid "show"
msgstr "" msgstr "Zeigen"
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
msgstr "Das Dashboard ist aktuell deaktiviert." msgstr "Das Dashboard ist aktuell deaktiviert."
@ -292,10 +333,10 @@ msgid "Edit project"
msgstr "Projekt bearbeiten" msgstr "Projekt bearbeiten"
msgid "Import JSON" msgid "Import JSON"
msgstr "" msgstr "JSON importieren"
msgid "Choose file" msgid "Choose file"
msgstr "" msgstr "Datei auswählen"
msgid "Download project's data" msgid "Download project's data"
msgstr "Projektdaten herunterladen" msgstr "Projektdaten herunterladen"
@ -319,7 +360,7 @@ msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "" msgstr "Datenschutzeinstellungen"
msgid "Edit the project" msgid "Edit the project"
msgstr "Projekt bearbeiten" msgstr "Projekt bearbeiten"
@ -352,37 +393,37 @@ msgid "Download"
msgstr "Herunterladen" msgstr "Herunterladen"
msgid "Disabled Project History" msgid "Disabled Project History"
msgstr "" msgstr "Projektverlauf deaktivieren"
msgid "Disabled Project History & IP Address Recording" msgid "Disabled Project History & IP Address Recording"
msgstr "" msgstr "Projektverlauf & IP-Adresserfassung deaktivieren"
msgid "Enabled Project History" msgid "Enabled Project History"
msgstr "" msgstr "Projektverlauf aktivieren"
msgid "Disabled IP Address Recording" msgid "Disabled IP Address Recording"
msgstr "" msgstr "IP-Adresserfassung deaktivieren"
msgid "Enabled Project History & IP Address Recording" msgid "Enabled Project History & IP Address Recording"
msgstr "" msgstr "Projektverlauf & IP-Adresserfassung aktivieren"
msgid "Enabled IP Address Recording" msgid "Enabled IP Address Recording"
msgstr "" msgstr "IP-Adresserfassung aktivieren"
msgid "History Settings Changed" msgid "History Settings Changed"
msgstr "" msgstr "Verlaufseinstellungen geändert"
msgid "changed" msgid "changed"
msgstr "" msgstr "geändert"
msgid "from" msgid "from"
msgstr "" msgstr "von"
msgid "to" msgid "to"
msgstr "" msgstr "an"
msgid "Confirm Remove IP Adresses" msgid "Confirm Remove IP Adresses"
msgstr "" msgstr "Bestätige IP-Adressentfernung"
msgid "" msgid ""
"Are you sure you want to delete all recorded IP addresses from this " "Are you sure you want to delete all recorded IP addresses from this "
@ -390,38 +431,38 @@ msgid ""
" The rest of the project history will be unaffected. This " " The rest of the project history will be unaffected. This "
"action cannot be undone." "action cannot be undone."
msgstr "" msgstr ""
"Bist du sicher, dass alle aufgezeichneten IP-Adressen dieses Projekts "
"gelöscht werden sollen?\n"
"Der restliche Projektverlauf bleibt unverändert. Diese Aktion kann nicht "
"rückgängig gemacht werden."
msgid "Close" msgid "Close"
msgstr "" msgstr "Schließen"
msgid "Confirm Delete" msgid "Confirm Delete"
msgstr "" msgstr "Bestätige die Löschung"
msgid "Delete Confirmation" msgid "Delete Confirmation"
msgstr "" msgstr "Bestätigung löschen"
msgid "" msgid ""
"Are you sure you want to erase all history for this project? This action " "Are you sure you want to erase all history for this project? This action "
"cannot be undone." "cannot be undone."
msgstr "" msgstr ""
"Bist du sicher, dass der gesamte Projektverlauf gelöscht werden soll? "
"Dies kann nicht rückgängig gemacht werden."
msgid "Added" msgid "Added"
msgstr "" msgstr "Hinzugefügt"
msgid "Removed" msgid "Removed"
msgstr "" msgstr "Entfernt"
msgid "and" msgid "and"
msgstr "" msgstr "und"
msgid "owers list" msgid "owers list"
msgstr "" msgstr "Schuldnerliste"
msgid "Who?"
msgstr "Wer?"
msgid "Balance"
msgstr "Bilanz"
#, python-format #, python-format
msgid "" msgid ""
@ -431,6 +472,11 @@ msgid ""
" <a href=\"%(url)s\">settings page</a>\n" " <a href=\"%(url)s\">settings page</a>\n"
" " " "
msgstr "" msgstr ""
"\n"
" <i>Der Verlauf dieses Projekts ist deaktiviert. Neue Aktionen"
" werden nicht im Folgenden auftauchen. Du kannst den Verlauf auf der\n"
"<a href=\"%(url)s\">Einstellungsseite</a> aktivieren.</i>\n"
" "
msgid "" msgid ""
"\n" "\n"
@ -441,89 +487,102 @@ msgid ""
"them.</i></p>\n" "them.</i></p>\n"
" " " "
msgstr "" msgstr ""
"\n"
" <I>Die folgende Tabelle zeigt alle aufgezeichneten Aktionen "
"bevor der Projektverlauf deaktiviert wurde. Du kannst den\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">Projektverlauf löschen</a>, um sie zu "
"entfernen.</i></p>\n"
" "
msgid "" msgid ""
"Some entries below contain IP addresses, even though this project has IP " "Some entries below contain IP addresses, even though this project has IP "
"recording disabled. " "recording disabled. "
msgstr "" msgstr ""
"Einige der folgenden Einträge enthalten IP-Adressen, wenngleich die IP-"
"Erfassung dieses Projekts deaktiviert ist. "
msgid "Delete stored IP addresses" msgid "Delete stored IP addresses"
msgstr "" msgstr "Gespeicherte IP-Adressen löschen"
msgid "No history to erase" msgid "No history to erase"
msgstr "" msgstr "Kein Verlauf zu löschen"
msgid "Clear Project History" msgid "Clear Project History"
msgstr "" msgstr "Projektverlauf löschen"
msgid "No IP Addresses to erase" msgid "No IP Addresses to erase"
msgstr "" msgstr "Keine IP-Adressen zu löschen"
msgid "Delete Stored IP Addresses" msgid "Delete Stored IP Addresses"
msgstr "" msgstr "Gespeicherte IP-Adressen löschen"
msgid "Time" msgid "Time"
msgstr "" msgstr "Zeit"
msgid "Event" msgid "Event"
msgstr "" msgstr "Ereignis"
msgid "IP address recording can be enabled on the settings page" msgid "IP address recording can be enabled on the settings page"
msgstr "" msgstr "IP-Adresserfassung kann in den Einstellungen aktiviert werden"
msgid "IP address recording can be disabled on the settings page" msgid "IP address recording can be disabled on the settings page"
msgstr "" msgstr "Die IP-Adresserfassung kann in den Einstellungen deaktiviert werden"
msgid "From IP" msgid "From IP"
msgstr "" msgstr "Von IP"
msgid "added" msgid "added"
msgstr "" msgstr "hinzugefügt"
msgid "Project private code changed" msgid "Project private code changed"
msgstr "" msgstr "Privater Projekt-Code geändert"
msgid "Project renamed to" msgid "Project renamed to"
msgstr "" msgstr "Das Projekt wurde umbenannt zu"
msgid "Project contact email changed to" msgid "Project contact email changed to"
msgstr "" msgstr "E-Mailkontakt des Projekts geändert zu"
msgid "Project settings modified" msgid "Project settings modified"
msgstr "" msgstr "Projekteinstellungen geändert"
msgid "deactivated" msgid "deactivated"
msgstr "" msgstr "deaktiviert"
msgid "reactivated" msgid "reactivated"
msgstr "" msgstr "reaktiviert"
msgid "renamed to" msgid "renamed to"
msgstr "" msgstr "umbenannt zu"
msgid "External link changed to" msgid "External link changed to"
msgstr "" msgstr "Externer Link geändert zu"
msgid "Amount" msgid "Amount"
msgstr "" msgstr "Betrag"
#, python-format
msgid "Amount in %(currency)s"
msgstr "Betrag in %(currency)s"
msgid "modified" msgid "modified"
msgstr "" msgstr "geändert"
msgid "removed" msgid "removed"
msgstr "" msgstr "entfernt"
msgid "changed in a unknown way" msgid "changed in a unknown way"
msgstr "" msgstr "auf unbekannte Weise geändert"
msgid "Nothing to list" msgid "Nothing to list"
msgstr "" msgstr "keine Einträge vorhanden"
msgid "Someone probably cleared the project history." msgid "Someone probably cleared the project history."
msgstr "" msgstr "Wahrscheinlich hat jemand den Projektverlauf gelöscht."
msgid "Manage your shared <br />expenses, easily" msgid "Manage your shared <br />expenses, easily"
msgstr "Verwalten deine geteilten <br />Ausgaben ganz einfach" msgstr "Verwalte deine geteilten <br />Ausgaben ganz einfach"
msgid "Try out the demo" msgid "Try out the demo"
msgstr "Demo ausprobieren" msgstr "Demo ausprobieren"
@ -553,12 +612,11 @@ msgid "Create"
msgstr "Erstellen" msgstr "Erstellen"
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
"Dieser Zugangscode wird an deine Freunde gesendet. Es wird als Klartext " "Verwenden Sie ein persönliches Passwort nicht nochmal. Wählen Sie einen "
"auf dem Server gespeichert. Bitte verwenden daher kein persönliches " "privaten Code und senden Sie ihn an Ihre Freunde"
"Passwort!"
msgid "Account manager" msgid "Account manager"
msgstr "Konten" msgstr "Konten"
@ -573,7 +631,7 @@ msgid "Statistics"
msgstr "Statistik" msgstr "Statistik"
msgid "History" msgid "History"
msgstr "" msgstr "Verlauf"
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
@ -617,11 +675,9 @@ msgstr "\"I hate money\" ist freie Software"
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "du kannst dazu beitragen und sie verbessern!" msgstr "du kannst dazu beitragen und sie verbessern!"
msgid "deactivate" #, python-format
msgstr "deaktivieren" msgid "%(amount)s each"
msgstr "jeweils %(amount)s"
msgid "reactivate"
msgstr "reaktivieren"
msgid "Invite people" msgid "Invite people"
msgstr "Leute einladen" msgstr "Leute einladen"
@ -633,10 +689,10 @@ msgid "Add a new bill"
msgstr "Neue Ausgabe" msgstr "Neue Ausgabe"
msgid "Newer bills" msgid "Newer bills"
msgstr "" msgstr "Aktuellere Rechnungen"
msgid "Older bills" msgid "Older bills"
msgstr "" msgstr "Ältere Rechnungen"
msgid "When?" msgid "When?"
msgstr "Wann?" msgstr "Wann?"
@ -661,9 +717,6 @@ msgstr "Jeder"
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "Jeder außer %(excluded)s" msgstr "Jeder außer %(excluded)s"
msgid "each"
msgstr "alles"
msgid "No bills" msgid "No bills"
msgstr "Keine Ausgaben" msgstr "Keine Ausgaben"
@ -740,6 +793,18 @@ msgstr "Wer zahlt?"
msgid "To whom?" msgid "To whom?"
msgstr "An wen?" msgstr "An wen?"
msgid "Who?"
msgstr "Wer?"
msgid "Balance"
msgstr "Bilanz"
msgid "deactivate"
msgstr "deaktivieren"
msgid "reactivate"
msgstr "reaktivieren"
msgid "Paid" msgid "Paid"
msgstr "Bezahlt" msgstr "Bezahlt"
@ -747,10 +812,10 @@ msgid "Spent"
msgstr "Ausgegeben" msgstr "Ausgegeben"
msgid "Expenses by Month" msgid "Expenses by Month"
msgstr "" msgstr "Ausgaben je Monat"
msgid "Period" msgid "Period"
msgstr "" msgstr "Zeitraum"
#~ msgid "Someone probably" #~ msgid "Someone probably"
#~ msgstr "" #~ msgstr ""
@ -758,3 +823,22 @@ msgstr ""
#~ msgid "cleared the project history." #~ msgid "cleared the project history."
#~ msgstr "" #~ msgstr ""
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr "%(msg_compl)sDie Projekt-ID lautet %(project)s"
#~ msgid "each"
#~ msgstr "alles"
#~ msgid "Error while sending reminder email"
#~ msgstr ""
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Dieser Zugangscode wird an deine Freunde"
#~ " gesendet. Es wird als Klartext auf"
#~ " dem Server gespeichert. Bitte verwenden"
#~ " daher kein persönliches Passwort!"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language: el\n" "Language: el\n"
@ -34,6 +34,9 @@ msgstr ""
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr ""
msgid "Default Currency"
msgstr ""
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr ""
@ -88,6 +91,9 @@ msgstr ""
msgid "Amount paid" msgid "Amount paid"
msgstr "" msgstr ""
msgid "Currency"
msgstr ""
msgid "External link" msgid "External link"
msgstr "" msgstr ""
@ -103,6 +109,10 @@ msgstr ""
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "" msgstr ""
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "" msgstr ""
@ -143,6 +153,9 @@ msgstr ""
msgid "Project" msgid "Project"
msgstr "" msgstr ""
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "" msgstr ""
@ -160,8 +173,22 @@ msgstr ""
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "" msgstr ""
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr "" msgstr ""
msgid "No token provided" msgid "No token provided"
@ -192,6 +219,12 @@ msgstr ""
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "" msgstr ""
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr ""
@ -268,7 +301,7 @@ msgstr ""
msgid "delete" msgid "delete"
msgstr "" msgstr ""
msgid "see" msgid "show"
msgstr "" msgstr ""
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
@ -406,12 +439,6 @@ msgstr ""
msgid "owers list" msgid "owers list"
msgstr "" msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@ -496,6 +523,10 @@ msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified" msgid "modified"
msgstr "" msgstr ""
@ -542,8 +573,8 @@ msgid "Create"
msgstr "" msgstr ""
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
msgid "Account manager" msgid "Account manager"
@ -603,10 +634,8 @@ msgstr ""
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "" msgstr ""
msgid "deactivate" #, python-format
msgstr "" msgid "%(amount)s each"
msgid "reactivate"
msgstr "" msgstr ""
msgid "Invite people" msgid "Invite people"
@ -647,9 +676,6 @@ msgstr ""
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "" msgstr ""
msgid "each"
msgstr ""
msgid "No bills" msgid "No bills"
msgstr "" msgstr ""
@ -718,6 +744,18 @@ msgstr ""
msgid "To whom?" msgid "To whom?"
msgstr "" msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
msgid "deactivate"
msgstr ""
msgid "reactivate"
msgstr ""
msgid "Paid" msgid "Paid"
msgstr "" msgstr ""
@ -729,3 +767,20 @@ msgstr ""
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr ""
#~ msgid "each"
#~ msgstr ""
#~ msgid "Error while sending reminder email"
#~ msgstr ""
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""

Binary file not shown.

View file

@ -1,34 +1,30 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-09-22 14:01+0200\n"
"PO-Revision-Date: 2020-02-09 12:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Muge Niu <mugeniu12138@gmail.com>\n" "Last-Translator: Automatically generated\n"
"Language: zh_HANS_CN\n" "Language-Team: none\n"
"Language-Team: Chinese (Simplified) " "Language: eo\n"
"<https://hosted.weblate.org/projects/i-hate-money/i-hate-money/zh_Hans/>"
"\n"
"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "X-Generator: Translate Toolkit 3.0.0\n"
msgid "" msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are " "Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted." "accepted."
msgstr "金额或符号无效。仅限数字与+-*/符号。" msgstr ""
msgid "Project name" msgid "Project name"
msgstr "账目名称" msgstr ""
msgid "Private code" msgid "Private code"
msgstr "共享密钥" msgstr ""
msgid "Email" msgid "Email"
msgstr "邮箱" msgstr ""
msgid "Enable project history" msgid "Enable project history"
msgstr "" msgstr ""
@ -36,6 +32,9 @@ msgstr ""
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr ""
msgid "Default Currency"
msgstr ""
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr ""
@ -43,73 +42,80 @@ msgid "Import"
msgstr "" msgstr ""
msgid "Project identifier" msgid "Project identifier"
msgstr "账目名称" msgstr ""
msgid "Create the project" msgid "Create the project"
msgstr "创建账目明细" msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please " "A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier" "choose a new identifier"
msgstr "账目(“%(project)s”)已存在,请选择一个新名称" msgstr ""
msgid "Get in" msgid "Get in"
msgstr "" msgstr ""
msgid "Admin password" msgid "Admin password"
msgstr "管理密码" msgstr ""
msgid "Send me the code by email" msgid "Send me the code by email"
msgstr "通过邮件发送" msgstr ""
msgid "This project does not exists" msgid "This project does not exists"
msgstr "账目不存在" msgstr ""
msgid "Password mismatch" msgid "Password mismatch"
msgstr "密码错误" msgstr ""
msgid "Password" msgid "Password"
msgstr "密码" msgstr ""
msgid "Password confirmation" msgid "Password confirmation"
msgstr "密码确认" msgstr ""
msgid "Reset password" msgid "Reset password"
msgstr "密码重置" msgstr ""
msgid "Date" msgid "Date"
msgstr "日期" msgstr ""
msgid "What?" msgid "What?"
msgstr "什么?" msgstr ""
msgid "Payer" msgid "Payer"
msgstr "支付人" msgstr ""
msgid "Amount paid" msgid "Amount paid"
msgstr "支付金额" msgstr ""
msgid "Currency"
msgstr ""
msgid "External link" msgid "External link"
msgstr "外部链接" msgstr ""
msgid "A link to an external document, related to this bill" msgid "A link to an external document, related to this bill"
msgstr "与此账单有关的外部链接" msgstr ""
msgid "For whom?" msgid "For whom?"
msgstr "成员?" msgstr ""
msgid "Submit" msgid "Submit"
msgstr "确定" msgstr ""
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "确定并添加另一个" msgstr ""
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "数字不能为零" msgstr ""
msgid "Name" msgid "Name"
msgstr "姓名" msgstr ""
msgid "Weights should be positive" msgid "Weights should be positive"
msgstr "" msgstr ""
@ -145,6 +151,9 @@ msgstr ""
msgid "Project" msgid "Project"
msgstr "" msgstr ""
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "" msgstr ""
@ -162,8 +171,22 @@ msgstr ""
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "" msgstr ""
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr "" msgstr ""
msgid "No token provided" msgid "No token provided"
@ -194,6 +217,12 @@ msgstr ""
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "" msgstr ""
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr ""
@ -244,7 +273,7 @@ msgid "create it"
msgstr "" msgstr ""
msgid "?" msgid "?"
msgstr "" msgstr ""
msgid "Create a new project" msgid "Create a new project"
msgstr "" msgstr ""
@ -270,7 +299,7 @@ msgstr ""
msgid "delete" msgid "delete"
msgstr "" msgstr ""
msgid "see" msgid "show"
msgstr "" msgstr ""
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
@ -307,7 +336,7 @@ msgid "Can't remember the password?"
msgstr "" msgstr ""
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr ""
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "" msgstr ""
@ -340,7 +369,7 @@ msgid "Send the invitations"
msgstr "" msgstr ""
msgid "Download" msgid "Download"
msgstr "下载" msgstr ""
msgid "Disabled Project History" msgid "Disabled Project History"
msgstr "" msgstr ""
@ -408,12 +437,6 @@ msgstr ""
msgid "owers list" msgid "owers list"
msgstr "" msgstr ""
msgid "Who?"
msgstr "谁?"
msgid "Balance"
msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@ -498,6 +521,10 @@ msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified" msgid "modified"
msgstr "" msgstr ""
@ -529,7 +556,7 @@ msgid "Simply sharing money with others?"
msgstr "" msgstr ""
msgid "We can help!" msgid "We can help!"
msgstr "我们可以帮助!" msgstr ""
msgid "Log in to an existing project" msgid "Log in to an existing project"
msgstr "" msgstr ""
@ -544,8 +571,8 @@ msgid "Create"
msgstr "" msgstr ""
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
msgid "Account manager" msgid "Account manager"
@ -585,7 +612,7 @@ msgid "Dashboard"
msgstr "" msgstr ""
msgid "Logout" msgid "Logout"
msgstr "签出" msgstr ""
msgid "Code" msgid "Code"
msgstr "" msgstr ""
@ -605,10 +632,8 @@ msgstr ""
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "" msgstr ""
msgid "deactivate" #, python-format
msgstr "" msgid "%(amount)s each"
msgid "reactivate"
msgstr "" msgstr ""
msgid "Invite people" msgid "Invite people"
@ -627,7 +652,7 @@ msgid "Older bills"
msgstr "" msgstr ""
msgid "When?" msgid "When?"
msgstr "什么时候?" msgstr ""
msgid "Who paid?" msgid "Who paid?"
msgstr "" msgstr ""
@ -636,7 +661,7 @@ msgid "For what?"
msgstr "" msgstr ""
msgid "How much?" msgid "How much?"
msgstr "多少?" msgstr ""
#, python-format #, python-format
msgid "Added on %(date)s" msgid "Added on %(date)s"
@ -649,9 +674,6 @@ msgstr ""
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "" msgstr ""
msgid "each"
msgstr ""
msgid "No bills" msgid "No bills"
msgstr "" msgstr ""
@ -720,6 +742,18 @@ msgstr ""
msgid "To whom?" msgid "To whom?"
msgstr "" msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
msgid "deactivate"
msgstr ""
msgid "reactivate"
msgstr ""
msgid "Paid" msgid "Paid"
msgstr "" msgstr ""

Binary file not shown.

View file

@ -0,0 +1,767 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-09-22 14:01+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.0.0\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr ""
msgid "Project name"
msgstr ""
msgid "Private code"
msgstr ""
msgid "Email"
msgstr ""
msgid "Enable project history"
msgstr ""
msgid "Use IP tracking for project history"
msgstr ""
msgid "Default Currency"
msgstr ""
msgid "Import previously exported JSON file"
msgstr ""
msgid "Import"
msgstr ""
msgid "Project identifier"
msgstr ""
msgid "Create the project"
msgstr ""
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr ""
msgid "Get in"
msgstr ""
msgid "Admin password"
msgstr ""
msgid "Send me the code by email"
msgstr ""
msgid "This project does not exists"
msgstr ""
msgid "Password mismatch"
msgstr ""
msgid "Password"
msgstr ""
msgid "Password confirmation"
msgstr ""
msgid "Reset password"
msgstr ""
msgid "Date"
msgstr ""
msgid "What?"
msgstr ""
msgid "Payer"
msgstr ""
msgid "Amount paid"
msgstr ""
msgid "Currency"
msgstr ""
msgid "External link"
msgstr ""
msgid "A link to an external document, related to this bill"
msgstr ""
msgid "For whom?"
msgstr ""
msgid "Submit"
msgstr ""
msgid "Submit and add a new one"
msgstr ""
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null"
msgstr ""
msgid "Name"
msgstr ""
msgid "Weights should be positive"
msgstr ""
msgid "Weight"
msgstr ""
msgid "Add"
msgstr ""
msgid "User name incorrect"
msgstr ""
msgid "This project already have this member"
msgstr ""
msgid "People to notify"
msgstr ""
msgid "Send invites"
msgstr ""
#, python-format
msgid "The email %(email)s is not valid"
msgstr ""
msgid "Participant"
msgstr ""
msgid "Bill"
msgstr ""
msgid "Project"
msgstr ""
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later."
msgstr ""
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr ""
msgid "You either provided a bad token or no project identifier."
msgstr ""
msgid "This private code is not the right one"
msgstr ""
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr ""
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format
msgid "The project identifier is %(project)s"
msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
msgid "No token provided"
msgstr ""
msgid "Invalid token"
msgstr ""
msgid "Unknown project"
msgstr ""
msgid "Password successfully reset."
msgstr ""
msgid "Project successfully uploaded"
msgstr ""
msgid "Invalid JSON"
msgstr ""
msgid "Project successfully deleted"
msgstr ""
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr ""
msgid "Your invitations have been sent"
msgstr ""
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format
msgid "%(member)s has been added"
msgstr ""
#, python-format
msgid "%(name)s is part of this project again"
msgstr ""
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
#, python-format
msgid "User '%(name)s' has been removed"
msgstr ""
#, python-format
msgid "User '%(name)s' has been edited"
msgstr ""
msgid "The bill has been added"
msgstr ""
msgid "The bill has been deleted"
msgstr ""
msgid "The bill has been modified"
msgstr ""
msgid "Sorry, we were unable to find the page you've asked for."
msgstr ""
msgid "The best thing to do is probably to get back to the main page."
msgstr ""
msgid "Back to the list"
msgstr ""
msgid "Administration tasks are currently disabled."
msgstr ""
msgid "The project you are trying to access do not exist, do you want to"
msgstr ""
msgid "create it"
msgstr ""
msgid "?"
msgstr ""
msgid "Create a new project"
msgstr ""
msgid "Number of members"
msgstr ""
msgid "Number of bills"
msgstr ""
msgid "Newest bill"
msgstr ""
msgid "Oldest bill"
msgstr ""
msgid "Actions"
msgstr ""
msgid "edit"
msgstr ""
msgid "delete"
msgstr ""
msgid "show"
msgstr ""
msgid "The Dashboard is currently deactivated."
msgstr ""
msgid "you sure?"
msgstr ""
msgid "Edit project"
msgstr ""
msgid "Import JSON"
msgstr ""
msgid "Choose file"
msgstr ""
msgid "Download project's data"
msgstr ""
msgid "Bill items"
msgstr ""
msgid "Download the list of bills with owner, amount, reason,... "
msgstr ""
msgid "Settle plans"
msgstr ""
msgid "Download the list of transactions needed to settle the current bills."
msgstr ""
msgid "Can't remember the password?"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Privacy Settings"
msgstr ""
msgid "Edit the project"
msgstr ""
msgid "Edit this bill"
msgstr ""
msgid "Add a bill"
msgstr ""
msgid "Select all"
msgstr ""
msgid "Select none"
msgstr ""
msgid "Add participant"
msgstr ""
msgid "Edit this member"
msgstr ""
msgid "john.doe@example.com, mary.moe@site.com"
msgstr ""
msgid "Send the invitations"
msgstr ""
msgid "Download"
msgstr ""
msgid "Disabled Project History"
msgstr ""
msgid "Disabled Project History & IP Address Recording"
msgstr ""
msgid "Enabled Project History"
msgstr ""
msgid "Disabled IP Address Recording"
msgstr ""
msgid "Enabled Project History & IP Address Recording"
msgstr ""
msgid "Enabled IP Address Recording"
msgstr ""
msgid "History Settings Changed"
msgstr ""
msgid "changed"
msgstr ""
msgid "from"
msgstr ""
msgid "to"
msgstr ""
msgid "Confirm Remove IP Adresses"
msgstr ""
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
msgid "Close"
msgstr ""
msgid "Confirm Delete"
msgstr ""
msgid "Delete Confirmation"
msgstr ""
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
msgid "Added"
msgstr ""
msgid "Removed"
msgstr ""
msgid "and"
msgstr ""
msgid "owers list"
msgstr ""
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
msgid "Delete stored IP addresses"
msgstr ""
msgid "No history to erase"
msgstr ""
msgid "Clear Project History"
msgstr ""
msgid "No IP Addresses to erase"
msgstr ""
msgid "Delete Stored IP Addresses"
msgstr ""
msgid "Time"
msgstr ""
msgid "Event"
msgstr ""
msgid "IP address recording can be enabled on the settings page"
msgstr ""
msgid "IP address recording can be disabled on the settings page"
msgstr ""
msgid "From IP"
msgstr ""
msgid "added"
msgstr ""
msgid "Project private code changed"
msgstr ""
msgid "Project renamed to"
msgstr ""
msgid "Project contact email changed to"
msgstr ""
msgid "Project settings modified"
msgstr ""
msgid "deactivated"
msgstr ""
msgid "reactivated"
msgstr ""
msgid "renamed to"
msgstr ""
msgid "External link changed to"
msgstr ""
msgid "Amount"
msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified"
msgstr ""
msgid "removed"
msgstr ""
msgid "changed in a unknown way"
msgstr ""
msgid "Nothing to list"
msgstr ""
msgid "Someone probably cleared the project history."
msgstr ""
msgid "Manage your shared <br />expenses, easily"
msgstr ""
msgid "Try out the demo"
msgstr ""
msgid "You're sharing a house?"
msgstr ""
msgid "Going on holidays with friends?"
msgstr ""
msgid "Simply sharing money with others?"
msgstr ""
msgid "We can help!"
msgstr ""
msgid "Log in to an existing project"
msgstr ""
msgid "Log in"
msgstr ""
msgid "can't remember your password?"
msgstr ""
msgid "Create"
msgstr ""
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
msgid "Account manager"
msgstr ""
msgid "Bills"
msgstr ""
msgid "Settle"
msgstr ""
msgid "Statistics"
msgstr ""
msgid "History"
msgstr ""
msgid "Settings"
msgstr ""
msgid "Languages"
msgstr ""
msgid "Projects"
msgstr ""
msgid "Start a new project"
msgstr ""
msgid "Other projects :"
msgstr ""
msgid "switch to"
msgstr ""
msgid "Dashboard"
msgstr ""
msgid "Logout"
msgstr ""
msgid "Code"
msgstr ""
msgid "Mobile Application"
msgstr ""
msgid "Documentation"
msgstr ""
msgid "Administation Dashboard"
msgstr ""
msgid "\"I hate money\" is a free software"
msgstr ""
msgid "you can contribute and improve it!"
msgstr ""
#, python-format
msgid "%(amount)s each"
msgstr ""
msgid "Invite people"
msgstr ""
msgid "You should start by adding participants"
msgstr ""
msgid "Add a new bill"
msgstr ""
msgid "Newer bills"
msgstr ""
msgid "Older bills"
msgstr ""
msgid "When?"
msgstr ""
msgid "Who paid?"
msgstr ""
msgid "For what?"
msgstr ""
msgid "How much?"
msgstr ""
#, python-format
msgid "Added on %(date)s"
msgstr ""
msgid "Everyone"
msgstr ""
#, python-format
msgid "Everyone but %(excluded)s"
msgstr ""
msgid "No bills"
msgstr ""
msgid "Nothing to list yet."
msgstr ""
msgid "You probably want to"
msgstr ""
msgid "add a bill"
msgstr ""
msgid "add participants"
msgstr ""
msgid "Password reminder"
msgstr ""
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
msgid "Return to home page"
msgstr ""
msgid "Your projects"
msgstr ""
msgid "Reset your password"
msgstr ""
msgid "Invite people to join this project"
msgstr ""
msgid "Share Identifier & code"
msgstr ""
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
msgid "Identifier:"
msgstr ""
msgid "Share the Link"
msgstr ""
msgid "You can directly share the following link via your prefered medium"
msgstr ""
msgid "Send via Emails"
msgstr ""
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
msgid "Who pays?"
msgstr ""
msgid "To whom?"
msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
msgid "deactivate"
msgstr ""
msgid "reactivate"
msgstr ""
msgid "Paid"
msgstr ""
msgid "Spent"
msgstr ""
msgid "Expenses by Month"
msgstr ""
msgid "Period"
msgstr ""

View file

@ -1,18 +1,18 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: 2019-09-25 22:28+0000\n" "PO-Revision-Date: 2020-08-30 19:59+0000\n"
"Last-Translator: Diego Caraballo <diegocaraballo84@gmail.com>\n" "Last-Translator: Miguel Victoria Villaquiran <miguelvicvil@gmail.com>\n"
"Language-Team: Spanish (Latin America) <https://hosted.weblate.org/projects/"
"i-hate-money/i-hate-money/es_419/>\n"
"Language: es_419\n" "Language: es_419\n"
"Language-Team: Spanish (Latin America) "
"<https://hosted.weblate.org/projects/i-hate-money/i-hate-money/es_419/>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.2.1-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
msgid "" msgid ""
@ -32,16 +32,19 @@ msgid "Email"
msgstr "Correo Electrónico" msgstr "Correo Electrónico"
msgid "Enable project history" msgid "Enable project history"
msgstr "" msgstr "Habilitar historial del proyecto"
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr "Registrar la IPs para el historial del proyecto"
msgid "Default Currency"
msgstr "moneda predeterminada"
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr "Importar archivo JSON previamente exportado"
msgid "Import" msgid "Import"
msgstr "" msgstr "Importar"
msgid "Project identifier" msgid "Project identifier"
msgstr "Identificador de proyecto" msgstr "Identificador de proyecto"
@ -93,6 +96,9 @@ msgstr "Paga"
msgid "Amount paid" msgid "Amount paid"
msgstr "Cantidad pagada" msgstr "Cantidad pagada"
msgid "Currency"
msgstr "Moneda"
msgid "External link" msgid "External link"
msgstr "Enlace externo" msgstr "Enlace externo"
@ -108,6 +114,10 @@ msgstr "Enviar"
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "Enviar y agregar uno nuevo" msgstr "Enviar y agregar uno nuevo"
#, python-format
msgid "Project default: %(currency)s"
msgstr "moneda predeterminada del projecto: %(currency)s"
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "Las facturas no pueden ser nulas" msgstr "Las facturas no pueden ser nulas"
@ -140,14 +150,17 @@ msgid "The email %(email)s is not valid"
msgstr "El correo electrónico %(email)s no es válido" msgstr "El correo electrónico %(email)s no es válido"
msgid "Participant" msgid "Participant"
msgstr "" msgstr "Participante"
msgid "Bill" msgid "Bill"
msgstr "" msgstr "Factura"
msgid "Project" msgid "Project"
msgstr "Proyecto" msgstr "Proyecto"
msgid "No Currency"
msgstr "no moneda"
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "" msgstr ""
"Demasiados intentos fallidos de inicio de sesión, vuelva a intentarlo más" "Demasiados intentos fallidos de inicio de sesión, vuelva a intentarlo más"
@ -169,9 +182,28 @@ msgstr "Este código privado no es el correcto"
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "Acabas de crear '%(project)s' para compartir tus gastos" msgstr "Acabas de crear '%(project)s' para compartir tus gastos"
msgid "A reminder email has just been sent to you"
msgstr "Acabamos de enviarte un email de recordatorio"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"Te hemos intentado enviar un correo electrónico recordatorio pero ha "
"habido un error. Todavía puedes usar el proyecto habitualmente."
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr "%(msg_compl)sEl identificador del proyecto es %(project)s" msgstr "El identificador del proyecto es %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"Lo sentimos, se produjo un error durante el envío del email con las "
"instrucciones de restablecimiento de contraseña. Por favor verifica la "
"configuración del servidor o contacta el administrador"
msgid "No token provided" msgid "No token provided"
msgstr "No se proporciono ningún token" msgstr "No se proporciono ningún token"
@ -186,10 +218,10 @@ msgid "Password successfully reset."
msgstr "Contraseña restablecida con éxito." msgstr "Contraseña restablecida con éxito."
msgid "Project successfully uploaded" msgid "Project successfully uploaded"
msgstr "" msgstr "El proyecto se subió exitosamente"
msgid "Invalid JSON" msgid "Invalid JSON"
msgstr "" msgstr "JSON inválido"
msgid "Project successfully deleted" msgid "Project successfully deleted"
msgstr "Proyecto eliminado correctamente" msgstr "Proyecto eliminado correctamente"
@ -201,9 +233,18 @@ msgstr "Usted ha sido invitado a compartir sus gastos para %(project)s"
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "Sus invitaciones han sido enviadas" msgstr "Sus invitaciones han sido enviadas"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"Lo sentimos, hubo un error cuando intentamos enviarle correos de invitación. "
"Por favor, revise la configuración de correo en el servidor o contactese con "
"el administrador."
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr "Se añadieron %(member)s"
#, python-format #, python-format
msgid "%(name)s is part of this project again" msgid "%(name)s is part of this project again"
@ -279,8 +320,8 @@ msgstr "Editar"
msgid "delete" msgid "delete"
msgstr "Eliminar" msgstr "Eliminar"
msgid "see" msgid "show"
msgstr "ver" msgstr ""
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
msgstr "El panel está desactivado actualmente." msgstr "El panel está desactivado actualmente."
@ -292,10 +333,10 @@ msgid "Edit project"
msgstr "Editar proyecto" msgstr "Editar proyecto"
msgid "Import JSON" msgid "Import JSON"
msgstr "" msgstr "Importar JSON"
msgid "Choose file" msgid "Choose file"
msgstr "" msgstr "Escoger un archivo"
msgid "Download project's data" msgid "Download project's data"
msgstr "Descargar datos del proyecto" msgstr "Descargar datos del proyecto"
@ -321,7 +362,7 @@ msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "" msgstr "Ajustes de privacidad"
msgid "Edit the project" msgid "Edit the project"
msgstr "Editar el proyecto" msgstr "Editar el proyecto"
@ -345,7 +386,7 @@ msgid "Edit this member"
msgstr "Editar este miembro" msgstr "Editar este miembro"
msgid "john.doe@example.com, mary.moe@site.com" msgid "john.doe@example.com, mary.moe@site.com"
msgstr "john.doe@example.com, mary.moe@site.com" msgstr "juan.perez@example.com, ana.rodriguez@site.com"
msgid "Send the invitations" msgid "Send the invitations"
msgstr "Enviar las invitaciones" msgstr "Enviar las invitaciones"
@ -354,37 +395,37 @@ msgid "Download"
msgstr "Descargar" msgstr "Descargar"
msgid "Disabled Project History" msgid "Disabled Project History"
msgstr "" msgstr "Historial de proyecto activo"
msgid "Disabled Project History & IP Address Recording" msgid "Disabled Project History & IP Address Recording"
msgstr "" msgstr "Historial de proyecto y registros de dirección IP inactivos"
msgid "Enabled Project History" msgid "Enabled Project History"
msgstr "" msgstr "Historial de proyecto activo"
msgid "Disabled IP Address Recording" msgid "Disabled IP Address Recording"
msgstr "" msgstr "Registro de direcciones IP activo"
msgid "Enabled Project History & IP Address Recording" msgid "Enabled Project History & IP Address Recording"
msgstr "" msgstr "Historial de proyecto y registros de dirección IP activos"
msgid "Enabled IP Address Recording" msgid "Enabled IP Address Recording"
msgstr "" msgstr "Se activó el registros de dirección IP"
msgid "History Settings Changed" msgid "History Settings Changed"
msgstr "" msgstr "Se cambiaron los ajustes del historial"
msgid "changed" msgid "changed"
msgstr "" msgstr "cambió"
msgid "from" msgid "from"
msgstr "" msgstr "de"
msgid "to" msgid "to"
msgstr "" msgstr "a"
msgid "Confirm Remove IP Adresses" msgid "Confirm Remove IP Adresses"
msgstr "" msgstr "Confirmar eliminación de direcciones IP"
msgid "" msgid ""
"Are you sure you want to delete all recorded IP addresses from this " "Are you sure you want to delete all recorded IP addresses from this "
@ -392,38 +433,38 @@ msgid ""
" The rest of the project history will be unaffected. This " " The rest of the project history will be unaffected. This "
"action cannot be undone." "action cannot be undone."
msgstr "" msgstr ""
"Por favor confirme la eliminación completa del registro de direcciones IP"
" del proyecto.\n"
" El resto de historial del proyecto no será afectado. Este"
" cambio es irreversible."
msgid "Close" msgid "Close"
msgstr "" msgstr "Cerrar"
msgid "Confirm Delete" msgid "Confirm Delete"
msgstr "" msgstr "Confirmar eliminación"
msgid "Delete Confirmation" msgid "Delete Confirmation"
msgstr "" msgstr "Confirmación de eliminación"
msgid "" msgid ""
"Are you sure you want to erase all history for this project? This action " "Are you sure you want to erase all history for this project? This action "
"cannot be undone." "cannot be undone."
msgstr "" msgstr ""
"Por favor confirme la eliminación completa del historial del proyecto. "
"Esta acción es irreversible."
msgid "Added" msgid "Added"
msgstr "" msgstr "Agregado"
msgid "Removed" msgid "Removed"
msgstr "" msgstr "Eliminado"
msgid "and" msgid "and"
msgstr "" msgstr "y"
msgid "owers list" msgid "owers list"
msgstr "" msgstr "lista de deudores"
msgid "Who?"
msgstr "¿Quién?"
msgid "Balance"
msgstr "Balance"
#, python-format #, python-format
msgid "" msgid ""
@ -433,6 +474,12 @@ msgid ""
" <a href=\"%(url)s\">settings page</a>\n" " <a href=\"%(url)s\">settings page</a>\n"
" " " "
msgstr "" msgstr ""
"\n"
" <i>El historial de este proyecto ha sido desactivado. Nuevas "
"operaciones no apareceran a continuacion. El historial se puede "
"agregar</i> \n"
" <a href=\"%(url)s\">en la página de ajustes</a>\n"
" "
msgid "" msgid ""
"\n" "\n"
@ -443,86 +490,99 @@ msgid ""
"them.</i></p>\n" "them.</i></p>\n"
" " " "
msgstr "" msgstr ""
"\n"
" <i>Este registro muestra la actividad previa a la "
"desactivación del historial del proyecto. Use la opción \n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">Eliminar historial del proyecto</a> para "
"borrarlo.</i></p>\n"
" "
msgid "" msgid ""
"Some entries below contain IP addresses, even though this project has IP " "Some entries below contain IP addresses, even though this project has IP "
"recording disabled. " "recording disabled. "
msgstr "" msgstr ""
"Algunos registros contienen direcciones IP, a pesar de que el registro de"
" direcciones IP del proyecto no está activo. "
msgid "Delete stored IP addresses" msgid "Delete stored IP addresses"
msgstr "" msgstr "Borrar las direcciones IP registradas"
msgid "No history to erase" msgid "No history to erase"
msgstr "" msgstr "No hay historial para borrar"
msgid "Clear Project History" msgid "Clear Project History"
msgstr "" msgstr "Borrar el historial del proyecto"
msgid "No IP Addresses to erase" msgid "No IP Addresses to erase"
msgstr "" msgstr "No hay direcciones IP para borrar"
msgid "Delete Stored IP Addresses" msgid "Delete Stored IP Addresses"
msgstr "" msgstr "Borrar direcciones IP registradas"
msgid "Time" msgid "Time"
msgstr "" msgstr "Hora"
msgid "Event" msgid "Event"
msgstr "" msgstr "Evento"
msgid "IP address recording can be enabled on the settings page" msgid "IP address recording can be enabled on the settings page"
msgstr "" msgstr "El registro de direcciones IP se puede activar en la página de ajustes"
msgid "IP address recording can be disabled on the settings page" msgid "IP address recording can be disabled on the settings page"
msgstr "" msgstr "El registro de direcciones IP se puede desactivar en la página de ajustes"
msgid "From IP" msgid "From IP"
msgstr "" msgstr "IP de origen"
msgid "added" msgid "added"
msgstr "" msgstr "agregado"
msgid "Project private code changed" msgid "Project private code changed"
msgstr "" msgstr "Se cambió el código privado del proyecto"
msgid "Project renamed to" msgid "Project renamed to"
msgstr "" msgstr "Se cambió el nombre del proyecto a"
msgid "Project contact email changed to" msgid "Project contact email changed to"
msgstr "" msgstr "Se cambió el correo electrónico de contacto a"
msgid "Project settings modified" msgid "Project settings modified"
msgstr "" msgstr "Ajustes del proyecto modificados"
msgid "deactivated" msgid "deactivated"
msgstr "" msgstr "desactivado"
msgid "reactivated" msgid "reactivated"
msgstr "" msgstr "reactivado"
msgid "renamed to" msgid "renamed to"
msgstr "" msgstr "se cambió de nombre a"
msgid "External link changed to" msgid "External link changed to"
msgstr "" msgstr "Se cambió el enlace externo por"
msgid "Amount" msgid "Amount"
msgstr "Monto"
#, python-format
msgid "Amount in %(currency)s"
msgstr "" msgstr ""
msgid "modified" msgid "modified"
msgstr "" msgstr "modificado"
msgid "removed" msgid "removed"
msgstr "" msgstr "removido"
msgid "changed in a unknown way" msgid "changed in a unknown way"
msgstr "" msgstr "se cambió de manera desconocida"
msgid "Nothing to list" msgid "Nothing to list"
msgstr "" msgstr "Nada por listar"
msgid "Someone probably cleared the project history." msgid "Someone probably cleared the project history."
msgstr "" msgstr "Es probable que alguien borrara el historial del proyecto."
msgid "Manage your shared <br />expenses, easily" msgid "Manage your shared <br />expenses, easily"
msgstr "Gestione sus gastos compartidos <br />fácilmente" msgstr "Gestione sus gastos compartidos <br />fácilmente"
@ -555,11 +615,9 @@ msgid "Create"
msgstr "Crear" msgstr "Crear"
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
"Este código de acceso se enviará a tus amigos. El servidor lo almacena "
"tal cual, así que no reutilice una contraseña personal!"
msgid "Account manager" msgid "Account manager"
msgstr "Gestor de cuentas" msgstr "Gestor de cuentas"
@ -574,7 +632,7 @@ msgid "Statistics"
msgstr "Estadísticas" msgstr "Estadísticas"
msgid "History" msgid "History"
msgstr "" msgstr "Historial"
msgid "Settings" msgid "Settings"
msgstr "Configuración" msgstr "Configuración"
@ -618,11 +676,9 @@ msgstr "\"I hate money\" es un software libre"
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "puedes contribuir y mejorarlo!" msgstr "puedes contribuir y mejorarlo!"
msgid "deactivate" #, python-format
msgstr "Desactivar" msgid "%(amount)s each"
msgstr ""
msgid "reactivate"
msgstr "Reactivar"
msgid "Invite people" msgid "Invite people"
msgstr "Invitar personas" msgstr "Invitar personas"
@ -634,10 +690,10 @@ msgid "Add a new bill"
msgstr "Añadir una nueva factura" msgstr "Añadir una nueva factura"
msgid "Newer bills" msgid "Newer bills"
msgstr "" msgstr "Nuevas facturas"
msgid "Older bills" msgid "Older bills"
msgstr "" msgstr "Facturas anteriores"
msgid "When?" msgid "When?"
msgstr "¿Cuando?" msgstr "¿Cuando?"
@ -662,9 +718,6 @@ msgstr "Todo el mundo"
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "Todo el mundo menos %(excluded)s" msgstr "Todo el mundo menos %(excluded)s"
msgid "each"
msgstr "Cada"
msgid "No bills" msgid "No bills"
msgstr "Sin facturas" msgstr "Sin facturas"
@ -691,7 +744,7 @@ msgstr ""
"correos electrónicos." "correos electrónicos."
msgid "Return to home page" msgid "Return to home page"
msgstr "Regresar a la página principal" msgstr "Regresar al inicio"
msgid "Your projects" msgid "Your projects"
msgstr "Sus proyectos" msgstr "Sus proyectos"
@ -743,6 +796,18 @@ msgstr "¿Quién paga?"
msgid "To whom?" msgid "To whom?"
msgstr "¿A quién?" msgstr "¿A quién?"
msgid "Who?"
msgstr "¿Quién?"
msgid "Balance"
msgstr "Balance"
msgid "deactivate"
msgstr "Desactivar"
msgid "reactivate"
msgstr "Reactivar"
msgid "Paid" msgid "Paid"
msgstr "Pagado" msgstr "Pagado"
@ -750,10 +815,30 @@ msgid "Spent"
msgstr "Gastado" msgstr "Gastado"
msgid "Expenses by Month" msgid "Expenses by Month"
msgstr "" msgstr "Gastos por mes"
msgid "Period" msgid "Period"
msgstr "" msgstr "Período"
#~ msgid "%(member)s had been added" #~ msgid "%(member)s had been added"
#~ msgstr "se han añadido %(member)s" #~ msgstr "se han añadido %(member)s"
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr "%(msg_compl)sEl identificador del proyecto es %(project)s"
#~ msgid "each"
#~ msgstr "Cada"
#~ msgid "Error while sending reminder email"
#~ msgstr ""
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Este código de acceso se enviará a"
#~ " tus amigos. El servidor lo almacena"
#~ " tal cual, así que no reutilice "
#~ "una contraseña personal!"

View file

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 14:26+0200\n"
"PO-Revision-Date: 2020-04-25 11:14+0000\n" "PO-Revision-Date: 2020-06-01 16:41+0000\n"
"Last-Translator: Rémy Hubscher <hubscher.remy@gmail.com>\n" "Last-Translator: Glandos <bugs-github@antipoul.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/i-hate-money/" "Language-Team: French <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/fr/>\n" "i-hate-money/fr/>\n"
"Language: fr\n" "Language: fr\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.2-dev\n" "X-Generator: Weblate 4.1-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
msgid "" msgid ""
@ -42,6 +42,9 @@ msgstr "Activer l'historique de projet"
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "Collecter les adresses IP dans l'historique de projet" msgstr "Collecter les adresses IP dans l'historique de projet"
msgid "Default Currency"
msgstr "Devise par défaut"
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "Importer un fichier JSON précédemment exporté" msgstr "Importer un fichier JSON précédemment exporté"
@ -98,6 +101,9 @@ msgstr "Payeur"
msgid "Amount paid" msgid "Amount paid"
msgstr "Montant" msgstr "Montant"
msgid "Currency"
msgstr "Devise"
msgid "External link" msgid "External link"
msgstr "Lien externe" msgstr "Lien externe"
@ -113,6 +119,10 @@ msgstr "Valider"
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "Valider et ajouter une autre facture" msgstr "Valider et ajouter une autre facture"
#, python-format
msgid "Project default: %(currency)s"
msgstr "Devise du projet : %(currency)s"
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "Le montant dune facture ne peut pas être nul" msgstr "Le montant dune facture ne peut pas être nul"
@ -153,6 +163,9 @@ msgstr "Facture"
msgid "Project" msgid "Project"
msgstr "Projet" msgstr "Projet"
msgid "No Currency"
msgstr "Aucune devise"
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "Trop d'échecs dauthentification successifs, veuillez réessayer plus tard." msgstr "Trop d'échecs dauthentification successifs, veuillez réessayer plus tard."
@ -172,9 +185,29 @@ msgstr "Le code que vous avez entré nest pas correct"
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "Vous venez de créer « %(project)s » pour partager vos dépenses" msgstr "Vous venez de créer « %(project)s » pour partager vos dépenses"
msgid "A reminder email has just been sent to you"
msgstr "Un courriel de rappel vient de vous être envoyé"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"Nous avons essayé de vous envoyer un courriel de rappel, mais une erreur "
"sest produite. Il est toujours possible dutiliser le projet "
"normalement."
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr "%(msg_compl)sLidentifiant de ce projet est %(project)s" msgstr "Lidentifiant de ce projet est %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"Désolé, une erreur sest produite lors de lenvoi du courriel contenant "
"les instructions de réinitialisation de mot de passe. Veuillez vérifier "
"la configuration des courriels du serveur ou contacter ladministrateur."
msgid "No token provided" msgid "No token provided"
msgstr "Aucun token na été fourni" msgstr "Aucun token na été fourni"
@ -204,6 +237,15 @@ msgstr "Vous avez été invité à partager vos dépenses pour %(project)s"
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "Vos invitations ont bien été envoyées" msgstr "Vos invitations ont bien été envoyées"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"Désolé, une erreur sest produite lors de lenvoi du courriel "
"dinvitation. Veuillez vérifier la configuration des courriels du serveur"
" ou contacter ladministrateur."
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "%(member)s a été ajouté" msgstr "%(member)s a été ajouté"
@ -282,7 +324,7 @@ msgstr "éditer"
msgid "delete" msgid "delete"
msgstr "supprimer" msgstr "supprimer"
msgid "see" msgid "show"
msgstr "voir" msgstr "voir"
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
@ -393,8 +435,8 @@ msgid ""
" The rest of the project history will be unaffected. This " " The rest of the project history will be unaffected. This "
"action cannot be undone." "action cannot be undone."
msgstr "" msgstr ""
"Êtes-vous sur de vouloir supprimer toutes les adresses IP enregistrées pour " "Êtes-vous sur de vouloir supprimer toutes les adresses IP enregistrées "
"ce projet ?\n" "pour ce projet ?\n"
"Le reste de l'historique ne sera pas affecté. Cette action n'est pas " "Le reste de l'historique ne sera pas affecté. Cette action n'est pas "
"réversible." "réversible."
@ -426,12 +468,6 @@ msgstr "et"
msgid "owers list" msgid "owers list"
msgstr "Liste des débiteurs" msgstr "Liste des débiteurs"
msgid "Who?"
msgstr "Qui ?"
msgid "Balance"
msgstr "Solde"
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@ -535,6 +571,10 @@ msgstr "Le lien d'accès a été modifié en"
msgid "Amount" msgid "Amount"
msgstr "Montant" msgstr "Montant"
#, python-format
msgid "Amount in %(currency)s"
msgstr "Montant en %(currency)s"
msgid "modified" msgid "modified"
msgstr "modifié" msgstr "modifié"
@ -581,11 +621,11 @@ msgid "Create"
msgstr "Créer" msgstr "Créer"
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
"Ce code daccès va être envoyé à vos amis et stocké en clair sur le " "Ne réutilisez pas un de vos mots de passe. Choisissez un code personnel et "
"serveur. Nutilisez pas un mot de passe personnel !" "envoyez le à vos amis"
msgid "Account manager" msgid "Account manager"
msgstr "Gestion de comptes" msgstr "Gestion de comptes"
@ -644,11 +684,9 @@ msgstr "« I hate money » est un logiciel libre"
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "vous pouvez y contribuer et laméliorer !" msgstr "vous pouvez y contribuer et laméliorer !"
msgid "deactivate" #, python-format
msgstr "désactiver" msgid "%(amount)s each"
msgstr "%(amount)s chacun"
msgid "reactivate"
msgstr "ré-activer"
msgid "Invite people" msgid "Invite people"
msgstr "Inviter des gens" msgstr "Inviter des gens"
@ -688,9 +726,6 @@ msgstr "Tout le monde"
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "Tout le monde sauf %(excluded)s" msgstr "Tout le monde sauf %(excluded)s"
msgid "each"
msgstr "chacun"
msgid "No bills" msgid "No bills"
msgstr "Pas encore de factures" msgstr "Pas encore de factures"
@ -765,6 +800,18 @@ msgstr "Qui doit payer ?"
msgid "To whom?" msgid "To whom?"
msgstr "Pour qui ?" msgstr "Pour qui ?"
msgid "Who?"
msgstr "Qui ?"
msgid "Balance"
msgstr "Solde"
msgid "deactivate"
msgstr "désactiver"
msgid "reactivate"
msgstr "ré-activer"
msgid "Paid" msgid "Paid"
msgstr "A payé" msgstr "A payé"
@ -992,3 +1039,23 @@ msgstr "Période"
#~ "Êtes vous sûr de supprimer la " #~ "Êtes vous sûr de supprimer la "
#~ "totalité de lhistorique de ce projet" #~ "totalité de lhistorique de ce projet"
#~ " ? Cette action est irréversible." #~ " ? Cette action est irréversible."
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr "%(msg_compl)sLidentifiant de ce projet est %(project)s"
#~ msgid "each"
#~ msgstr "chacun"
#~ msgid "Error while sending reminder email"
#~ msgstr "Erreur lors de lenvoi du courriel de rappel"
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Ce code daccès va être envoyé à"
#~ " vos amis et stocké en clair "
#~ "sur le serveur. Nutilisez pas un "
#~ "mot de passe personnel !"

Binary file not shown.

View file

@ -0,0 +1,813 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-12 06:46+0200\n"
"PO-Revision-Date: 2020-06-14 14:41+0000\n"
"Last-Translator: raghupalash <singhpalash0@gmail.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/hi/>\n"
"Language: hi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.1-dev\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr ""
"वैध राशि या चिह्न नहीं। केवल संख्या और + - * / ऑपरेटरों को स्वीकार किया जाता "
"है।"
msgid "Project name"
msgstr "परियोजना का नाम"
msgid "Private code"
msgstr "निजी कोड"
msgid "Email"
msgstr "ईमेल"
msgid "Enable project history"
msgstr "प्रोजेक्ट इतिहास सक्षम करें"
msgid "Use IP tracking for project history"
msgstr "प्रोजेक्ट इतिहास के लिए IP ट्रैकिंग का उपयोग करें"
msgid "Default Currency"
msgstr "डिफ़ॉल्ट मुद्रा"
msgid "Import previously exported JSON file"
msgstr "पूर्व में निर्यात की गई JSON फ़ाइल आयात करें"
msgid "Import"
msgstr "आयात"
msgid "Project identifier"
msgstr "परियोजना पहचानकर्ता"
msgid "Create the project"
msgstr "परियोजना बनाएं"
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr ""
"इस पहचानकर्ता के साथ एक परियोजना (\"%(project)s\") पहले से मौजूद है। कृपया "
"एक नया पहचानकर्ता चुनें"
msgid "Get in"
msgstr "अंदर जाइये"
msgid "Admin password"
msgstr "व्यवस्थापक पासवर्ड"
msgid "Send me the code by email"
msgstr "मुझे ईमेल द्वारा कोड भेजें"
msgid "This project does not exists"
msgstr "यह परियोजना मौजूद नहीं है"
msgid "Password mismatch"
msgstr "पासवर्ड का मेल नहीं हुआ"
msgid "Password"
msgstr "पासवर्ड"
msgid "Password confirmation"
msgstr "पासवर्ड पुष्टीकरण"
msgid "Reset password"
msgstr "पासवर्ड रीसेट"
msgid "Date"
msgstr "तारीख"
msgid "What?"
msgstr "क्या?"
msgid "Payer"
msgstr "भुगतानकर्ता"
msgid "Amount paid"
msgstr "भुगतान की गई राशि"
msgid "Currency"
msgstr "मुद्रा"
msgid "External link"
msgstr "बाहरी लिंक"
msgid "A link to an external document, related to this bill"
msgstr "इस बिल से संबंधित एक बाहरी दस्तावेज़ का लिंक"
msgid "For whom?"
msgstr "किसके लिए?"
msgid "Submit"
msgstr "जमा करें"
msgid "Submit and add a new one"
msgstr "जमा करें और एक नया जोड़ें"
#, python-format
msgid "Project default: %(currency)s"
msgstr "प्रोजेक्ट डिफ़ॉल्ट:%(currency)s"
msgid "Bills can't be null"
msgstr "बिल शून्य नहीं हो सकते"
msgid "Name"
msgstr "नाम"
msgid "Weights should be positive"
msgstr "वज़न सकारात्मक होना चाहिए"
msgid "Weight"
msgstr "वजन"
msgid "Add"
msgstr "जोड़ें"
msgid "User name incorrect"
msgstr "उपयोगकर्ता नाम गलत है"
msgid "This project already have this member"
msgstr "इस परियोजना में पहले से ही यह सदस्य है"
msgid "People to notify"
msgstr "सूचित किये जाने वाले लोग"
msgid "Send invites"
msgstr "आमंत्रण भेजें"
#, python-format
msgid "The email %(email)s is not valid"
msgstr "ईमेल %(email)s मान्य नहीं है"
msgid "Participant"
msgstr "प्रतिभागी"
msgid "Bill"
msgstr "बिल"
msgid "Project"
msgstr "परियोजना"
msgid "No Currency"
msgstr "कोई मुद्रा नहीं"
msgid "Too many failed login attempts, please retry later."
msgstr "बहुत से विफल लॉगिन प्रयास, कृपया बाद में पुनः प्रयास करें।"
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr "यह व्यवस्थापक पासवर्ड सही नहीं है। केवल %(num)d प्रयास बचे हैं।"
msgid "You either provided a bad token or no project identifier."
msgstr ""
"आपने या तो एक खराब टोकन प्रदान किया है या कोई प्रोजेक्ट पहचानकर्ता नहीं है।"
msgid "This private code is not the right one"
msgstr "यह निजी कोड सही नहीं है"
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr "आपने अभी अभी अपने खर्चों को साझा करने के लिए '%(project)s' बनाया है"
msgid "A reminder email has just been sent to you"
msgstr "आपको अभी एक अनुस्मारक ईमेल भेजा गया है"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"हमने आपको एक अनुस्मारक ईमेल भेजने की कोशिश की, लेकिन कोई त्रुटि थी। आप अभी भी"
" सामान्य रूप से प्रोजेक्ट का उपयोग कर सकते हैं।"
#, python-format
msgid "The project identifier is %(project)s"
msgstr "प्रोजेक्ट पहचानकर्ता %(project)s है"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"क्षमा करें, पासवर्ड रीसेट निर्देशों के साथ आपको एक ईमेल भेजते समय कोई त्रुटि "
"हुई थी। कृपया सर्वर के ईमेल कॉन्फ़िगरेशन की जाँच करें या व्यवस्थापक से संपर्"
"क करें।"
msgid "No token provided"
msgstr "कोई टोकन प्रदान नहीं किया गया"
msgid "Invalid token"
msgstr "अमान्य टोकन"
msgid "Unknown project"
msgstr "अज्ञात परियोजना"
msgid "Password successfully reset."
msgstr "पासवर्ड सफलतापूर्वक रीसेट हो गया है।"
msgid "Project successfully uploaded"
msgstr "प्रोजेक्ट सफलतापूर्वक अपलोड किया गया"
msgid "Invalid JSON"
msgstr "अमान्य JSON"
msgid "Project successfully deleted"
msgstr "प्रोजेक्ट सफलतापूर्वक हटा दिया गया"
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr ""
"आपको %(project)s के लिए अपने खर्चों को साझा करने के लिए आमंत्रित किया गया है"
msgid "Your invitations have been sent"
msgstr "आपके निमंत्रण भेज दिए गए हैं"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"क्षमा करें, आमंत्रण ईमेल भेजने का प्रयास करते समय कोई त्रुटि हुई। कृपया सर्"
"वर के ईमेल कॉन्फ़िगरेशन की जाँच करें या व्यवस्थापक से संपर्क करें।"
#, python-format
msgid "%(member)s has been added"
msgstr "%(member)s को जोड़ लिया गया है"
#, python-format
msgid "%(name)s is part of this project again"
msgstr "%(name)s फिर से इस परियोजना का हिस्सा है"
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
"उपयोगकर्ता '%(name)s' को निष्क्रिय कर दिया गया है। यह तब भी उपयोगकर्ताओं की "
"सूची में दिखाई देगा जब तक कि इसका संतुलन शून्य नहीं हो जाता।"
#, python-format
msgid "User '%(name)s' has been removed"
msgstr "उपयोगकर्ता '%(name)s' को हटा दिया गया है"
#, python-format
msgid "User '%(name)s' has been edited"
msgstr "उपयोगकर्ता '%(name)s' को संपादित कर दिया गया है"
msgid "The bill has been added"
msgstr "बिल जोड़ दिया गया है"
msgid "The bill has been deleted"
msgstr "बिल को हटा दिया गया है"
msgid "The bill has been modified"
msgstr "बिल को संशोधित कर दिया गया है"
msgid "Sorry, we were unable to find the page you've asked for."
msgstr "क्षमा करें, हम आपके द्वारा मांगे गए पृष्ठ को खोजने में असमर्थ थे।"
msgid "The best thing to do is probably to get back to the main page."
msgstr "सबसे अच्छा रास्ता शायद मुख्य पृष्ठ पर वापस जाना है।"
msgid "Back to the list"
msgstr "सूची में वापस जाएँ"
msgid "Administration tasks are currently disabled."
msgstr "वर्तमान में प्रबंधन कार्य अक्षम हैं।"
msgid "The project you are trying to access do not exist, do you want to"
msgstr ""
"जिस प्रोजेक्ट पर आप पहुचने की कोशिश कर रहे हैं, वह मौजूद नहीं है, क्या आप यह "
"करना चाहते हैं"
msgid "create it"
msgstr "बनाइये"
msgid "?"
msgstr "?"
msgid "Create a new project"
msgstr "नयी परियोजना बनाये"
msgid "Number of members"
msgstr "सदस्यों की संख्या"
msgid "Number of bills"
msgstr "बिलों की संख्या"
msgid "Newest bill"
msgstr "सबसे नया बिल"
msgid "Oldest bill"
msgstr "सबसे पुराना बिल"
msgid "Actions"
msgstr "कार्य"
msgid "edit"
msgstr "संपादित करें"
msgid "delete"
msgstr "हटाइये"
msgid "show"
msgstr "प्रदर्शन"
msgid "The Dashboard is currently deactivated."
msgstr "डैशबोर्ड वर्तमान में निष्क्रिय है।"
msgid "you sure?"
msgstr "आपको यकीन है?"
msgid "Edit project"
msgstr "परियोजना संपादित करें"
msgid "Import JSON"
msgstr "JSON को आयात करे"
msgid "Choose file"
msgstr "फ़ाइल चुनें"
msgid "Download project's data"
msgstr "प्रोजेक्ट का डेटा डाउनलोड करें"
msgid "Bill items"
msgstr "बिल आइटम"
msgid "Download the list of bills with owner, amount, reason,... "
msgstr "स्वामी, राशि, कारण,... के साथ बिलों की सूची डाउनलोड करें "
msgid "Settle plans"
msgstr "योजनाओ का निपटारा करें"
msgid "Download the list of transactions needed to settle the current bills."
msgstr "वर्तमान बिलों को निपटाने के लिए आवश्यक लेनदेन की सूची डाउनलोड करें।"
msgid "Can't remember the password?"
msgstr "पासवर्ड याद नहीं?"
msgid "Cancel"
msgstr "रद्द करें"
msgid "Privacy Settings"
msgstr "प्राइवेसी सेटिंग्स"
msgid "Edit the project"
msgstr "प्रोजेक्ट संपादित करें"
msgid "Edit this bill"
msgstr "इस बिल को संपादित करें"
msgid "Add a bill"
msgstr "बिल जोड़ें"
msgid "Select all"
msgstr "सब को चुने"
msgid "Select none"
msgstr "किसी का चयन न करें"
msgid "Add participant"
msgstr "प्रतिभागी जोड़ें"
msgid "Edit this member"
msgstr "इस सदस्य को संपादित करें"
msgid "john.doe@example.com, mary.moe@site.com"
msgstr "john.doe@example.com, mary.moe@site.com"
msgid "Send the invitations"
msgstr "निमंत्रण भेजें"
msgid "Download"
msgstr "डाउनलोड"
msgid "Disabled Project History"
msgstr "प्रोजेक्ट इतिहास अक्षम किया गया"
msgid "Disabled Project History & IP Address Recording"
msgstr "प्रोजेक्ट इतिहास और IP एड्रेस रिकॉर्डिंग को अक्षम किया गया"
msgid "Enabled Project History"
msgstr "प्रोजेक्ट इतिहास सक्षम किया गया"
msgid "Disabled IP Address Recording"
msgstr "IP एड्रेस रिकॉर्डिंग को अक्षम किया गया"
msgid "Enabled Project History & IP Address Recording"
msgstr "प्रोजेक्ट इतिहास सक्षम किया गया और IP एड्रेस रिकॉर्ड किया गया"
msgid "Enabled IP Address Recording"
msgstr "IP एड्रेस रिकॉर्डिंग को सक्षम किया गया"
msgid "History Settings Changed"
msgstr "इतिहास सेटिंग्स बदल दी गई है"
msgid "changed"
msgstr "बदल दिया है"
msgid "from"
msgstr "से"
msgid "to"
msgstr "तक"
msgid "Confirm Remove IP Adresses"
msgstr "IP पतों को हटाने की पुष्टि करें"
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
"क्या आप वाकई इस प्रोजेक्ट के सभी रिकॉर्ड किए गए IP पतों को हटाना चाहते हैं?\n"
" परियोजना का बाकी इतिहास अप्रभावित रहेगा। इस कार्य को पूर्"
"ववत नहीं किया जा सकता।"
msgid "Close"
msgstr "बंद करे"
msgid "Confirm Delete"
msgstr "हटाने की पुष्टि करें"
msgid "Delete Confirmation"
msgstr "पुष्टिकरण हटाएं"
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
"क्या आप वाकई इस परियोजना के लिए सभी इतिहास मिटाना चाहते हैं? इस कार्य को पूर्"
"ववत नहीं किया जा सकता।"
msgid "Added"
msgstr "जोड़ा गया"
msgid "Removed"
msgstr "हटाया गया"
msgid "and"
msgstr "और"
msgid "owers list"
msgstr "देनदारों की सूची"
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
"\n"
" <i>इस प्रोजेक्ट में इतिहास अक्षम है। नई कार्रवाइयां नीचे दिखाई "
"नहीं देंगी। आप इतिहास को यहाँ से सक्षम कर सकते हैं</i>\n"
" <a href=\"%(url)s\">सेटिंग्स पृष्ठ</a>\n"
" "
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
"\n"
" <i>नीचे दी गई तालिका परियोजना इतिहास को अक्षम करने से पहले दर्ज "
"की गई कार्रवाइयों को दर्शाती है। आप उन्हें हटाने के लिए\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" data-"
"target=\"#confirm-erase\">प्रोजेक्ट इतिहास हटा</a>सकते हैं।</i></p>\n"
" "
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
"नीचे कुछ प्रविष्टियों में IP पते हैं, भले ही इस परियोजना में IP रिकॉर्डिंग "
"अक्षम है। "
msgid "Delete stored IP addresses"
msgstr "संग्रहीत IP पते हटाएं"
msgid "No history to erase"
msgstr "मिटाने के लिए कोई इतिहास नहीं है"
msgid "Clear Project History"
msgstr "प्रोजेक्ट इतिहास हटाएं"
msgid "No IP Addresses to erase"
msgstr "मिटाने के लिए कोई IP पते नहीं हैं"
msgid "Delete Stored IP Addresses"
msgstr "संग्रहीत IP पते हटाएं"
msgid "Time"
msgstr "समय"
msgid "Event"
msgstr "घटना"
msgid "IP address recording can be enabled on the settings page"
msgstr "आईपी पता रिकॉर्डिंग को सेटिंग पेज पर सक्षम किया जा सकता है"
msgid "IP address recording can be disabled on the settings page"
msgstr "आईपी पता रिकॉर्डिंग को सेटिंग पेज पर अक्षम किया जा सकता है"
msgid "From IP"
msgstr "IP से"
msgid "added"
msgstr "को जोड़ा गया"
msgid "Project private code changed"
msgstr "परियोजना के निजी कोड को बदल दिया गया"
msgid "Project renamed to"
msgstr "परियोजना पुन:नामकरण कर दिया गया| नया नाम है"
msgid "Project contact email changed to"
msgstr "परियोजना संपर्क ईमेल को बदल दिया गया| नया ईमेल है"
msgid "Project settings modified"
msgstr "परियोजना सेटिंग्स संशोधित"
msgid "deactivated"
msgstr "निष्क्रिय"
msgid "reactivated"
msgstr "पुन: सक्रिय"
msgid "renamed to"
msgstr "पुनः नामकरण किया गया| नया नाम है"
msgid "External link changed to"
msgstr "बाहरी लिंक को बदल कर यह कर दिया गया है"
msgid "Amount"
msgstr "रकम"
#, python-format
msgid "Amount in %(currency)s"
msgstr "%(currency)s में राशि"
msgid "modified"
msgstr "संशोधित"
msgid "removed"
msgstr "हटाया गया"
msgid "changed in a unknown way"
msgstr "अज्ञात तरीके से बदल गया"
msgid "Nothing to list"
msgstr "सूचीबद्ध करने के लिए कुछ नहीं"
msgid "Someone probably cleared the project history."
msgstr "किसी ने शायद परियोजना के इतिहास को हटा दिया है।"
msgid "Manage your shared <br />expenses, easily"
msgstr "अपने साझा खर्चों को <br />आसानी से प्रबंधित करें"
msgid "Try out the demo"
msgstr "डेमो आज़माएं"
msgid "You're sharing a house?"
msgstr "आप एक ही घर में रहते हैं?"
msgid "Going on holidays with friends?"
msgstr "दोस्तों के साथ छुट्टियों पर जा रहे हैं?"
msgid "Simply sharing money with others?"
msgstr "बस दूसरों के साथ पैसे साझा करना है?"
msgid "We can help!"
msgstr "हम मदद कर सकते हैं!"
msgid "Log in to an existing project"
msgstr "किसी मौजूदा प्रोजेक्ट में लॉग इन करें"
msgid "Log in"
msgstr "लॉग इन"
msgid "can't remember your password?"
msgstr "पासवर्ड याद नहीं?"
msgid "Create"
msgstr "बनाये"
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
"व्यक्तिगत पासवर्ड का पुन: उपयोग न करें। एक निजी कोड चुनें और इसे अपने दोस्तों"
" को भेजें"
msgid "Account manager"
msgstr "खाता प्रबंधक"
msgid "Bills"
msgstr "बिल"
msgid "Settle"
msgstr "चुकता करें"
msgid "Statistics"
msgstr "आंकड़े"
msgid "History"
msgstr "इतिहास"
msgid "Settings"
msgstr "सेटिंग्स"
msgid "Languages"
msgstr "भाषाएं"
msgid "Projects"
msgstr "परियोजनाएं"
msgid "Start a new project"
msgstr "नई परियोजना शुरू करें"
msgid "Other projects :"
msgstr "अन्य परियोजनाएँ :"
msgid "switch to"
msgstr "पर स्विच करें"
msgid "Dashboard"
msgstr "डैशबोर्ड"
msgid "Logout"
msgstr "लॉग आउट"
msgid "Code"
msgstr "कोड"
msgid "Mobile Application"
msgstr "मोबाइल एप्लीकेशन"
msgid "Documentation"
msgstr "प्रलेखन"
msgid "Administation Dashboard"
msgstr "व्यवस्थापन डैशबोर्ड"
msgid "\"I hate money\" is a free software"
msgstr "\"I hate money\" एक मुफ्त सॉफ्टवेयर है"
msgid "you can contribute and improve it!"
msgstr "आप इसमें योगदान और सुधार कर सकते हैं!"
#, python-format
msgid "%(amount)s each"
msgstr "%(amount)s प्रत्येक"
msgid "Invite people"
msgstr "लोगों को निमंत्रण भेजें"
msgid "You should start by adding participants"
msgstr "शुरू करने के लिए प्रतिभागियों को जोड़ें"
msgid "Add a new bill"
msgstr "नया बिल जोड़ें"
msgid "Newer bills"
msgstr "नए बिल"
msgid "Older bills"
msgstr "पुराने बिल"
msgid "When?"
msgstr "कब?"
msgid "Who paid?"
msgstr "किसने भुगतान किया?"
msgid "For what?"
msgstr "किस लिए?"
msgid "How much?"
msgstr "कितना?"
#, python-format
msgid "Added on %(date)s"
msgstr "%(date)s पर जोड़ा गया"
msgid "Everyone"
msgstr "सब"
#, python-format
msgid "Everyone but %(excluded)s"
msgstr "%(excluded)s को छोड़ के बाकी सब"
msgid "No bills"
msgstr "कोई बिल नहीं"
msgid "Nothing to list yet."
msgstr "सूचि बनाने के लिए कुछ नहीं।"
msgid "You probably want to"
msgstr "आप शायद यह करना चाहते हैं"
msgid "add a bill"
msgstr "बिल जोड़ें"
msgid "add participants"
msgstr "प्रतिभागियों को जोड़ें"
msgid "Password reminder"
msgstr "पासवर्ड अनुस्मारक"
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
"आपका पासवर्ड रीसेट करने के लिए एक लिंक आपको भेजी गयी है, कृपया अपना ईमेल "
"देखें।"
msgid "Return to home page"
msgstr "होमपेज पर वापस जाएं"
msgid "Your projects"
msgstr "आपकी परियोजनाएँ"
msgid "Reset your password"
msgstr "अपना पासवर्ड रीसेट करें"
msgid "Invite people to join this project"
msgstr "इस परियोजना से जुड़ने के लिए लोगों को आमंत्रित करें"
msgid "Share Identifier & code"
msgstr "पहचानकर्ता और कोड साझा करें"
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
"आप किसी भी संचार माध्यम से परियोजना पहचानकर्ता और निजी कोड साझा कर सकते हैं।"
msgid "Identifier:"
msgstr "पहचानकर्ता:"
msgid "Share the Link"
msgstr "लिंक साझा करें"
msgid "You can directly share the following link via your prefered medium"
msgstr "आप नीचे दिए गए लिंक को सीधे अपने पसंदीदा माध्यम से साझा कर सकते हैं"
msgid "Send via Emails"
msgstr "ईमेल के माध्यम से भेजें"
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
"उन ईमेल पतों की एक (अल्पविराम से अलग की गयी) सूची निर्दिष्ट करें जिन्हे आप "
"इस \n"
"\t\t बजट प्रबंधन परियोजना के निर्माण के बारे में सूचित करना चाहते हैं और "
"हम उन्हें आपके लिए एक ईमेल भेजेंगे।"
msgid "Who pays?"
msgstr "किसे भुगतान करना है?"
msgid "To whom?"
msgstr "किसको?"
msgid "Who?"
msgstr "कौन?"
msgid "Balance"
msgstr "शेष"
msgid "deactivate"
msgstr "निष्क्रिय करें"
msgid "reactivate"
msgstr "पुनः सक्रिय करें"
msgid "Paid"
msgstr "भुगतान किया"
msgid "Spent"
msgstr "खर्च किया"
msgid "Expenses by Month"
msgstr "मासिक खर्च"
msgid "Period"
msgstr "अवधि"

View file

@ -1,18 +1,18 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: 2019-11-16 10:04+0000\n" "PO-Revision-Date: 2020-09-26 09:40+0000\n"
"Last-Translator: Muhammad Fauzi <fauzi.padlaw@gmail.com>\n" "Last-Translator: Fakhruddin Ahmad Darwis <fakhri.satu@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/id/>\n"
"Language: id\n" "Language: id\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/i-hate-"
"money/i-hate-money/id/>\n"
"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.3-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
msgid "" msgid ""
@ -32,16 +32,19 @@ msgid "Email"
msgstr "Surel" msgstr "Surel"
msgid "Enable project history" msgid "Enable project history"
msgstr "" msgstr "Aktifkan riwayat proyek"
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr "Gunakan pelacakan IP untuk riwayat proyek"
msgid "Default Currency"
msgstr "Mata Uang Standar"
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr "Impor file JSON yang sudah diekspor sebelumnya"
msgid "Import" msgid "Import"
msgstr "" msgstr "Impor"
msgid "Project identifier" msgid "Project identifier"
msgstr "Pengidentifikasi proyek" msgstr "Pengidentifikasi proyek"
@ -93,6 +96,9 @@ msgstr "Pembayar"
msgid "Amount paid" msgid "Amount paid"
msgstr "Jumlah bayar" msgstr "Jumlah bayar"
msgid "Currency"
msgstr "Mata Uang"
msgid "External link" msgid "External link"
msgstr "Tautan luar" msgstr "Tautan luar"
@ -108,6 +114,10 @@ msgstr "Ajukan"
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "Ajukan dan tambah yang baru" msgstr "Ajukan dan tambah yang baru"
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "Tagihan tidak boleh kosong" msgstr "Tagihan tidak boleh kosong"
@ -148,6 +158,9 @@ msgstr ""
msgid "Project" msgid "Project"
msgstr "Proyek" msgstr "Proyek"
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "Terlalu banyak percobaan masuk, silakan coba lagi nanti." msgstr "Terlalu banyak percobaan masuk, silakan coba lagi nanti."
@ -165,9 +178,23 @@ msgstr "Kode pribadi ini tidak benar"
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "Anda baru saja membuat %(project)s untuk membagikan harga Anda" msgstr "Anda baru saja membuat %(project)s untuk membagikan harga Anda"
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr "%(msg_compl)sId proyek adalah %(project)s" msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
msgid "No token provided" msgid "No token provided"
msgstr "Belum ada token diberikan" msgstr "Belum ada token diberikan"
@ -197,6 +224,12 @@ msgstr "Anda telah diundang untuk membagikan harga Anda untuk %(project)s"
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "Undangan Anda telah dikirim" msgstr "Undangan Anda telah dikirim"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr ""
@ -275,8 +308,8 @@ msgstr "ubah"
msgid "delete" msgid "delete"
msgstr "hapus" msgstr "hapus"
msgid "see" msgid "show"
msgstr "lihat" msgstr ""
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
msgstr "Dasbor sekarang ini sedang dinonaktifkan." msgstr "Dasbor sekarang ini sedang dinonaktifkan."
@ -413,12 +446,6 @@ msgstr ""
msgid "owers list" msgid "owers list"
msgstr "" msgstr ""
msgid "Who?"
msgstr "Siapa?"
msgid "Balance"
msgstr "Saldo"
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@ -503,6 +530,10 @@ msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified" msgid "modified"
msgstr "" msgstr ""
@ -549,11 +580,9 @@ msgid "Create"
msgstr "Buat" msgstr "Buat"
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
"Kode akses ini akan dikirimkan ke teman Anda. Kode ini disimpan dalam "
"bentuk teks biasa dalam server, jadi jangan gunakan password Anda!"
msgid "Account manager" msgid "Account manager"
msgstr "Pengatur akun" msgstr "Pengatur akun"
@ -612,11 +641,9 @@ msgstr "\"I hate money\" adalah perangkat lunak gratis"
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "kamu bisa berkontribusi dan meningkatkannya!" msgstr "kamu bisa berkontribusi dan meningkatkannya!"
msgid "deactivate" #, python-format
msgstr "nonaktifkan" msgid "%(amount)s each"
msgstr ""
msgid "reactivate"
msgstr "aktivasi ulang"
msgid "Invite people" msgid "Invite people"
msgstr "Undang orang" msgstr "Undang orang"
@ -656,9 +683,6 @@ msgstr "Semua orang"
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "Semua orang kecuali %(excluded)s" msgstr "Semua orang kecuali %(excluded)s"
msgid "each"
msgstr "setiap"
msgid "No bills" msgid "No bills"
msgstr "Tidak ada tagihan" msgstr "Tidak ada tagihan"
@ -737,6 +761,18 @@ msgstr "Siapa membayar?"
msgid "To whom?" msgid "To whom?"
msgstr "Kepada siapa?" msgstr "Kepada siapa?"
msgid "Who?"
msgstr "Siapa?"
msgid "Balance"
msgstr "Saldo"
msgid "deactivate"
msgstr "nonaktifkan"
msgid "reactivate"
msgstr "aktivasi ulang"
msgid "Paid" msgid "Paid"
msgstr "Dibayar" msgstr "Dibayar"
@ -758,3 +794,22 @@ msgstr ""
#~ msgid "cleared the project history." #~ msgid "cleared the project history."
#~ msgstr "" #~ msgstr ""
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr "%(msg_compl)sId proyek adalah %(project)s"
#~ msgid "each"
#~ msgstr "setiap"
#~ msgid "Error while sending reminder email"
#~ msgstr ""
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Kode akses ini akan dikirimkan ke "
#~ "teman Anda. Kode ini disimpan dalam "
#~ "bentuk teks biasa dalam server, jadi "
#~ "jangan gunakan password Anda!"

Binary file not shown.

View file

@ -0,0 +1,846 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: 2020-10-26 19:27+0000\n"
"Last-Translator: Sylphystia <yuidirnt@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2-dev\n"
"Generated-By: Babel 2.8.0\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr ""
"Quantità o espressione non valida. Solo numeri e operatori + - * / accettati."
msgid "Project name"
msgstr "Nome del progetto"
msgid "Private code"
msgstr "Codice privato"
msgid "Email"
msgstr "Email"
msgid "Enable project history"
msgstr "Attivare la cronologia del progetto"
msgid "Use IP tracking for project history"
msgstr "Utilizzare la localizzazione IP per lo storico del progetto"
msgid "Default Currency"
msgstr "Valuta predefinita"
msgid "Import previously exported JSON file"
msgstr "Importare il file esportato JSON"
msgid "Import"
msgstr "Importare"
msgid "Project identifier"
msgstr "Identificatore del progetto"
msgid "Create the project"
msgstr "Creare il progetto"
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr ""
"Un progetto con questo identificatore (\"%(project)s\") esiste già. Per "
"favore scegliere un identificatore nuovo"
msgid "Get in"
msgstr "Entra"
msgid "Admin password"
msgstr "Password di amministrazione"
msgid "Send me the code by email"
msgstr "Inviami il codice per email"
msgid "This project does not exists"
msgstr "Questo progetto non esiste"
msgid "Password mismatch"
msgstr "Password non corrispondente"
msgid "Password"
msgstr "Password"
msgid "Password confirmation"
msgstr "Conferma password"
msgid "Reset password"
msgstr "Reset della password"
msgid "Date"
msgstr "Data"
msgid "What?"
msgstr "Cosa?"
msgid "Payer"
msgstr "Pagatore"
msgid "Amount paid"
msgstr "Importo pagato"
msgid "Currency"
msgstr "Valuta"
msgid "External link"
msgstr "Link esterno"
msgid "A link to an external document, related to this bill"
msgstr "Un link a un documento esterno in relazione a questa spesa"
msgid "For whom?"
msgstr "Per chi?"
msgid "Submit"
msgstr "Invia"
msgid "Submit and add a new one"
msgstr "Inviare e aggiungerne uno nuovo"
#, python-format
msgid "Project default: %(currency)s"
msgstr "Impostazione predefinita per il progetto: %(currency)s"
msgid "Bills can't be null"
msgstr "L'addebito non può essere nullo"
msgid "Name"
msgstr "Nome"
msgid "Weights should be positive"
msgstr "Il peso deve essere positivo"
msgid "Weight"
msgstr "Peso"
msgid "Add"
msgstr "Aggiungi"
msgid "User name incorrect"
msgstr "Nome utente non valido"
msgid "This project already have this member"
msgstr "Membro già presente in questo progetto"
msgid "People to notify"
msgstr "Persone da notificare"
msgid "Send invites"
msgstr "Spedisci inviti"
#, python-format
msgid "The email %(email)s is not valid"
msgstr "L'email %(email)s non è valida"
msgid "Participant"
msgstr "Partecipante"
msgid "Bill"
msgstr "Spesa"
msgid "Project"
msgstr "Progetto"
msgid "No Currency"
msgstr "Nessuna valuta"
msgid "Too many failed login attempts, please retry later."
msgstr "Troppi tentativi di accesso non riusciti. Riprova più tardi."
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr ""
"Questa password di amministrazione non è corretta. Solo %(num)d tentativi"
" rimasti."
msgid "You either provided a bad token or no project identifier."
msgstr ""
"Hai fornito un token invalido o l'identificatore del progetto non è "
"valido."
msgid "This private code is not the right one"
msgstr "Questo codice privato non è quello corretto"
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr "Hai appena creato '%(project)s' per condividere le tue spese"
msgid "A reminder email has just been sent to you"
msgstr "Ti è stato inviato un promemoria per email"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"Abbiamo provato a inviarti un promemoria per email, ma si è verificato un"
" errore. Puoi comunque utilizzare normalmente il progetto."
#, python-format
msgid "The project identifier is %(project)s"
msgstr "L'identificatore del progetto è %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"Spiacenti, si è verificato un errore durante l'invio dell'email con le "
"istruzioni per il reset della password. Verifica la configurazione "
"dell'email del server o contatta l'amministratore."
msgid "No token provided"
msgstr "Nessun token fornito"
msgid "Invalid token"
msgstr "Token invalido"
msgid "Unknown project"
msgstr "Progetto non conosciuto"
msgid "Password successfully reset."
msgstr "Reset della password effettuato."
msgid "Project successfully uploaded"
msgstr "Progetto caricato con successo"
msgid "Invalid JSON"
msgstr "JSON non valido"
msgid "Project successfully deleted"
msgstr "Progetto rimosso con successo"
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr "Sei stato invitato a condividere le tue spese per %(project)s"
msgid "Your invitations have been sent"
msgstr "I tuoi inviti sono stati spediti"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"Spiacenti, si è verificato un errore durante l'invio delle email di "
"invito. Verifica la configurazione dell'email sul server o contatta "
"l'amministratore."
#, python-format
msgid "%(member)s has been added"
msgstr "%(member)s è stato aggiunto"
#, python-format
msgid "%(name)s is part of this project again"
msgstr "%(name)s fa nuovamente parte di questo progetto"
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
"L'utente '%(name)s' è stato disattivato. Comparirà ancora nella lista "
"utenti finché il suo bilancio sarà superiore a zero."
#, python-format
msgid "User '%(name)s' has been removed"
msgstr "L'utente '%(name)s' è stato rimosso"
#, python-format
msgid "User '%(name)s' has been edited"
msgstr "L'utente '%(name)s' è stato aggiornato"
msgid "The bill has been added"
msgstr "L'addebito è stato aggiunto"
msgid "The bill has been deleted"
msgstr "La spesa è stata cancellata"
msgid "The bill has been modified"
msgstr "L'addebito è stato aggiornato"
msgid "Sorry, we were unable to find the page you've asked for."
msgstr "Spiacenti, non abbiamo trovato la pagina che cerchi."
msgid "The best thing to do is probably to get back to the main page."
msgstr "Probabilmente la cosa migliore da fare è tornare alla pagina principale."
msgid "Back to the list"
msgstr "Ritorna all'elenco"
msgid "Administration tasks are currently disabled."
msgstr "In questo momento le funzionalità amministrative sono disabilitate."
msgid "The project you are trying to access do not exist, do you want to"
msgstr "Il progetto cui stai provando ad accedere non esiste, vuoi"
msgid "create it"
msgstr "crealo"
msgid "?"
msgstr "?"
msgid "Create a new project"
msgstr "Crea un nuovo progetto"
msgid "Number of members"
msgstr "Numero di membri"
msgid "Number of bills"
msgstr "Numero di spese"
msgid "Newest bill"
msgstr "Spesa più recente"
msgid "Oldest bill"
msgstr "Primo addebito"
msgid "Actions"
msgstr "Azioni"
msgid "edit"
msgstr "modifica"
msgid "delete"
msgstr "rimuovi"
msgid "show"
msgstr "visualizza"
msgid "The Dashboard is currently deactivated."
msgstr "Il Cruscotto è attualmente disabilitato."
msgid "you sure?"
msgstr "sei sicuro?"
msgid "Edit project"
msgstr "Modifica progetto"
msgid "Import JSON"
msgstr "Importa JSON"
msgid "Choose file"
msgstr "Scegli file"
msgid "Download project's data"
msgstr "Scarica i dati del progetto"
msgid "Bill items"
msgstr "Addebiti"
msgid "Download the list of bills with owner, amount, reason,... "
msgstr "Scarica la lista di spese con nome, importo, motivazione, ... "
msgid "Settle plans"
msgstr "Piani di liquidazione"
msgid "Download the list of transactions needed to settle the current bills."
msgstr ""
"Scarica l'elenco delle transazioni richieste per liquidare i debiti "
"attuali."
msgid "Can't remember the password?"
msgstr "Non ricordi la password?"
msgid "Cancel"
msgstr "Annulla"
msgid "Privacy Settings"
msgstr "Impostazioni Privacy"
msgid "Edit the project"
msgstr "Modifica il progetto"
msgid "Edit this bill"
msgstr "Modifica questa spesa"
msgid "Add a bill"
msgstr "Aggiungi un addebito"
msgid "Select all"
msgstr "Seleziona tutto"
msgid "Select none"
msgstr "Seleziona nessuno"
msgid "Add participant"
msgstr "Aggiungi partecipante"
msgid "Edit this member"
msgstr "Modifica questo membro"
msgid "john.doe@example.com, mary.moe@site.com"
msgstr "mario.rossi@example.com, maria.bianchi@site.com"
msgid "Send the invitations"
msgstr "Spedisci gli inviti"
msgid "Download"
msgstr "Scarica"
msgid "Disabled Project History"
msgstr "Cronologia Progetto Disabilitata"
msgid "Disabled Project History & IP Address Recording"
msgstr "Storico Progetto & Registrazione Indirizzo IP Disabilitato"
msgid "Enabled Project History"
msgstr "Cronologia Progetto Abilitata"
msgid "Disabled IP Address Recording"
msgstr "Registrazione Indirizzi IP Disabilitata"
msgid "Enabled Project History & IP Address Recording"
msgstr "Storico Progetto & Registrazione Indirizzo IP Abilitato"
msgid "Enabled IP Address Recording"
msgstr "Registrazione Indirizzi IP Abilitata"
msgid "History Settings Changed"
msgstr "Impostazioni Cronologia Aggiornate"
msgid "changed"
msgstr "aggiornato"
msgid "from"
msgstr "da"
msgid "to"
msgstr "a"
msgid "Confirm Remove IP Adresses"
msgstr "Conferma Rimozione Indirizzi IP"
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
"Sei sicuro di voler cancellare tutti gli indirizzi IP registrati per "
"questo progetto?\n"
" La parte residua dello storico del progetto non subirà "
"modifiche. Questa azione non potrà essere annullata."
msgid "Close"
msgstr "Chiudi"
msgid "Confirm Delete"
msgstr "Conferma Cancellazione"
msgid "Delete Confirmation"
msgstr "Cancella Conferma"
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
"Sei sicuro di voler cancellare tutto la cronologia di questo progetto? "
"Questa azione non potrà essere annullata."
msgid "Added"
msgstr "Aggiunto"
msgid "Removed"
msgstr "Rimosso"
msgid "and"
msgstr "e"
msgid "owers list"
msgstr "Rimosso"
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
"\n"
" <i>Questo progetto ha la cronologia disattivata. Le nuove "
"azioni non appariranno qui sotto. È possibile abilitare la cronologia "
"sulla</i>\n"
" <a href=\"%(url)s\">pagina delle impostazioni</a>\n"
" "
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
"\n"
" <i>La tabella seguente riporta le azioni registrate prima "
"della disabilitazione della cronologia del progetto. È possibile\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">ripulire la cronologia del progetto</a> "
"per rimuoverle.</i></p>\n"
" "
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
"Alcune voci qui sotto contengono un indirizzo IP, nonostante in questo "
"progetto la registrazione degli IP è disabilitata. "
msgid "Delete stored IP addresses"
msgstr "Cancella indirizzi IP conservati"
msgid "No history to erase"
msgstr "Nessuno storico da cancellare"
msgid "Clear Project History"
msgstr "Cancella Cronologia Progetto"
msgid "No IP Addresses to erase"
msgstr "Nessun indirizzo IP da cancellare"
msgid "Delete Stored IP Addresses"
msgstr "Cancella Indirizzi IP Conservati"
msgid "Time"
msgstr "Ora"
msgid "Event"
msgstr "Evento"
msgid "IP address recording can be enabled on the settings page"
msgstr ""
"La registrazione degli indirizzi IP può essere attivata nella pagina "
"delle impostazioni"
msgid "IP address recording can be disabled on the settings page"
msgstr ""
"La registrazione degli indirizzi IP può essere disabilitata nella pagina "
"delle impostazioni"
msgid "From IP"
msgstr "Dall'IP"
msgid "added"
msgstr "aggiunto"
msgid "Project private code changed"
msgstr "Codice privato del progetto modificato"
msgid "Project renamed to"
msgstr "Progetto rinominato in"
msgid "Project contact email changed to"
msgstr "Contatto email del progetto modificato in"
msgid "Project settings modified"
msgstr "Impostazione del progetto modificate"
msgid "deactivated"
msgstr "disattivato"
msgid "reactivated"
msgstr "riattivato"
msgid "renamed to"
msgstr "rinominato in"
msgid "External link changed to"
msgstr "Link esterno cambiato in"
msgid "Amount"
msgstr "Importo"
#, python-format
msgid "Amount in %(currency)s"
msgstr "Importo in %(currency)s"
msgid "modified"
msgstr "modificato"
msgid "removed"
msgstr "rimosso"
msgid "changed in a unknown way"
msgstr "modificato in modo sconosciuto"
msgid "Nothing to list"
msgstr "Niente da elencare"
msgid "Someone probably cleared the project history."
msgstr "Probabilmente qualcuno ha svuotato lo storico del progetto."
msgid "Manage your shared <br />expenses, easily"
msgstr "Gestisci le tue spese<br />condivise, facilmente"
msgid "Try out the demo"
msgstr "Prova la demo"
msgid "You're sharing a house?"
msgstr "Stai condividendo un'abitazione?"
msgid "Going on holidays with friends?"
msgstr "Stai andando in vacanza con gli amici?"
msgid "Simply sharing money with others?"
msgstr "Condividi spese con altre persone?"
msgid "We can help!"
msgstr "Possiamo aiutare!"
msgid "Log in to an existing project"
msgstr "Accedi a un progetto esistente"
msgid "Log in"
msgstr "Accedi"
msgid "can't remember your password?"
msgstr "non ricordi la password?"
msgid "Create"
msgstr "Crea"
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
"Non riutilizzare una password personale. Scegli un codice privato e invialo "
"ai tuoi amici"
msgid "Account manager"
msgstr "Gestione account"
msgid "Bills"
msgstr "Spese"
msgid "Settle"
msgstr "Liquidazioni"
msgid "Statistics"
msgstr "Statistiche"
msgid "History"
msgstr "Cronologia"
msgid "Settings"
msgstr "Impostazioni"
msgid "Languages"
msgstr "Lingue"
msgid "Projects"
msgstr "Progetti"
msgid "Start a new project"
msgstr "Avvia un nuovo progetto"
msgid "Other projects :"
msgstr "Altri progetti:"
msgid "switch to"
msgstr "passa a"
msgid "Dashboard"
msgstr "Cruscotto"
msgid "Logout"
msgstr "Esci"
msgid "Code"
msgstr "Codice"
msgid "Mobile Application"
msgstr "Applicazione mobile"
msgid "Documentation"
msgstr "Documentazione"
msgid "Administation Dashboard"
msgstr "Cruscotto Amministrazione"
msgid "\"I hate money\" is a free software"
msgstr "\"I hate money\" è un software libero"
msgid "you can contribute and improve it!"
msgstr "puoi contribuire a migliorarlo!"
#, python-format
msgid "%(amount)s each"
msgstr "%(amount)s ciascuno"
msgid "Invite people"
msgstr "Invita persone"
msgid "You should start by adding participants"
msgstr "Dovresti cominciare aggiungendo partecipanti"
msgid "Add a new bill"
msgstr "Aggiungi una nuova spesa"
msgid "Newer bills"
msgstr "Addebiti recenti"
msgid "Older bills"
msgstr "Prime spese"
msgid "When?"
msgstr "Quando?"
msgid "Who paid?"
msgstr "Chi ha pagato?"
msgid "For what?"
msgstr "Per cosa?"
msgid "How much?"
msgstr "Quanto?"
#, python-format
msgid "Added on %(date)s"
msgstr "Aggiunto il %(date)s"
msgid "Everyone"
msgstr "Tutti"
#, python-format
msgid "Everyone but %(excluded)s"
msgstr "Tutti tranne %(excluded)s"
msgid "No bills"
msgstr "Nessun addebito"
msgid "Nothing to list yet."
msgstr "Ancora niente da mostrare."
msgid "You probably want to"
msgstr "Probabilmente vuoi"
msgid "add a bill"
msgstr "aggiungi una spesa"
msgid "add participants"
msgstr "aggiunti partecipanti"
msgid "Password reminder"
msgstr "Promemoria password"
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
"Un link per il reset della tua password ti è stato inviato, controlla le "
"tue email."
msgid "Return to home page"
msgstr "Ritorna alla home page"
msgid "Your projects"
msgstr "I tuoi progetti"
msgid "Reset your password"
msgstr "Reset della tua password"
msgid "Invite people to join this project"
msgstr "Invita persone a collaborare a questo progetto"
msgid "Share Identifier & code"
msgstr "Condividi Identificatore & codice"
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
"È possibile condividere l'identificativo del progetto e il codice privato"
" con qualsiasi mezzo di comunicazione."
msgid "Identifier:"
msgstr "Identificatore:"
msgid "Share the Link"
msgstr "Condividi il Link"
msgid "You can directly share the following link via your prefered medium"
msgstr ""
"Puoi condividere direttamente il seguente link attraverso il tuo canale "
"preferito"
msgid "Send via Emails"
msgstr "Inviare via Email"
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
"Specifica un elenco di indirizzi email (separati da virgola) a cui vuoi "
"notificare la\n"
" creazione di questo progetto di gestione budget e "
"manderemo a ciascuno di loro un messaggio per te."
msgid "Who pays?"
msgstr "Chi paga?"
msgid "To whom?"
msgstr "A chi?"
msgid "Who?"
msgstr "Chi?"
msgid "Balance"
msgstr "Bilancio"
msgid "deactivate"
msgstr "disattiva"
msgid "reactivate"
msgstr "riattiva"
msgid "Paid"
msgstr "Pagato"
msgid "Spent"
msgstr "Speso"
msgid "Expenses by Month"
msgstr "Spese del mese"
msgid "Period"
msgstr "Periodo"
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr ""
#~ msgid "each"
#~ msgstr ""
#~ msgid "Error while sending reminder email"
#~ msgstr "Errore durante l'invio dell'email di promemoria"
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Questo codice di accesso sarà inviato"
#~ " ai tuoi amici. È conservato in "
#~ "chiaro sul server, quindi non "
#~ "riutilizzarlo come password personale!"

Binary file not shown.

View file

@ -0,0 +1,769 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-22 06:40+0200\n"
"PO-Revision-Date: 2020-11-04 17:27+0000\n"
"Last-Translator: Jwen921 <yangjingwen0921@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.3.2-dev\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr "無効な入力です。数字と「+ - * / 」の演算子しか入力できません。"
msgid "Project name"
msgstr "プロジェクトの名前"
msgid "Private code"
msgstr "暗証コード"
msgid "Email"
msgstr "メールアドレス"
msgid "Enable project history"
msgstr "プロジェクトの歴史を有効にする"
msgid "Use IP tracking for project history"
msgstr "IPでプロジェクトの歴史を追跡する"
msgid "Default Currency"
msgstr "初期設定にする通貨"
msgid "Import previously exported JSON file"
msgstr "以前のJSONファイルをインポートする"
msgid "Import"
msgstr "インポート"
msgid "Project identifier"
msgstr "プロジェクトの名前"
msgid "Create the project"
msgstr "プロジェクトを新規作成する"
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr "(\"%(project)s\")というプロジェクトは既に存在します。別の名前にしてください"
msgid "Get in"
msgstr "入る"
msgid "Admin password"
msgstr "管理者パスワード"
msgid "Send me the code by email"
msgstr "メールでコードを送る"
msgid "This project does not exists"
msgstr "プロジェクトは存在していない"
msgid "Password mismatch"
msgstr "パスワードが正しくありません"
msgid "Password"
msgstr "パスワード"
msgid "Password confirmation"
msgstr "パスワードの確認"
msgid "Reset password"
msgstr "パスワードの再設定"
msgid "Date"
msgstr "日付"
msgid "What?"
msgstr "何ですか?"
msgid "Payer"
msgstr "支払人"
msgid "Amount paid"
msgstr "支払額"
msgid "Currency"
msgstr "通貨"
msgid "External link"
msgstr "外部リンク"
msgid "A link to an external document, related to this bill"
msgstr "この明細に関する外部ファイルのリンク"
msgid "For whom?"
msgstr "誰のためですか?"
msgid "Submit"
msgstr "確認"
msgid "Submit and add a new one"
msgstr "確認して、新しいのを作成します"
#, python-format
msgid "Project default: %(currency)s"
msgstr "初期プロジェクト: %(currency)s"
msgid "Bills can't be null"
msgstr "数値を空値にしてはいけません"
msgid "Name"
msgstr "名前"
msgid "Weights should be positive"
msgstr "重みは正でなければなりません"
msgid "Weight"
msgstr "重み"
msgid "Add"
msgstr "追加"
msgid "User name incorrect"
msgstr ""
msgid "This project already have this member"
msgstr ""
msgid "People to notify"
msgstr ""
msgid "Send invites"
msgstr ""
#, python-format
msgid "The email %(email)s is not valid"
msgstr ""
msgid "Participant"
msgstr ""
msgid "Bill"
msgstr ""
msgid "Project"
msgstr ""
msgid "No Currency"
msgstr ""
msgid "Too many failed login attempts, please retry later."
msgstr ""
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr ""
msgid "You either provided a bad token or no project identifier."
msgstr ""
msgid "This private code is not the right one"
msgstr ""
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr ""
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format
msgid "The project identifier is %(project)s"
msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
msgid "No token provided"
msgstr ""
msgid "Invalid token"
msgstr ""
msgid "Unknown project"
msgstr ""
msgid "Password successfully reset."
msgstr ""
msgid "Project successfully uploaded"
msgstr ""
msgid "Invalid JSON"
msgstr ""
msgid "Project successfully deleted"
msgstr ""
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr ""
msgid "Your invitations have been sent"
msgstr ""
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format
msgid "%(member)s has been added"
msgstr ""
#, python-format
msgid "%(name)s is part of this project again"
msgstr ""
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
#, python-format
msgid "User '%(name)s' has been removed"
msgstr ""
#, python-format
msgid "User '%(name)s' has been edited"
msgstr ""
msgid "The bill has been added"
msgstr ""
msgid "The bill has been deleted"
msgstr ""
msgid "The bill has been modified"
msgstr ""
msgid "Sorry, we were unable to find the page you've asked for."
msgstr ""
msgid "The best thing to do is probably to get back to the main page."
msgstr ""
msgid "Back to the list"
msgstr ""
msgid "Administration tasks are currently disabled."
msgstr ""
msgid "The project you are trying to access do not exist, do you want to"
msgstr ""
msgid "create it"
msgstr ""
msgid "?"
msgstr ""
msgid "Create a new project"
msgstr ""
msgid "Number of members"
msgstr ""
msgid "Number of bills"
msgstr ""
msgid "Newest bill"
msgstr ""
msgid "Oldest bill"
msgstr ""
msgid "Actions"
msgstr ""
msgid "edit"
msgstr ""
msgid "delete"
msgstr ""
msgid "show"
msgstr ""
msgid "The Dashboard is currently deactivated."
msgstr ""
msgid "you sure?"
msgstr ""
msgid "Edit project"
msgstr ""
msgid "Import JSON"
msgstr ""
msgid "Choose file"
msgstr ""
msgid "Download project's data"
msgstr ""
msgid "Bill items"
msgstr ""
msgid "Download the list of bills with owner, amount, reason,... "
msgstr ""
msgid "Settle plans"
msgstr ""
msgid "Download the list of transactions needed to settle the current bills."
msgstr ""
msgid "Can't remember the password?"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Privacy Settings"
msgstr ""
msgid "Edit the project"
msgstr ""
msgid "Edit this bill"
msgstr ""
msgid "Add a bill"
msgstr ""
msgid "Select all"
msgstr ""
msgid "Select none"
msgstr ""
msgid "Add participant"
msgstr ""
msgid "Edit this member"
msgstr ""
msgid "john.doe@example.com, mary.moe@site.com"
msgstr ""
msgid "Send the invitations"
msgstr ""
msgid "Download"
msgstr ""
msgid "Disabled Project History"
msgstr ""
msgid "Disabled Project History & IP Address Recording"
msgstr ""
msgid "Enabled Project History"
msgstr ""
msgid "Disabled IP Address Recording"
msgstr ""
msgid "Enabled Project History & IP Address Recording"
msgstr ""
msgid "Enabled IP Address Recording"
msgstr ""
msgid "History Settings Changed"
msgstr ""
msgid "changed"
msgstr ""
msgid "from"
msgstr ""
msgid "to"
msgstr ""
msgid "Confirm Remove IP Adresses"
msgstr ""
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
msgid "Close"
msgstr ""
msgid "Confirm Delete"
msgstr ""
msgid "Delete Confirmation"
msgstr ""
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
msgid "Added"
msgstr ""
msgid "Removed"
msgstr ""
msgid "and"
msgstr ""
msgid "owers list"
msgstr ""
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
msgid "Delete stored IP addresses"
msgstr ""
msgid "No history to erase"
msgstr ""
msgid "Clear Project History"
msgstr ""
msgid "No IP Addresses to erase"
msgstr ""
msgid "Delete Stored IP Addresses"
msgstr ""
msgid "Time"
msgstr ""
msgid "Event"
msgstr ""
msgid "IP address recording can be enabled on the settings page"
msgstr ""
msgid "IP address recording can be disabled on the settings page"
msgstr ""
msgid "From IP"
msgstr ""
msgid "added"
msgstr ""
msgid "Project private code changed"
msgstr ""
msgid "Project renamed to"
msgstr ""
msgid "Project contact email changed to"
msgstr ""
msgid "Project settings modified"
msgstr ""
msgid "deactivated"
msgstr ""
msgid "reactivated"
msgstr ""
msgid "renamed to"
msgstr ""
msgid "External link changed to"
msgstr ""
msgid "Amount"
msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified"
msgstr ""
msgid "removed"
msgstr ""
msgid "changed in a unknown way"
msgstr ""
msgid "Nothing to list"
msgstr ""
msgid "Someone probably cleared the project history."
msgstr ""
msgid "Manage your shared <br />expenses, easily"
msgstr ""
msgid "Try out the demo"
msgstr ""
msgid "You're sharing a house?"
msgstr ""
msgid "Going on holidays with friends?"
msgstr ""
msgid "Simply sharing money with others?"
msgstr ""
msgid "We can help!"
msgstr ""
msgid "Log in to an existing project"
msgstr ""
msgid "Log in"
msgstr ""
msgid "can't remember your password?"
msgstr ""
msgid "Create"
msgstr ""
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
msgid "Account manager"
msgstr ""
msgid "Bills"
msgstr ""
msgid "Settle"
msgstr ""
msgid "Statistics"
msgstr ""
msgid "History"
msgstr ""
msgid "Settings"
msgstr ""
msgid "Languages"
msgstr ""
msgid "Projects"
msgstr ""
msgid "Start a new project"
msgstr ""
msgid "Other projects :"
msgstr ""
msgid "switch to"
msgstr ""
msgid "Dashboard"
msgstr ""
msgid "Logout"
msgstr ""
msgid "Code"
msgstr ""
msgid "Mobile Application"
msgstr ""
msgid "Documentation"
msgstr ""
msgid "Administation Dashboard"
msgstr ""
msgid "\"I hate money\" is a free software"
msgstr ""
msgid "you can contribute and improve it!"
msgstr ""
#, python-format
msgid "%(amount)s each"
msgstr ""
msgid "Invite people"
msgstr ""
msgid "You should start by adding participants"
msgstr ""
msgid "Add a new bill"
msgstr ""
msgid "Newer bills"
msgstr ""
msgid "Older bills"
msgstr ""
msgid "When?"
msgstr ""
msgid "Who paid?"
msgstr ""
msgid "For what?"
msgstr ""
msgid "How much?"
msgstr ""
#, python-format
msgid "Added on %(date)s"
msgstr ""
msgid "Everyone"
msgstr ""
#, python-format
msgid "Everyone but %(excluded)s"
msgstr ""
msgid "No bills"
msgstr ""
msgid "Nothing to list yet."
msgstr ""
msgid "You probably want to"
msgstr ""
msgid "add a bill"
msgstr ""
msgid "add participants"
msgstr ""
msgid "Password reminder"
msgstr ""
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
msgid "Return to home page"
msgstr ""
msgid "Your projects"
msgstr ""
msgid "Reset your password"
msgstr ""
msgid "Invite people to join this project"
msgstr ""
msgid "Share Identifier & code"
msgstr ""
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
msgid "Identifier:"
msgstr ""
msgid "Share the Link"
msgstr ""
msgid "You can directly share the following link via your prefered medium"
msgstr ""
msgid "Send via Emails"
msgstr ""
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
msgid "Who pays?"
msgstr ""
msgid "To whom?"
msgstr ""
msgid "Who?"
msgstr ""
msgid "Balance"
msgstr ""
msgid "deactivate"
msgstr ""
msgid "reactivate"
msgstr ""
msgid "Paid"
msgstr ""
msgid "Spent"
msgstr ""
msgid "Expenses by Month"
msgstr ""
msgid "Period"
msgstr ""

View file

@ -1,18 +1,18 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: 2019-11-12 09:04+0000\n" "PO-Revision-Date: 2020-06-18 10:41+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
"i-hate-money/i-hate-money/nb_NO/>\n"
"Language: nb_NO\n" "Language: nb_NO\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/i"
"-hate-money/i-hate-money/nb_NO/>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.1.1-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
msgid "" msgid ""
@ -32,16 +32,19 @@ msgid "Email"
msgstr "E-post" msgstr "E-post"
msgid "Enable project history" msgid "Enable project history"
msgstr "" msgstr "Skru på prosjekthistorikk"
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr "Bruk IP-sporing for prosjekthistorikk"
msgid "Default Currency"
msgstr "Forvalgt valuta"
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr "Importer tidligere eksportert JSON-fil"
msgid "Import" msgid "Import"
msgstr "" msgstr "Importer"
msgid "Project identifier" msgid "Project identifier"
msgstr "Prosjektidentifikator" msgstr "Prosjektidentifikator"
@ -94,6 +97,9 @@ msgstr "Betaler"
msgid "Amount paid" msgid "Amount paid"
msgstr "Beløp betalt" msgstr "Beløp betalt"
msgid "Currency"
msgstr "Valuta"
msgid "External link" msgid "External link"
msgstr "Ekstern lenke" msgstr "Ekstern lenke"
@ -109,6 +115,10 @@ msgstr "Send inn"
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "Send inn og legg til ny" msgstr "Send inn og legg til ny"
#, python-format
msgid "Project default: %(currency)s"
msgstr "Prosjektforvalg: %(currency)s"
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "Regninger kan ikke være null" msgstr "Regninger kan ikke være null"
@ -142,14 +152,17 @@ msgid "The email %(email)s is not valid"
msgstr "E-posten \"%(email)s\" er ikke gyldig" msgstr "E-posten \"%(email)s\" er ikke gyldig"
msgid "Participant" msgid "Participant"
msgstr "" msgstr "Deltager"
msgid "Bill" msgid "Bill"
msgstr "" msgstr "Regning"
msgid "Project" msgid "Project"
msgstr "Prosjekt" msgstr "Prosjekt"
msgid "No Currency"
msgstr "Ingen valuta"
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "For mange mislykkede innloggingsforsøk, prøv igjen senere." msgstr "For mange mislykkede innloggingsforsøk, prøv igjen senere."
@ -169,9 +182,23 @@ msgstr "Denne private koden er ikke rett"
msgid "You have just created '%(project)s' to share your expenses" msgid "You have just created '%(project)s' to share your expenses"
msgstr "Du har akkurat opprettet \"%(project)s\" for å dele dine utgifter" msgstr "Du har akkurat opprettet \"%(project)s\" for å dele dine utgifter"
#, fuzzy, python-format msgid "A reminder email has just been sent to you"
msgid "%(msg_compl)sThe project identifier is %(project)s" msgstr "En påminnelse har blitt sendt til deg per e-post"
msgstr "%(msg_compl)sProsjektidentifikatoren er %(project)s"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format
msgid "The project identifier is %(project)s"
msgstr "Prosjektidentifikatoren er %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
msgid "No token provided" msgid "No token provided"
msgstr "Inget symbol angitt" msgstr "Inget symbol angitt"
@ -190,7 +217,7 @@ msgid "Project successfully uploaded"
msgstr "" msgstr ""
msgid "Invalid JSON" msgid "Invalid JSON"
msgstr "" msgstr "Ugyldig JSON"
#, fuzzy #, fuzzy
msgid "Project successfully deleted" msgid "Project successfully deleted"
@ -205,6 +232,12 @@ msgstr ""
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "Invitasjonene dine har blitt sendt" msgstr "Invitasjonene dine har blitt sendt"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr ""
@ -285,9 +318,8 @@ msgstr "rediger"
msgid "delete" msgid "delete"
msgstr "slett" msgstr "slett"
#, fuzzy msgid "show"
msgid "see" msgstr ""
msgstr "se"
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
msgstr "Oversikten er for tiden avskrudd." msgstr "Oversikten er for tiden avskrudd."
@ -299,10 +331,10 @@ msgid "Edit project"
msgstr "Rediger prosjekt" msgstr "Rediger prosjekt"
msgid "Import JSON" msgid "Import JSON"
msgstr "" msgstr "Importer JSON"
msgid "Choose file" msgid "Choose file"
msgstr "" msgstr "Velg fil"
msgid "Download project's data" msgid "Download project's data"
msgstr "Last ned prosjektets data" msgstr "Last ned prosjektets data"
@ -329,7 +361,7 @@ msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "" msgstr "Personvernsinnstillinger"
msgid "Edit the project" msgid "Edit the project"
msgstr "Rediger prosjektet" msgstr "Rediger prosjektet"
@ -384,13 +416,13 @@ msgid "History Settings Changed"
msgstr "" msgstr ""
msgid "changed" msgid "changed"
msgstr "" msgstr "endret"
msgid "from" msgid "from"
msgstr "" msgstr "fra"
msgid "to" msgid "to"
msgstr "" msgstr "til"
msgid "Confirm Remove IP Adresses" msgid "Confirm Remove IP Adresses"
msgstr "" msgstr ""
@ -403,7 +435,7 @@ msgid ""
msgstr "" msgstr ""
msgid "Close" msgid "Close"
msgstr "" msgstr "Lukk"
msgid "Confirm Delete" msgid "Confirm Delete"
msgstr "" msgstr ""
@ -426,14 +458,7 @@ msgid "and"
msgstr "" msgstr ""
msgid "owers list" msgid "owers list"
msgstr "" msgstr "eierliste"
msgid "Who?"
msgstr "Hvem?"
#, fuzzy
msgid "Balance"
msgstr "Kontobalanse"
#, python-format #, python-format
msgid "" msgid ""
@ -460,13 +485,13 @@ msgid ""
msgstr "" msgstr ""
msgid "Delete stored IP addresses" msgid "Delete stored IP addresses"
msgstr "" msgstr "Slett lagrede IP-adresser"
msgid "No history to erase" msgid "No history to erase"
msgstr "" msgstr "Ingen historikk å slette"
msgid "Clear Project History" msgid "Clear Project History"
msgstr "" msgstr "Tøm prosjekthistorikk"
msgid "No IP Addresses to erase" msgid "No IP Addresses to erase"
msgstr "" msgstr ""
@ -475,10 +500,10 @@ msgid "Delete Stored IP Addresses"
msgstr "" msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr "Tid"
msgid "Event" msgid "Event"
msgstr "" msgstr "Hendelse"
msgid "IP address recording can be enabled on the settings page" msgid "IP address recording can be enabled on the settings page"
msgstr "" msgstr ""
@ -487,7 +512,7 @@ msgid "IP address recording can be disabled on the settings page"
msgstr "" msgstr ""
msgid "From IP" msgid "From IP"
msgstr "" msgstr "Fra IP"
msgid "added" msgid "added"
msgstr "" msgstr ""
@ -496,13 +521,13 @@ msgid "Project private code changed"
msgstr "" msgstr ""
msgid "Project renamed to" msgid "Project renamed to"
msgstr "" msgstr "Prosjektnavn endret til"
msgid "Project contact email changed to" msgid "Project contact email changed to"
msgstr "" msgstr ""
msgid "Project settings modified" msgid "Project settings modified"
msgstr "" msgstr "Prosjektinnstillinger endret"
msgid "deactivated" msgid "deactivated"
msgstr "" msgstr ""
@ -517,7 +542,11 @@ msgid "External link changed to"
msgstr "" msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" msgstr "Beløp"
#, python-format
msgid "Amount in %(currency)s"
msgstr "Beløp i %(currency)s"
msgid "modified" msgid "modified"
msgstr "" msgstr ""
@ -565,13 +594,10 @@ msgstr "glemt passordet ditt?"
msgid "Create" msgid "Create"
msgstr "Opprett" msgstr "Opprett"
#, fuzzy
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
"Denne tilgangskoden vil bli sendt til venne dine. Den lagres som den er "
"på tjeneren, så ikke gjenbruk et personlig passord."
msgid "Account manager" msgid "Account manager"
msgstr "Kontobehandler" msgstr "Kontobehandler"
@ -586,7 +612,7 @@ msgid "Statistics"
msgstr "Statistikk" msgstr "Statistikk"
msgid "History" msgid "History"
msgstr "" msgstr "Historikk"
msgid "Settings" msgid "Settings"
msgstr "Innstillinger" msgstr "Innstillinger"
@ -633,11 +659,9 @@ msgstr "\"Jeg hater penger\" er fri programvare"
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "du kan bidra og forbedre den." msgstr "du kan bidra og forbedre den."
msgid "deactivate" #, python-format
msgstr "skru av" msgid "%(amount)s each"
msgstr "%(amount)s hver"
msgid "reactivate"
msgstr "skru på igjen"
msgid "Invite people" msgid "Invite people"
msgstr "Inviter folk" msgstr "Inviter folk"
@ -677,9 +701,6 @@ msgstr "Alle"
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "Alle, unntagen %(excluded)s" msgstr "Alle, unntagen %(excluded)s"
msgid "each"
msgstr "hver"
msgid "No bills" msgid "No bills"
msgstr "Ingen regninger" msgstr "Ingen regninger"
@ -760,6 +781,19 @@ msgstr "Hvem betaler?"
msgid "To whom?" msgid "To whom?"
msgstr "Til hvem?" msgstr "Til hvem?"
msgid "Who?"
msgstr "Hvem?"
#, fuzzy
msgid "Balance"
msgstr "Kontobalanse"
msgid "deactivate"
msgstr "skru av"
msgid "reactivate"
msgstr "skru på igjen"
msgid "Paid" msgid "Paid"
msgstr "Betalt" msgstr "Betalt"
@ -888,3 +922,23 @@ msgstr ""
#~ msgid "%(member)s had been added" #~ msgid "%(member)s had been added"
#~ msgstr "%(member)s lagt til" #~ msgstr "%(member)s lagt til"
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr "%(msg_compl)sProsjektidentifikatoren er %(project)s"
#~ msgid "each"
#~ msgstr "hver"
#~ msgid "Error while sending reminder email"
#~ msgstr ""
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Denne tilgangskoden vil bli sendt til"
#~ " venne dine. Den lagres som den "
#~ "er på tjeneren, så ikke gjenbruk "
#~ "et personlig passord."

View file

@ -1,18 +1,18 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2020-04-25 13:02+0200\n" "POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: 2019-10-07 22:56+0000\n" "PO-Revision-Date: 2020-09-06 15:36+0000\n"
"Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n" "Last-Translator: Sander Kooijmans <weblate@gogognome.nl>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/nl/>\n"
"Language: nl\n" "Language: nl\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/i-hate-money/i"
"-hate-money/nl/>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
msgid "" msgid ""
@ -30,16 +30,19 @@ msgid "Email"
msgstr "E-mailadres" msgstr "E-mailadres"
msgid "Enable project history" msgid "Enable project history"
msgstr "" msgstr "Projectgeschiedenis inschakelen"
msgid "Use IP tracking for project history" msgid "Use IP tracking for project history"
msgstr "" msgstr "IP-tracking voor projectgeschiedenis gebruiken"
msgid "Default Currency"
msgstr "Standaard munteenheid"
msgid "Import previously exported JSON file" msgid "Import previously exported JSON file"
msgstr "" msgstr "Eerder geëxporteerd JSON-bestand importeren"
msgid "Import" msgid "Import"
msgstr "" msgstr "Importeren"
msgid "Project identifier" msgid "Project identifier"
msgstr "Project-id" msgstr "Project-id"
@ -89,6 +92,9 @@ msgstr "Betaler"
msgid "Amount paid" msgid "Amount paid"
msgstr "Betaald bedrag" msgstr "Betaald bedrag"
msgid "Currency"
msgstr "Munteenheid"
msgid "External link" msgid "External link"
msgstr "Externe link" msgstr "Externe link"
@ -104,6 +110,10 @@ msgstr "Versturen"
msgid "Submit and add a new one" msgid "Submit and add a new one"
msgstr "Versturen en nieuwe toevoegen" msgstr "Versturen en nieuwe toevoegen"
#, python-format
msgid "Project default: %(currency)s"
msgstr ""
msgid "Bills can't be null" msgid "Bills can't be null"
msgstr "Rekeningen mogen niet null zijn" msgstr "Rekeningen mogen niet null zijn"
@ -136,14 +146,17 @@ msgid "The email %(email)s is not valid"
msgstr "Het e-mailadres '%(email)s' is onjuist" msgstr "Het e-mailadres '%(email)s' is onjuist"
msgid "Participant" msgid "Participant"
msgstr "" msgstr "Deelnemer"
msgid "Bill" msgid "Bill"
msgstr "" msgstr "Rekening"
msgid "Project" msgid "Project"
msgstr "Project" msgstr "Project"
msgid "No Currency"
msgstr "Geen munteenheid"
msgid "Too many failed login attempts, please retry later." msgid "Too many failed login attempts, please retry later."
msgstr "Te vaak onjuist ingelogd. Probeer het later opnieuw." msgstr "Te vaak onjuist ingelogd. Probeer het later opnieuw."
@ -163,9 +176,23 @@ msgstr ""
"Je hebt zojuist het project '%(project)s' aangemaakt om je uitgaven te " "Je hebt zojuist het project '%(project)s' aangemaakt om je uitgaven te "
"verdelen" "verdelen"
msgid "A reminder email has just been sent to you"
msgstr ""
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
#, python-format #, python-format
msgid "%(msg_compl)sThe project identifier is %(project)s" msgid "The project identifier is %(project)s"
msgstr "%(msg_compl)sDe project-id is %(project)s" msgstr ""
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
msgid "No token provided" msgid "No token provided"
msgstr "Geen toegangssleutel opgegeven" msgstr "Geen toegangssleutel opgegeven"
@ -183,7 +210,7 @@ msgid "Project successfully uploaded"
msgstr "" msgstr ""
msgid "Invalid JSON" msgid "Invalid JSON"
msgstr "" msgstr "Ongeldige JSON"
msgid "Project successfully deleted" msgid "Project successfully deleted"
msgstr "Project is verwijderd" msgstr "Project is verwijderd"
@ -195,9 +222,15 @@ msgstr "Je bent uitgenodigd om je uitgaven te delen met %(project)s"
msgid "Your invitations have been sent" msgid "Your invitations have been sent"
msgstr "Je uitnodigingen zijn verstuurd" msgstr "Je uitnodigingen zijn verstuurd"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
#, python-format #, python-format
msgid "%(member)s has been added" msgid "%(member)s has been added"
msgstr "" msgstr "%(member)s zijn toegevoegd"
#, python-format #, python-format
msgid "%(name)s is part of this project again" msgid "%(name)s is part of this project again"
@ -273,8 +306,8 @@ msgstr "bewerken"
msgid "delete" msgid "delete"
msgstr "verwijderen" msgstr "verwijderen"
msgid "see" msgid "show"
msgstr "bekijk" msgstr "tonen"
msgid "The Dashboard is currently deactivated." msgid "The Dashboard is currently deactivated."
msgstr "De overzichtspagina is momenteel uitgeschakeld." msgstr "De overzichtspagina is momenteel uitgeschakeld."
@ -286,10 +319,10 @@ msgid "Edit project"
msgstr "Project aanpassen" msgstr "Project aanpassen"
msgid "Import JSON" msgid "Import JSON"
msgstr "" msgstr "JSON importeren"
msgid "Choose file" msgid "Choose file"
msgstr "" msgstr "Bestand kiezen"
msgid "Download project's data" msgid "Download project's data"
msgstr "Projectgegevens downloaden" msgstr "Projectgegevens downloaden"
@ -369,13 +402,13 @@ msgid "History Settings Changed"
msgstr "" msgstr ""
msgid "changed" msgid "changed"
msgstr "" msgstr "gewijzigd"
msgid "from" msgid "from"
msgstr "" msgstr "van"
msgid "to" msgid "to"
msgstr "" msgstr "naar"
msgid "Confirm Remove IP Adresses" msgid "Confirm Remove IP Adresses"
msgstr "" msgstr ""
@ -388,7 +421,7 @@ msgid ""
msgstr "" msgstr ""
msgid "Close" msgid "Close"
msgstr "" msgstr "Sluiten"
msgid "Confirm Delete" msgid "Confirm Delete"
msgstr "" msgstr ""
@ -402,23 +435,17 @@ msgid ""
msgstr "" msgstr ""
msgid "Added" msgid "Added"
msgstr "" msgstr "Toegevoegd"
msgid "Removed" msgid "Removed"
msgstr "" msgstr "Verwijderd"
msgid "and" msgid "and"
msgstr "" msgstr "en"
msgid "owers list" msgid "owers list"
msgstr "" msgstr ""
msgid "Who?"
msgstr "Wie?"
msgid "Balance"
msgstr "Saldo"
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@ -503,6 +530,10 @@ msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" msgstr ""
#, python-format
msgid "Amount in %(currency)s"
msgstr ""
msgid "modified" msgid "modified"
msgstr "" msgstr ""
@ -549,11 +580,9 @@ msgid "Create"
msgstr "Maken" msgstr "Maken"
msgid "" msgid ""
"This access code will be sent to your friends. It is stored as-is by the " "Don\\'t reuse a personal password. Choose a private code and send it to "
"server, so don\\'t reuse a personal password!" "your friends"
msgstr "" msgstr ""
"Deze toegangscode wordt verstuurd aan je vrienden. Deze wordt in platte "
"tekst opgeslagen op de server, dus gebruik geen persoonlijk wachtwoord!"
msgid "Account manager" msgid "Account manager"
msgstr "Accountbeheer" msgstr "Accountbeheer"
@ -612,11 +641,9 @@ msgstr "\"I hate money\" is vrije software"
msgid "you can contribute and improve it!" msgid "you can contribute and improve it!"
msgstr "je kunt bijdragen en de code verbeteren!" msgstr "je kunt bijdragen en de code verbeteren!"
msgid "deactivate" #, python-format
msgstr "deactiveren" msgid "%(amount)s each"
msgstr ""
msgid "reactivate"
msgstr "heractiveren"
msgid "Invite people" msgid "Invite people"
msgstr "Anderen uitnodigen" msgstr "Anderen uitnodigen"
@ -656,9 +683,6 @@ msgstr "Iedereen"
msgid "Everyone but %(excluded)s" msgid "Everyone but %(excluded)s"
msgstr "Iedereen, behalve %(excluded)s" msgstr "Iedereen, behalve %(excluded)s"
msgid "each"
msgstr "per persoon"
msgid "No bills" msgid "No bills"
msgstr "Geen rekeningen" msgstr "Geen rekeningen"
@ -735,6 +759,18 @@ msgstr "Wie betaalt?"
msgid "To whom?" msgid "To whom?"
msgstr "Aan wie?" msgstr "Aan wie?"
msgid "Who?"
msgstr "Wie?"
msgid "Balance"
msgstr "Saldo"
msgid "deactivate"
msgstr "deactiveren"
msgid "reactivate"
msgstr "heractiveren"
msgid "Paid" msgid "Paid"
msgstr "Betaald" msgstr "Betaald"
@ -746,3 +782,23 @@ msgstr ""
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr "%(msg_compl)sDe project-id is %(project)s"
#~ msgid "each"
#~ msgstr "per persoon"
#~ msgid "Error while sending reminder email"
#~ msgstr ""
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Deze toegangscode wordt verstuurd aan je"
#~ " vrienden. Deze wordt in platte tekst"
#~ " opgeslagen op de server, dus gebruik"
#~ " geen persoonlijk wachtwoord!"

Binary file not shown.

View file

@ -0,0 +1,839 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-30 21:50+0200\n"
"PO-Revision-Date: 2020-06-03 15:41+0000\n"
"Last-Translator: Szylu <chipolade@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/pl/>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.1-dev\n"
"Generated-By: Babel 2.8.0\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr ""
"Niepoprawna kwota lub wyrażenie. Akceptowane są tylko liczby i operatory "
"+ - * /."
msgid "Project name"
msgstr "Nazwa projektu"
msgid "Private code"
msgstr "Kod prywatny"
msgid "Email"
msgstr "E-mail"
msgid "Enable project history"
msgstr "Włącz historię projektu"
msgid "Use IP tracking for project history"
msgstr "Użyj śledzenia IP do historii projektu"
msgid "Default Currency"
msgstr "Domyślna waluta"
msgid "Import previously exported JSON file"
msgstr "Zaimportuj wcześniej wyeksportowany plik JSON"
msgid "Import"
msgstr "Importuj"
msgid "Project identifier"
msgstr "Identyfikator projektu"
msgid "Create the project"
msgstr "Stwórz projekt"
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr ""
"Projekt o tym identyfikatorze („%(project)s”) już istnieje. Wybierz nowy "
"identyfikator"
msgid "Get in"
msgstr "Wejdź"
msgid "Admin password"
msgstr "Hasło administratora"
msgid "Send me the code by email"
msgstr "Wyślij mi kod emailem"
msgid "This project does not exists"
msgstr "Ten projekt nie istnieje"
msgid "Password mismatch"
msgstr "Hasło się różni"
msgid "Password"
msgstr "Hasło"
msgid "Password confirmation"
msgstr "Potwierdzenie hasła"
msgid "Reset password"
msgstr "Zresetuj hasło"
msgid "Date"
msgstr "Data"
msgid "What?"
msgstr "Co?"
msgid "Payer"
msgstr "Płatnik"
msgid "Amount paid"
msgstr "Opłata zapłacona"
msgid "Currency"
msgstr "Waluta"
msgid "External link"
msgstr "Link zewnętrzny"
msgid "A link to an external document, related to this bill"
msgstr "Link do zewnętrznego dokumentu związanego z tym rachunkiem"
msgid "For whom?"
msgstr "Dla kogo?"
msgid "Submit"
msgstr "Zatwierdź"
msgid "Submit and add a new one"
msgstr "Zatwierdź i dodaj nowy"
#, python-format
msgid "Project default: %(currency)s"
msgstr "Wartość domyślna projektu: %(currency)s"
msgid "Bills can't be null"
msgstr "Rachunki nie mogą być zerowe"
msgid "Name"
msgstr "Nazwa"
msgid "Weights should be positive"
msgstr "Wagi powinny być dodatnie"
msgid "Weight"
msgstr "Waga"
msgid "Add"
msgstr "Dodaj"
msgid "User name incorrect"
msgstr "Nazwa użytkownika jest niepoprawna"
msgid "This project already have this member"
msgstr "Ten projekt ma już tego członka"
msgid "People to notify"
msgstr "Osoby do powiadomienia"
msgid "Send invites"
msgstr "Wyślij zaproszenia"
#, python-format
msgid "The email %(email)s is not valid"
msgstr "Ten email %(email)s jest nieprawidłowy"
msgid "Participant"
msgstr "Uczestnik"
msgid "Bill"
msgstr "Rachunek"
msgid "Project"
msgstr "Projekt"
msgid "No Currency"
msgstr "Brak walut"
msgid "Too many failed login attempts, please retry later."
msgstr "Zbyt wiele nieudanych prób logowania, spróbuj ponownie później."
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr "To hasło administratora jest nieprawidłowe. Pozostało tylko %(num)d prób."
msgid "You either provided a bad token or no project identifier."
msgstr "Podałeś zły token lub brak identyfikatora projektu."
msgid "This private code is not the right one"
msgstr "Ten prywatny kod jest niewłaściwy"
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr "Właśnie utworzyłeś „%(project)s”, aby podzielić się wydatkami"
msgid "A reminder email has just been sent to you"
msgstr "Wiadomość e-mail z przypomnieniem została właśnie wysłana"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"Próbowaliśmy wysłać Ci wiadomość e-mail z przypomnieniem, ale wystąpił błąd. "
"Nadal możesz normalnie korzystać z projektu."
#, python-format
msgid "The project identifier is %(project)s"
msgstr "Identyfikator projektu to %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"Przepraszamy, wystąpił błąd podczas wysyłania wiadomości e-mail z "
"instrukcjami resetowania hasła. Sprawdź konfigurację e-mail serwera lub "
"skontaktuj się z administratorem."
msgid "No token provided"
msgstr "Nie podano tokena"
msgid "Invalid token"
msgstr "Nieprawidłowy token"
msgid "Unknown project"
msgstr "Nieznany projekt"
msgid "Password successfully reset."
msgstr "Hasło zostało pomyślnie zresetowane."
msgid "Project successfully uploaded"
msgstr "Projekt został pomyślnie przesłany"
msgid "Invalid JSON"
msgstr "Niepoprawny JSON"
msgid "Project successfully deleted"
msgstr "Projekt został pomyślnie usunięty"
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr "Zostałeś zaproszony do podzielenia się swoimi wydatkami w %(project)s"
msgid "Your invitations have been sent"
msgstr "Twoje zaproszenia zostały wysłane"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"Przepraszamy, wystąpił błąd podczas próby wysłania wiadomości e-mail z "
"zaproszeniem. Sprawdź konfigurację e-mail serwera lub skontaktuj się z "
"administratorem."
#, python-format
msgid "%(member)s has been added"
msgstr "%(member)s został dodany"
#, python-format
msgid "%(name)s is part of this project again"
msgstr "%(name)s jest ponownie częścią tego projektu"
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
"Użytkownik „%(name)s” został dezaktywowany. Będzie nadal pojawiać się na "
"liście użytkowników, dopóki jego saldo nie wyniesie zero."
#, python-format
msgid "User '%(name)s' has been removed"
msgstr "Użytkownik „%(name)s” został usunięty"
#, python-format
msgid "User '%(name)s' has been edited"
msgstr "Użytkownik „%(name)s” został edytowany"
msgid "The bill has been added"
msgstr "Rachunek został dodany"
msgid "The bill has been deleted"
msgstr "Rachunek został usunięty"
msgid "The bill has been modified"
msgstr "Rachunek został zmieniony"
msgid "Sorry, we were unable to find the page you've asked for."
msgstr "Niestety nie udało nam się znaleźć strony, o którą prosiłeś."
msgid "The best thing to do is probably to get back to the main page."
msgstr ""
"Najlepszą rzeczą do zrobienia jest prawdopodobnie powrót do strony "
"głównej."
msgid "Back to the list"
msgstr "Powrót do listy"
msgid "Administration tasks are currently disabled."
msgstr "Zadania administracyjne są obecnie wyłączone."
msgid "The project you are trying to access do not exist, do you want to"
msgstr "Projekt, do którego próbujesz uzyskać dostęp, nie istnieje, czy chcesz"
msgid "create it"
msgstr "stworzyć go"
msgid "?"
msgstr "?"
msgid "Create a new project"
msgstr "Stwórz nowy projekt"
msgid "Number of members"
msgstr "Liczba użytkowników"
msgid "Number of bills"
msgstr "Liczba rachunków"
msgid "Newest bill"
msgstr "Najnowszy rachunek"
msgid "Oldest bill"
msgstr "Najstarszy rachunek"
msgid "Actions"
msgstr "Akcje"
msgid "edit"
msgstr "edytuj"
msgid "delete"
msgstr "usuń"
msgid "show"
msgstr "pokaż"
msgid "The Dashboard is currently deactivated."
msgstr "Pulpit nawigacyjny jest obecnie dezaktywowany."
msgid "you sure?"
msgstr "jesteś pewny?"
msgid "Edit project"
msgstr "Edytuj projekt"
msgid "Import JSON"
msgstr "Importuj JSON"
msgid "Choose file"
msgstr "Wybierz plik"
msgid "Download project's data"
msgstr "Pobierz dane projektu"
msgid "Bill items"
msgstr "Zawartość rachunku"
msgid "Download the list of bills with owner, amount, reason,... "
msgstr "Pobierz listę rachunków z właścicielem, kwotą, powodem,... "
msgid "Settle plans"
msgstr "Uzgodnij plany"
msgid "Download the list of transactions needed to settle the current bills."
msgstr "Pobierz listę transakcji potrzebnych do rozliczenia bieżących rachunków."
msgid "Can't remember the password?"
msgstr "Nie pamiętasz hasła?"
msgid "Cancel"
msgstr "Anuluj"
msgid "Privacy Settings"
msgstr "Ustawienia prywatności"
msgid "Edit the project"
msgstr "Edytuj projekt"
msgid "Edit this bill"
msgstr "Edytuj ten rachunek"
msgid "Add a bill"
msgstr "Dodaj rachunek"
msgid "Select all"
msgstr "Zaznacz wszystko"
msgid "Select none"
msgstr "Zaznacz brak"
msgid "Add participant"
msgstr "Dodaj uczestnika"
msgid "Edit this member"
msgstr "Edytuj tego członka"
msgid "john.doe@example.com, mary.moe@site.com"
msgstr "jan.kowalski@przykład.com, anna.nowak@strona.com"
msgid "Send the invitations"
msgstr "Wyślij zaproszenia"
msgid "Download"
msgstr "Pobierz"
msgid "Disabled Project History"
msgstr "Wyłączona historia projektu"
msgid "Disabled Project History & IP Address Recording"
msgstr "Wyłączona historia projektu & rejestracja adresu IP"
msgid "Enabled Project History"
msgstr "Włączona historia projektu"
msgid "Disabled IP Address Recording"
msgstr "Wyłączona rejestracja adresu IP"
msgid "Enabled Project History & IP Address Recording"
msgstr "Włączona historia projektu i rejestracja adresu IP"
msgid "Enabled IP Address Recording"
msgstr "Włączona rejestracja adresu IP"
msgid "History Settings Changed"
msgstr "Ustawienia historii zmienione"
msgid "changed"
msgstr "zmienione"
msgid "from"
msgstr "z"
msgid "to"
msgstr "do"
msgid "Confirm Remove IP Adresses"
msgstr "Potwierdź usunięcie adresów IP"
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
"Czy na pewno chcesz usunąć wszystkie zarejestrowane adresy IP z tego "
"projektu?\n"
"                 Pozostała część historii projektu pozostanie "
"niezmieniona. Nie można cofnąć tej akcji."
msgid "Close"
msgstr "Zamknij"
msgid "Confirm Delete"
msgstr "Potwierdź usunięcie"
msgid "Delete Confirmation"
msgstr "Usuń potwierdzenie"
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
"Czy na pewno chcesz usunąć całą historię tego projektu? Nie można cofnąć "
"tej akcji."
msgid "Added"
msgstr "Dodane"
msgid "Removed"
msgstr "Usunięte"
msgid "and"
msgstr "i"
msgid "owers list"
msgstr "lista dłużników"
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
"\n"
" <i>Historia tego projektu została wyłączona. Nowe działania "
"nie pojawią się poniżej. Możesz włączyć historię w</i>\n"
" <a href=\"%(url)s\">ustawieniach</a>\n"
" "
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
"\n"
" <i>Poniższa tabela przedstawia działania zarejestrowane przed"
" wyłączeniem historii projektu. Możesz\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">wyczyścić historię projektu</a>, aby je "
"usunąć.</i></p>\n"
" "
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
"Niektóre wpisy poniżej zawierają adresy IP, nawet jeśli w tym projekcie "
"rejestrowanie IP jest wyłączone. "
msgid "Delete stored IP addresses"
msgstr "Usuń przechowywane adresy IP"
msgid "No history to erase"
msgstr "Brak historii do usunięcia"
msgid "Clear Project History"
msgstr "Wyczyść historię projektu"
msgid "No IP Addresses to erase"
msgstr "Brak adresów IP do usunięcia"
msgid "Delete Stored IP Addresses"
msgstr "Usuń przechowywane adresy IP"
msgid "Time"
msgstr "Czas"
msgid "Event"
msgstr "Wydarzenie"
msgid "IP address recording can be enabled on the settings page"
msgstr "Rejestrowanie adresu IP można włączyć na stronie ustawień"
msgid "IP address recording can be disabled on the settings page"
msgstr "Rejestrowanie adresu IP można wyłączyć na stronie ustawień"
msgid "From IP"
msgstr "Z IP"
msgid "added"
msgstr "dodano"
msgid "Project private code changed"
msgstr "Prywatny kod projektu został zmieniony"
msgid "Project renamed to"
msgstr "Nazwa projektu zmieniona na"
msgid "Project contact email changed to"
msgstr "Kontaktowy adres email projektu został zmieniony na"
msgid "Project settings modified"
msgstr "Zmieniono ustawienia projektu"
msgid "deactivated"
msgstr "wyłączony"
msgid "reactivated"
msgstr "włączony"
msgid "renamed to"
msgstr "przemianowany na"
msgid "External link changed to"
msgstr "Link zewnętrzny zmieniono na"
msgid "Amount"
msgstr "Ilość"
#, python-format
msgid "Amount in %(currency)s"
msgstr "Ilość w %(currency)s"
msgid "modified"
msgstr "zmieniony"
msgid "removed"
msgstr "usunięty"
msgid "changed in a unknown way"
msgstr "zmieniony w nieznany sposób"
msgid "Nothing to list"
msgstr "Nic na liście"
msgid "Someone probably cleared the project history."
msgstr "Ktoś prawdopodobnie wyczyścił historię projektu."
msgid "Manage your shared <br />expenses, easily"
msgstr "Łatwo zarządzaj wspólnymi <br /> wydatkami"
msgid "Try out the demo"
msgstr "Wypróbuj wersję demo"
msgid "You're sharing a house?"
msgstr "Dzielisz z kimś dom?"
msgid "Going on holidays with friends?"
msgstr "Jedziesz na wakacje ze znajomymi?"
msgid "Simply sharing money with others?"
msgstr "Po prostu dzielisz się pieniędzmi z innymi?"
msgid "We can help!"
msgstr "Możemy pomóc!"
msgid "Log in to an existing project"
msgstr "Zaloguj się do istniejącego projektu"
msgid "Log in"
msgstr "Zaloguj się"
msgid "can't remember your password?"
msgstr "nie pamiętasz swojego hasła?"
msgid "Create"
msgstr "Stwórz"
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
"Nie używaj ponownie osobistego hasła. Wybierz kod prywatny i wyślij go "
"znajomym"
msgid "Account manager"
msgstr "Menadżer konta"
msgid "Bills"
msgstr "Rachunki"
msgid "Settle"
msgstr "Rozliczenia"
msgid "Statistics"
msgstr "Statystyki"
msgid "History"
msgstr "Historia"
msgid "Settings"
msgstr "Ustawienia"
msgid "Languages"
msgstr "Języki"
msgid "Projects"
msgstr "Projekty"
msgid "Start a new project"
msgstr "Rozpocznij nowy projekt"
msgid "Other projects :"
msgstr "Inne projekty:"
msgid "switch to"
msgstr "przełącz na"
msgid "Dashboard"
msgstr "Kokpit"
msgid "Logout"
msgstr "Wyloguj"
msgid "Code"
msgstr "Kod"
msgid "Mobile Application"
msgstr "Aplikacja mobilna"
msgid "Documentation"
msgstr "Dokumentacja"
msgid "Administation Dashboard"
msgstr "Kokpit administracyjny"
msgid "\"I hate money\" is a free software"
msgstr "„I Hate Money” to darmowe oprogramowanie"
msgid "you can contribute and improve it!"
msgstr "możesz przyczynić się i je ulepszyć!"
#, python-format
msgid "%(amount)s each"
msgstr "%(amount)s każdy"
msgid "Invite people"
msgstr "Zaproś ludzi"
msgid "You should start by adding participants"
msgstr "Powinieneś zacząć od dodania uczestników"
msgid "Add a new bill"
msgstr "Dodaj nowy rachunek"
msgid "Newer bills"
msgstr "Nowsze rachunki"
msgid "Older bills"
msgstr "Starsze rachunki"
msgid "When?"
msgstr "Kiedy?"
msgid "Who paid?"
msgstr "Kto zapłacił?"
msgid "For what?"
msgstr "Za co?"
msgid "How much?"
msgstr "Jak dużo?"
#, python-format
msgid "Added on %(date)s"
msgstr "Dodano %(date)s"
msgid "Everyone"
msgstr "Wszyscy"
#, python-format
msgid "Everyone but %(excluded)s"
msgstr "Wszyscy poza %(excluded)s"
msgid "No bills"
msgstr "Brak rachunków"
msgid "Nothing to list yet."
msgstr "Nie ma jeszcze żadnej listy."
msgid "You probably want to"
msgstr "Prawdopodobnie chcesz"
msgid "add a bill"
msgstr "dodać rachunek"
msgid "add participants"
msgstr "dodać członków"
msgid "Password reminder"
msgstr "Przypomnienie hasła"
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
"Link do zresetowania hasła został wysłany do Ciebie, sprawdź swojego "
"maila."
msgid "Return to home page"
msgstr "Wróć do strony głównej"
msgid "Your projects"
msgstr "Twoje projekty"
msgid "Reset your password"
msgstr "Zresetuj swoje hasło"
msgid "Invite people to join this project"
msgstr "Zaproś ludzi do dołączenia do tego projektu"
msgid "Share Identifier & code"
msgstr "Udostępnij identyfikator i kod"
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
"Identyfikator projektu i kod prywatny można udostępniać dowolnymi "
"środkami komunikacji."
msgid "Identifier:"
msgstr "Identyfikator:"
msgid "Share the Link"
msgstr "Udostępnij link"
msgid "You can directly share the following link via your prefered medium"
msgstr ""
"Możesz bezpośrednio udostępnić poniższy link za pośrednictwem "
"preferowanego medium"
msgid "Send via Emails"
msgstr "Wyślij przez maile"
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
"Podaj (adresy rozdzielone przecinkami) adresy email, które chcesz "
"powiadomić o \n"
" utworzeniu tego projektu zarządzania budżetem, a my "
"wyślemy Ci wiadomość email."
msgid "Who pays?"
msgstr "Kto płaci?"
msgid "To whom?"
msgstr "Komu?"
msgid "Who?"
msgstr "Kto?"
msgid "Balance"
msgstr "Saldo"
msgid "deactivate"
msgstr "dezaktywuj"
msgid "reactivate"
msgstr "reaktywuj"
msgid "Paid"
msgstr "Zapłacone"
msgid "Spent"
msgstr "Wydano"
msgid "Expenses by Month"
msgstr "Wydatki według miesiąca"
msgid "Period"
msgstr "Okres"
#~ msgid "%(msg_compl)sThe project identifier is %(project)s"
#~ msgstr "%(msg_compl)sIdentyfikator projektu to %(project)s"
#~ msgid "each"
#~ msgstr "każdy"
#~ msgid "Error while sending reminder email"
#~ msgstr "Błąd podczas wysyłania wiadomości e-mail z przypomnieniem"
#~ msgid ""
#~ "This access code will be sent to"
#~ " your friends. It is stored as-"
#~ "is by the server, so don\\'t reuse"
#~ " a personal password!"
#~ msgstr ""
#~ "Ten kod dostępu zostanie wysłany do "
#~ "znajomych. Jest przechowywany w stanie "
#~ "niezmienionym przez serwer, więc nie "
#~ "używaj ponownie osobistego hasła!"

Binary file not shown.

View file

@ -0,0 +1,819 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-23 21:43+0200\n"
"PO-Revision-Date: 2020-10-05 12:12+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/i-hate-money/"
"i-hate-money/pt/>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.3-dev\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr ""
"Expressão ou montante inválido. Apenas números e os operadores +=*/ são "
"aceitos."
msgid "Project name"
msgstr "Nome do projeto"
msgid "Private code"
msgstr "Código privado"
msgid "Email"
msgstr "E-mail"
msgid "Enable project history"
msgstr "Ativar histórico do projeto"
msgid "Use IP tracking for project history"
msgstr "Usar rastreamento de IP para o histórico do projeto"
msgid "Default Currency"
msgstr "Moeda predefinida"
msgid "Import previously exported JSON file"
msgstr "Importar ficheiro JSON exportado anteriormente"
msgid "Import"
msgstr "Importar"
msgid "Project identifier"
msgstr "Identificador do projeto"
msgid "Create the project"
msgstr "Criar o projeto"
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr ""
"Um projeto com este identificador (\"%(project)s\") já existe. Por favor "
"escolha um novo identificador"
msgid "Get in"
msgstr "Entrar"
msgid "Admin password"
msgstr "Palavra-passe do administrador"
msgid "Send me the code by email"
msgstr "Me envie o código por e-mail"
msgid "This project does not exists"
msgstr "Este projeto não existe"
msgid "Password mismatch"
msgstr "Palavra-passe incompatível"
msgid "Password"
msgstr "Palavra-passe"
msgid "Password confirmation"
msgstr "Confirmação da palavra-passe"
msgid "Reset password"
msgstr "Redefinir palavra-passe"
msgid "Date"
msgstr "Data"
msgid "What?"
msgstr "O quê?"
msgid "Payer"
msgstr "Pagador"
msgid "Amount paid"
msgstr "Quantia paga"
msgid "Currency"
msgstr "Moeda"
msgid "External link"
msgstr "Ligação externa"
msgid "A link to an external document, related to this bill"
msgstr "Ligação para um documento externo, relacionado à essa conta"
msgid "For whom?"
msgstr "Para quem?"
msgid "Submit"
msgstr "Enviar"
msgid "Submit and add a new one"
msgstr "Enviar e adicionar um novo"
#, python-format
msgid "Project default: %(currency)s"
msgstr "Projeto predefinido: %(currency)s"
msgid "Bills can't be null"
msgstr "Contas não podem ser null"
msgid "Name"
msgstr "Nome"
msgid "Weights should be positive"
msgstr "Pesos devem ser positivos"
msgid "Weight"
msgstr "Peso"
msgid "Add"
msgstr "Adicionar"
msgid "User name incorrect"
msgstr "Nome de utilizador incorreto"
msgid "This project already have this member"
msgstr "Este projeto já tem este membro"
msgid "People to notify"
msgstr "Pessoas para notificar"
msgid "Send invites"
msgstr "Enviar convites"
#, python-format
msgid "The email %(email)s is not valid"
msgstr "O email %(email)s não é válido"
msgid "Participant"
msgstr "Participante"
msgid "Bill"
msgstr "Conta"
msgid "Project"
msgstr "Projeto"
msgid "No Currency"
msgstr "Sem Moeda"
msgid "Too many failed login attempts, please retry later."
msgstr ""
"Muitas tentativas de login falhas, por favor, tente novamente mais tarde."
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr ""
"Esta palavra-passe de administrador não é a correta. Apenas %(num)d "
"tentativas restantes."
msgid "You either provided a bad token or no project identifier."
msgstr "Forneceu um token ruim ou não forneceu o identificador do projeto."
msgid "This private code is not the right one"
msgstr "Este código privado não é o correto"
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr "Acabou de criar '%(project)s' para compartilhar as suas despesas"
msgid "A reminder email has just been sent to you"
msgstr "Um email de lembrete acabou de ser enviado a si"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"Tentamos lhe enviar um email de lembrete, mas aconteceu um erro. Pode "
"continuar usando o projeto normalmente."
#, python-format
msgid "The project identifier is %(project)s"
msgstr "O identificador do projeto é %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"Desculpe, houve um erro ao te enviar um email com as instruções de "
"redefinição de palavra-passe. Por favor, confira a configuração de e-mail do "
"servidor ou entre em contato com um administrador."
msgid "No token provided"
msgstr "Nenhum token fornecido"
msgid "Invalid token"
msgstr "Token inválido"
msgid "Unknown project"
msgstr "Projeto desconhecido"
msgid "Password successfully reset."
msgstr "Palavra-passe redefinida corretamente."
msgid "Project successfully uploaded"
msgstr "Projeto enviado corretamente"
msgid "Invalid JSON"
msgstr "JSON inválido"
msgid "Project successfully deleted"
msgstr "Projeto deletado com sucesso"
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr "Foi convidado a compartilhar suas despesas com %(project)s"
msgid "Your invitations have been sent"
msgstr "Seus convites foram enviados"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"Desculpe, houve um erro ao enviar os convites via e-mail. Por favor, confira "
"a configuração de email do servidor ou entre em contato com um administrador."
#, python-format
msgid "%(member)s has been added"
msgstr "%(member)s foram adicionados"
#, python-format
msgid "%(name)s is part of this project again"
msgstr "%(name)s faz parte deste projeto novamente"
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
"Utilizador '%(name)s' foi desativado. Ele continuará aparecendo na lista de "
"utilizadores até que o seu balanço seja zero."
#, python-format
msgid "User '%(name)s' has been removed"
msgstr "Utilizador '%(name)s' foi removido"
#, python-format
msgid "User '%(name)s' has been edited"
msgstr "Utilizador '%(name)s' foi editado"
msgid "The bill has been added"
msgstr "A conta foi adicionada"
msgid "The bill has been deleted"
msgstr "A conta foi deletada"
msgid "The bill has been modified"
msgstr "A conta foi modificada"
msgid "Sorry, we were unable to find the page you've asked for."
msgstr "Desculpe, não foi possível encontrar a página que solicitou."
msgid "The best thing to do is probably to get back to the main page."
msgstr ""
"É provável que a melhor coisa a fazer seja voltar para a página inicial."
msgid "Back to the list"
msgstr "Voltar para a lista"
msgid "Administration tasks are currently disabled."
msgstr "Tarefas de administração estão atualmente desativadas."
msgid "The project you are trying to access do not exist, do you want to"
msgstr "O projeto que está tentando acessar não existe, quer"
msgid "create it"
msgstr "Criar"
msgid "?"
msgstr "?"
msgid "Create a new project"
msgstr "Criar um projeto"
msgid "Number of members"
msgstr "Quantidade de membros"
msgid "Number of bills"
msgstr "Quantidade de contas"
msgid "Newest bill"
msgstr "Conta mais recente"
msgid "Oldest bill"
msgstr "Conta mais antiga"
msgid "Actions"
msgstr "Ações"
msgid "edit"
msgstr "editar"
msgid "delete"
msgstr "deletar"
msgid "show"
msgstr "exibir"
msgid "The Dashboard is currently deactivated."
msgstr "O Painel de Controle atualmente está desativado."
msgid "you sure?"
msgstr "tem certeza?"
msgid "Edit project"
msgstr "Editar projeto"
msgid "Import JSON"
msgstr "Importar JSON"
msgid "Choose file"
msgstr "Escolher ficheiro"
msgid "Download project's data"
msgstr "Descarregar dados do projeto"
msgid "Bill items"
msgstr "Itens da conta"
msgid "Download the list of bills with owner, amount, reason,... "
msgstr "Descarregar a lista de contas com dono, quantia, motivo,... "
msgid "Settle plans"
msgstr "Estabelecer planos"
msgid "Download the list of transactions needed to settle the current bills."
msgstr ""
"Descarregar a lista de transações necessárias para liquidar as contas atuais."
msgid "Can't remember the password?"
msgstr "Esqueceu a palavra-passe?"
msgid "Cancel"
msgstr "Cancelar"
msgid "Privacy Settings"
msgstr "Configurações de Privacidade"
msgid "Edit the project"
msgstr "Editar o projeto"
msgid "Edit this bill"
msgstr "Editar esta conta"
msgid "Add a bill"
msgstr "Adicionar uma conta"
msgid "Select all"
msgstr "Selecionar tudo"
msgid "Select none"
msgstr "Selecionar nenhum"
msgid "Add participant"
msgstr "Adicionar participante"
msgid "Edit this member"
msgstr "Editar este membro"
msgid "john.doe@example.com, mary.moe@site.com"
msgstr "flano.tal@exemplo.com, flana.maria@site.com"
msgid "Send the invitations"
msgstr "Enviar os convites"
msgid "Download"
msgstr "Descarregar"
msgid "Disabled Project History"
msgstr "Histórico do Projeto Desativado"
msgid "Disabled Project History & IP Address Recording"
msgstr "Histórico do Projeto Desativado & Gravação de Endereço IP"
msgid "Enabled Project History"
msgstr "Histórico do Projeto Ativado"
msgid "Disabled IP Address Recording"
msgstr "Gravação do Endereço IP Desativada"
msgid "Enabled Project History & IP Address Recording"
msgstr "Histórico do Projeto Ativado & Gravação do Endereço IP"
msgid "Enabled IP Address Recording"
msgstr "Gravação do Endereço IP Ativada"
msgid "History Settings Changed"
msgstr "Configurações do Histórico Alteradas"
msgid "changed"
msgstr "alterado"
msgid "from"
msgstr "de"
msgid "to"
msgstr "para"
msgid "Confirm Remove IP Adresses"
msgstr "Confirmar a remoção dos Endereços IP"
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
"Tem certeza que deseja apagar todos os endereços IP gravados deste projeto?\n"
" O resto do histórico do projeto não será afetado. Esta ação "
"não pode ser desfeita."
msgid "Close"
msgstr "Fechar"
msgid "Confirm Delete"
msgstr "Confirmar apagar"
msgid "Delete Confirmation"
msgstr "Deletar Confirmação"
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
"Tem certeza que deseja apagar todo o histórico deste projeto? Esta ação não "
"pode ser desfeita."
msgid "Added"
msgstr "Adicionado"
msgid "Removed"
msgstr "Removido"
msgid "and"
msgstr "e"
msgid "owers list"
msgstr "lista de devedores"
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
"\n"
" <i>Este projeto tem o histórico desativado. Novas ações não "
"serão exibidas abaixo. Pode ativar o histórico na</i>\n"
" <a href=\"%(url)s\">página de configurações</a>\n"
" "
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
"\n"
" <i>A tabela abaixo reflete as ações registadas antes da "
"desativação do histórico do projeto. Pode\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" data-"
"target=\"#confirm-erase\">limpar o histórico do projeto</a> para "
"removê-las.</i></p>\n"
" "
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
"Algumas das entradas abaixo contém endereços IP, mesmo este projeto tendo a "
"gravação de IP desativada. "
msgid "Delete stored IP addresses"
msgstr "Deletar endereços IP gravados"
msgid "No history to erase"
msgstr "Não há histórico para apagar"
msgid "Clear Project History"
msgstr "Limpar Histórico do Projeto"
msgid "No IP Addresses to erase"
msgstr "Não há endereços IP para apagar"
msgid "Delete Stored IP Addresses"
msgstr "Deletar endereços IP gravados"
msgid "Time"
msgstr "Tempo"
msgid "Event"
msgstr "Evento"
msgid "IP address recording can be enabled on the settings page"
msgstr "A gravação do endereço IP pode ser ativada na página de configurações"
msgid "IP address recording can be disabled on the settings page"
msgstr ""
"A gravação do endereço IP pode ser desativada na página de configurações"
msgid "From IP"
msgstr "Do IP"
msgid "added"
msgstr "adicionado"
msgid "Project private code changed"
msgstr "Código privado do projeto alterado"
msgid "Project renamed to"
msgstr "Projeto renomeado para"
msgid "Project contact email changed to"
msgstr "O email de contato do projeto foi alterado para"
msgid "Project settings modified"
msgstr "Configurações do projeto alteradas"
msgid "deactivated"
msgstr "desativado"
msgid "reactivated"
msgstr "reativado"
msgid "renamed to"
msgstr "renomeado para"
msgid "External link changed to"
msgstr "Ligação externa alterado para"
msgid "Amount"
msgstr "Quantia"
#, python-format
msgid "Amount in %(currency)s"
msgstr "Quantia em %(currency)s"
msgid "modified"
msgstr "modificado"
msgid "removed"
msgstr "removido"
msgid "changed in a unknown way"
msgstr "modificado de maneira desconhecida"
msgid "Nothing to list"
msgstr "Nada a listar"
msgid "Someone probably cleared the project history."
msgstr "Alguém provavelmente limpou o histórico do projeto."
msgid "Manage your shared <br />expenses, easily"
msgstr "Modifique suas despesas <br />compartilhadas, facilmente"
msgid "Try out the demo"
msgstr "Experimente a demonstração"
msgid "You're sharing a house?"
msgstr "Está dividindo uma casa?"
msgid "Going on holidays with friends?"
msgstr "Indo para o feriado com os amigos?"
msgid "Simply sharing money with others?"
msgstr "Simplesmente compartilhando dinheiro com outras pessoas?"
msgid "We can help!"
msgstr "Nós podemos ajudar!"
msgid "Log in to an existing project"
msgstr "Conecte-se num projeto existente"
msgid "Log in"
msgstr "Conecte-se"
msgid "can't remember your password?"
msgstr "não se consegue lembrar da sua palavra-passe?"
msgid "Create"
msgstr "Criar"
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
"Não reutilize uma palavra-passe pessoal. Escolha um código privado e envie-o "
"para seus amigos"
msgid "Account manager"
msgstr "Gestor de contas"
msgid "Bills"
msgstr "Contas"
msgid "Settle"
msgstr "Estabelecer"
msgid "Statistics"
msgstr "Estatísticas"
msgid "History"
msgstr "Histórico"
msgid "Settings"
msgstr "Configurações"
msgid "Languages"
msgstr "Linguagens"
msgid "Projects"
msgstr "Projetos"
msgid "Start a new project"
msgstr "Começar um novo projeto"
msgid "Other projects :"
msgstr "Outros projetos:"
msgid "switch to"
msgstr "mudar para"
msgid "Dashboard"
msgstr "Painel de controle"
msgid "Logout"
msgstr "Sair"
msgid "Code"
msgstr "Código"
msgid "Mobile Application"
msgstr "Aplicação Mobile"
msgid "Documentation"
msgstr "Documentação"
msgid "Administation Dashboard"
msgstr "Painel de Administração"
msgid "\"I hate money\" is a free software"
msgstr "\"I hate money\" é um software livre"
msgid "you can contribute and improve it!"
msgstr "Pode contribuir para melhorá-lo!"
#, python-format
msgid "%(amount)s each"
msgstr "%(amount)s cada"
msgid "Invite people"
msgstr "Convidar pessoas"
msgid "You should start by adding participants"
msgstr "Deveria começar adicionando pessoas"
msgid "Add a new bill"
msgstr "Adicionar uma nova conta"
msgid "Newer bills"
msgstr "Contas mais recentes"
msgid "Older bills"
msgstr "Contas mais antigas"
msgid "When?"
msgstr "Quando?"
msgid "Who paid?"
msgstr "Quem pagou?"
msgid "For what?"
msgstr "Para quê?"
msgid "How much?"
msgstr "Quanto?"
#, python-format
msgid "Added on %(date)s"
msgstr "Adicionado em %(date)s"
msgid "Everyone"
msgstr "Todos"
#, python-format
msgid "Everyone but %(excluded)s"
msgstr "Todos menos %(excluded)s"
msgid "No bills"
msgstr "Sem contas"
msgid "Nothing to list yet."
msgstr "Nada para listar ainda."
msgid "You probably want to"
msgstr "Provavelmente gostaria de"
msgid "add a bill"
msgstr "adicionar uma conta"
msgid "add participants"
msgstr "adicionar participantes"
msgid "Password reminder"
msgstr "Lembrete de palavra-passe"
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
"Uma ligação para redefinir a sua palavra-passe foi enviado a si, por favor "
"verifique os seus e-mails."
msgid "Return to home page"
msgstr "Retornar à pagina inicial"
msgid "Your projects"
msgstr "Seus projetos"
msgid "Reset your password"
msgstr "Redefinir sua palavra-passe"
msgid "Invite people to join this project"
msgstr "Convide pessoas para participar deste projeto"
msgid "Share Identifier & code"
msgstr "Compartilhar Identificador & código"
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
"Pode compartilhar o identificador do projeto e o código privado por qualquer "
"meio de comunicação."
msgid "Identifier:"
msgstr "Identificador:"
msgid "Share the Link"
msgstr "Compartilhar a ligação"
msgid "You can directly share the following link via your prefered medium"
msgstr ""
"Pode compartilhar diretamente o seguinte ligação através do seu meio "
"preferido"
msgid "Send via Emails"
msgstr "Enviar via E-mails"
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
"Especifique uma lista (separada por vírgulas) de endereços de e-mail que "
"deseja notificar sobre a\n"
" criação deste projeto de gestão orçamental e enviaremos um e-"
"mail para si."
msgid "Who pays?"
msgstr "Quem paga?"
msgid "To whom?"
msgstr "A quem?"
msgid "Who?"
msgstr "Quem?"
msgid "Balance"
msgstr "Saldo"
msgid "deactivate"
msgstr "desativar"
msgid "reactivate"
msgstr "reativar"
msgid "Paid"
msgstr "Pago"
msgid "Spent"
msgstr "Gasto"
msgid "Expenses by Month"
msgstr "Despesas por mês"
msgid "Period"
msgstr "Período"

Binary file not shown.

View file

@ -0,0 +1,820 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-27 02:02+0200\n"
"PO-Revision-Date: 2020-08-27 19:22+0000\n"
"Last-Translator: André Oliveira <andre_pinto_oliveira@outlook.pt>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"i-hate-money/i-hate-money/pt_BR/>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.2.1-dev\n"
msgid ""
"Not a valid amount or expression. Only numbers and + - * / operators are "
"accepted."
msgstr ""
"Expressão ou montante inválido. Apenas números e os operadores +=*/ são "
"aceitos."
msgid "Project name"
msgstr "Nome do projeto"
msgid "Private code"
msgstr "Código privado"
msgid "Email"
msgstr "E-mail"
msgid "Enable project history"
msgstr "Ativar histórico do projeto"
msgid "Use IP tracking for project history"
msgstr "Usar rastreamento de IP para o histórico do projeto"
msgid "Default Currency"
msgstr "Moeda Padrão"
msgid "Import previously exported JSON file"
msgstr "Importar arquivo JSON exportado anteriormente"
msgid "Import"
msgstr "Importar"
msgid "Project identifier"
msgstr "Identificador do projeto"
msgid "Create the project"
msgstr "Criar o projeto"
#, python-format
msgid ""
"A project with this identifier (\"%(project)s\") already exists. Please "
"choose a new identifier"
msgstr ""
"Um projeto com este identificador (\"%(project)s\") já existe. Por favor "
"escolha um novo identificador"
msgid "Get in"
msgstr "Entrar"
msgid "Admin password"
msgstr "Senha do administrador"
msgid "Send me the code by email"
msgstr "Me envie o código por e-mail"
msgid "This project does not exists"
msgstr "Este projeto não existe"
msgid "Password mismatch"
msgstr "Senha incompatível"
msgid "Password"
msgstr "Senha"
msgid "Password confirmation"
msgstr "Confirmação da senha"
msgid "Reset password"
msgstr "Redefinir senha"
msgid "Date"
msgstr "Data"
msgid "What?"
msgstr "O quê?"
msgid "Payer"
msgstr "Pagador"
msgid "Amount paid"
msgstr "Quantia paga"
msgid "Currency"
msgstr "Moeda"
msgid "External link"
msgstr "Link externo"
msgid "A link to an external document, related to this bill"
msgstr "Link para um documento externo, relacionado à essa conta"
msgid "For whom?"
msgstr "Para quem?"
msgid "Submit"
msgstr "Enviar"
msgid "Submit and add a new one"
msgstr "Enviar e adicionar um novo"
#, python-format
msgid "Project default: %(currency)s"
msgstr "Projeto padrão: %(currency)s"
msgid "Bills can't be null"
msgstr "Contas não podem ser null"
msgid "Name"
msgstr "Nome"
msgid "Weights should be positive"
msgstr "Pesos devem ser positivos"
msgid "Weight"
msgstr "Peso"
msgid "Add"
msgstr "Adicionar"
msgid "User name incorrect"
msgstr "Nome de usuário incorreto"
msgid "This project already have this member"
msgstr "Este projeto já tem este membro"
msgid "People to notify"
msgstr "Pessoas para notificar"
msgid "Send invites"
msgstr "Enviar convites"
#, python-format
msgid "The email %(email)s is not valid"
msgstr "O email %(email)s não é válido"
msgid "Participant"
msgstr "Participante"
msgid "Bill"
msgstr "Conta"
msgid "Project"
msgstr "Projeto"
msgid "No Currency"
msgstr "Sem Moeda"
msgid "Too many failed login attempts, please retry later."
msgstr ""
"Muitas tentativas de login falhas, por favor, tente novamente mais tarde."
#, python-format
msgid "This admin password is not the right one. Only %(num)d attempts left."
msgstr ""
"Esta senha de administrador não é a correta. Apenas %(num)d tentativas "
"restantes."
msgid "You either provided a bad token or no project identifier."
msgstr "Você forneceu um token ruim ou não forneceu o identificador do projeto."
msgid "This private code is not the right one"
msgstr "Este código privado não é o correto"
#, python-format
msgid "You have just created '%(project)s' to share your expenses"
msgstr "Você acabou de criar '%(project)s' para compartilhar suas despesas"
msgid "A reminder email has just been sent to you"
msgstr "Um email de lembrete acabou de ser enviado para você"
msgid ""
"We tried to send you an reminder email, but there was an error. You can "
"still use the project normally."
msgstr ""
"Nós tentamos te enviar um email de lembrete, mas aconteceu um erro. Você "
"pode continuar usando o projeto normalmente."
#, python-format
msgid "The project identifier is %(project)s"
msgstr "O identificador do projeto é %(project)s"
msgid ""
"Sorry, there was an error while sending you an email with password reset "
"instructions. Please check the email configuration of the server or "
"contact the administrator."
msgstr ""
"Desculpe, houve um erro ao te enviar um email com as instruções de "
"redefinição de senha. Por favor, confira a configuração de e-mail do "
"servidor ou entre em contato com um administrador."
msgid "No token provided"
msgstr "Nenhum token fornecido"
msgid "Invalid token"
msgstr "Token inválido"
msgid "Unknown project"
msgstr "Projeto desconhecido"
msgid "Password successfully reset."
msgstr "Senha redefinida corretamente."
msgid "Project successfully uploaded"
msgstr "Projeto enviado corretamente"
msgid "Invalid JSON"
msgstr "JSON inválido"
msgid "Project successfully deleted"
msgstr "Projeto deletado com sucesso"
#, python-format
msgid "You have been invited to share your expenses for %(project)s"
msgstr "Você foi convidado a compartilhar suas despesas com %(project)s"
msgid "Your invitations have been sent"
msgstr "Seus convites foram enviados"
msgid ""
"Sorry, there was an error while trying to send the invitation emails. "
"Please check the email configuration of the server or contact the "
"administrator."
msgstr ""
"Desculpe, houve um erro ao enviar os convites via e-mail. Por favor, confira "
"a configuração de email do servidor ou entre em contato com um administrador."
#, python-format
msgid "%(member)s has been added"
msgstr "%(member)s foram adicionados"
#, python-format
msgid "%(name)s is part of this project again"
msgstr "%(name)s faz parte deste projeto novamente"
#, python-format
msgid ""
"User '%(name)s' has been deactivated. It will still appear in the users "
"list until its balance becomes zero."
msgstr ""
"Usuário '%(name)s' foi desativado. Ele continuará aparecendo na lista de "
"usuários até que o seu balanço seja zero."
#, python-format
msgid "User '%(name)s' has been removed"
msgstr "Usuário '%(name)s' foi removido"
#, python-format
msgid "User '%(name)s' has been edited"
msgstr "Usuário '%(name)s' foi editado"
msgid "The bill has been added"
msgstr "A conta foi adicionada"
msgid "The bill has been deleted"
msgstr "A conta foi deletada"
msgid "The bill has been modified"
msgstr "A conta foi modificada"
msgid "Sorry, we were unable to find the page you've asked for."
msgstr "Desculpe, não foi possível encontrar a página que você solicitou."
msgid "The best thing to do is probably to get back to the main page."
msgstr ""
"É provável que a melhor coisa a fazer seja voltar para a página inicial."
msgid "Back to the list"
msgstr "Voltar para a lista"
msgid "Administration tasks are currently disabled."
msgstr "Tarefas de administração estão atualmente desativadas."
msgid "The project you are trying to access do not exist, do you want to"
msgstr "O projeto que você está tentando acessar não existe, você quer"
msgid "create it"
msgstr "Criar"
msgid "?"
msgstr "?"
msgid "Create a new project"
msgstr "Criar um novo projeto"
msgid "Number of members"
msgstr "Número de membros"
msgid "Number of bills"
msgstr "Número de contas"
msgid "Newest bill"
msgstr "Conta mais recente"
msgid "Oldest bill"
msgstr "Conta mais antiga"
msgid "Actions"
msgstr "Ações"
msgid "edit"
msgstr "editar"
msgid "delete"
msgstr "deletar"
msgid "show"
msgstr "exibir"
msgid "The Dashboard is currently deactivated."
msgstr "O Painel de Controle atualmente está desativado."
msgid "you sure?"
msgstr "tem certeza?"
msgid "Edit project"
msgstr "Editar projeto"
msgid "Import JSON"
msgstr "Importar JSON"
msgid "Choose file"
msgstr "Escolher arquivo"
msgid "Download project's data"
msgstr "Baixar dados do projeto"
msgid "Bill items"
msgstr "Itens da conta"
msgid "Download the list of bills with owner, amount, reason,... "
msgstr "Baixar a lista de contas com dono, quantia, motivo,... "
msgid "Settle plans"
msgstr "Estabelecer planos"
msgid "Download the list of transactions needed to settle the current bills."
msgstr ""
"Baixar a lista de transações necessárias para liquidar as contas atuais."
msgid "Can't remember the password?"
msgstr "Esqueceu a senha?"
msgid "Cancel"
msgstr "Cancelar"
msgid "Privacy Settings"
msgstr "Configurações de Privacidade"
msgid "Edit the project"
msgstr "Editar o projeto"
msgid "Edit this bill"
msgstr "Editar esta conta"
msgid "Add a bill"
msgstr "Adicionar uma conta"
msgid "Select all"
msgstr "Selecionar tudo"
msgid "Select none"
msgstr "Selecionar nenhum"
msgid "Add participant"
msgstr "Adicionar participante"
msgid "Edit this member"
msgstr "Editar este membro"
msgid "john.doe@example.com, mary.moe@site.com"
msgstr "john.doe@example.com, mary.moe@site.com"
msgid "Send the invitations"
msgstr "Enviar os convites"
msgid "Download"
msgstr "Baixar"
msgid "Disabled Project History"
msgstr "Histórico do Projeto Desativado"
msgid "Disabled Project History & IP Address Recording"
msgstr "Histórico do Projeto Desativado & Gravação de Endereço IP"
msgid "Enabled Project History"
msgstr "Histórico do Projeto Ativado"
msgid "Disabled IP Address Recording"
msgstr "Gravação do Endereço IP Desativada"
msgid "Enabled Project History & IP Address Recording"
msgstr "Histórico do Projeto Ativado & Gravação do Endereço IP"
msgid "Enabled IP Address Recording"
msgstr "Gravação do Endereço IP Ativada"
msgid "History Settings Changed"
msgstr "Configurações do Histórico Alteradas"
msgid "changed"
msgstr "modificado"
msgid "from"
msgstr "de"
msgid "to"
msgstr "para"
msgid "Confirm Remove IP Adresses"
msgstr "Confirmar a remoção dos Endereços IP"
msgid ""
"Are you sure you want to delete all recorded IP addresses from this "
"project?\n"
" The rest of the project history will be unaffected. This "
"action cannot be undone."
msgstr ""
"Você tem certeza que deseja deletar todos os endereços IP gravados deste "
"projeto?\n"
" O resto do histórico do projeto não será afetado. Esta ação "
"não pode ser desfeita."
msgid "Close"
msgstr "Fechar"
msgid "Confirm Delete"
msgstr "Confirmar Exclusão"
msgid "Delete Confirmation"
msgstr "Deletar Confirmação"
msgid ""
"Are you sure you want to erase all history for this project? This action "
"cannot be undone."
msgstr ""
"Tem certeza que deseja apagar todo o histórico deste projeto? Esta ação não "
"pode ser desfeita."
msgid "Added"
msgstr "Adicionado"
msgid "Removed"
msgstr "Removido"
msgid "and"
msgstr "e"
msgid "owers list"
msgstr "lista de devedores"
#, python-format
msgid ""
"\n"
" <i>This project has history disabled. New actions won't "
"appear below. You can enable history on the</i>\n"
" <a href=\"%(url)s\">settings page</a>\n"
" "
msgstr ""
"\n"
" <i>Este projeto tem o histórico desativado. Novas ações não "
"serão exibidas abaixo. Você pode ativar o histórico na</i>\n"
" <a href=\"%(url)s\">página de configurações</a>\n"
" "
msgid ""
"\n"
" <i>The table below reflects actions recorded prior to "
"disabling project history. You can\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" "
"data-target=\"#confirm-erase\">clear project history</a> to remove "
"them.</i></p>\n"
" "
msgstr ""
"\n"
" <i>A tabela abaixo reflete as ações registradas antes da "
"desativação do histórico do projeto. Você pode\n"
" <a href=\"#\" data-toggle=\"modal\" data-keyboard=\"false\" data-"
"target=\"#confirm-erase\">limpar o histórico do projeto</a> para "
"removê-las.</i></p>\n"
" "
msgid ""
"Some entries below contain IP addresses, even though this project has IP "
"recording disabled. "
msgstr ""
"Algumas das entradas abaixo contém endereços IP, mesmo este projeto tendo a "
"gravação de IP desativada. "
msgid "Delete stored IP addresses"
msgstr "Deletar endereços IP salvos"
msgid "No history to erase"
msgstr "Não há histórico para apagar"
msgid "Clear Project History"
msgstr "Limpar Histórico do Projeto"
msgid "No IP Addresses to erase"
msgstr "Não há endereços IP para apagar"
msgid "Delete Stored IP Addresses"
msgstr "Deletar endereços IP salvos"
msgid "Time"
msgstr "Tempo"
msgid "Event"
msgstr "Evento"
msgid "IP address recording can be enabled on the settings page"
msgstr "A gravação do endereço IP pode ser ativada na página de configurações"
msgid "IP address recording can be disabled on the settings page"
msgstr ""
"A gravação do endereço IP pode ser desativada na página de configurações"
msgid "From IP"
msgstr "Do IP"
msgid "added"
msgstr "adicionado"
msgid "Project private code changed"
msgstr "Código privado do projeto alterado"
msgid "Project renamed to"
msgstr "Projeto renomeado para"
msgid "Project contact email changed to"
msgstr "O email de contato do projeto foi alterado para"
msgid "Project settings modified"
msgstr "Configurações do projeto alteradas"
msgid "deactivated"
msgstr "desativado"
msgid "reactivated"
msgstr "reativado"
msgid "renamed to"
msgstr "renomeado para"
msgid "External link changed to"
msgstr "Link externo alterado para"
msgid "Amount"
msgstr "Quantia"
#, python-format
msgid "Amount in %(currency)s"
msgstr "Quantia em %(currency)s"
msgid "modified"
msgstr "modificado"
msgid "removed"
msgstr "removido"
msgid "changed in a unknown way"
msgstr "modificado de maneira desconhecida"
msgid "Nothing to list"
msgstr "Nada a listar"
msgid "Someone probably cleared the project history."
msgstr "Alguém provavelmente limpou o histórico do projeto."
msgid "Manage your shared <br />expenses, easily"
msgstr "Modifique suas despesas <br />compartilhadas, facilmente"
msgid "Try out the demo"
msgstr "Experimente a demonstração"
msgid "You're sharing a house?"
msgstr "Você está dividindo uma casa?"
msgid "Going on holidays with friends?"
msgstr "Indo para o feriado com os amigos?"
msgid "Simply sharing money with others?"
msgstr "Simplesmente compartilhando dinheiro com outras pessoas?"
msgid "We can help!"
msgstr "Nós podemos ajudar!"
msgid "Log in to an existing project"
msgstr "Conecte-se em um projeto existente"
msgid "Log in"
msgstr "Conecte-se"
msgid "can't remember your password?"
msgstr "não consegue se lembrar da sua senha?"
msgid "Create"
msgstr "Criar"
msgid ""
"Don\\'t reuse a personal password. Choose a private code and send it to "
"your friends"
msgstr ""
"Não reutilize uma senha pessoal. Escolha um código privado e envie-o para "
"seus amigos"
msgid "Account manager"
msgstr "Gerenciador de contas"
msgid "Bills"
msgstr "Contas"
msgid "Settle"
msgstr "Estabelecer"
msgid "Statistics"
msgstr "Estatísticas"
msgid "History"
msgstr "Histórico"
msgid "Settings"
msgstr "Configurações"
msgid "Languages"
msgstr "Linguagens"
msgid "Projects"
msgstr "Projetos"
msgid "Start a new project"
msgstr "Começar um novo projeto"
msgid "Other projects :"
msgstr "Outros projetos:"
msgid "switch to"
msgstr "mudar para"
msgid "Dashboard"
msgstr "Painel de controle"
msgid "Logout"
msgstr "Sair"
msgid "Code"
msgstr "Código"
msgid "Mobile Application"
msgstr "Aplicação Mobile"
msgid "Documentation"
msgstr "Documentação"
msgid "Administation Dashboard"
msgstr "Painel de Administração"
msgid "\"I hate money\" is a free software"
msgstr "\"I hate money\" é um software livre"
msgid "you can contribute and improve it!"
msgstr "você pode contribuir para melhorá-lo!"
#, python-format
msgid "%(amount)s each"
msgstr "%(amount)s cada"
msgid "Invite people"
msgstr "Convidar pessoas"
msgid "You should start by adding participants"
msgstr "Você deveria começar adicionando pessoas"
msgid "Add a new bill"
msgstr "Adicionar uma nova conta"
msgid "Newer bills"
msgstr "Contas mais recentes"
msgid "Older bills"
msgstr "Contas mais antigas"
msgid "When?"
msgstr "Quando?"
msgid "Who paid?"
msgstr "Quem pagou?"
msgid "For what?"
msgstr "Para quê?"
msgid "How much?"
msgstr "Quanto?"
#, python-format
msgid "Added on %(date)s"
msgstr "Adicionado em %(date)s"
msgid "Everyone"
msgstr "Todos"
#, python-format
msgid "Everyone but %(excluded)s"
msgstr "Todos menos %(excluded)s"
msgid "No bills"
msgstr "Sem contas"
msgid "Nothing to list yet."
msgstr "Nada para listar ainda."
msgid "You probably want to"
msgstr "Você provavelmente gostaria de"
msgid "add a bill"
msgstr "adicionar uma conta"
msgid "add participants"
msgstr "adicionar participantes"
msgid "Password reminder"
msgstr "Lembrete de senha"
msgid ""
"A link to reset your password has been sent to you, please check your "
"emails."
msgstr ""
"Um link para redefinir sua senha foi enviado a você, por favor verifique "
"seus e-mails."
msgid "Return to home page"
msgstr "Retornar à pagina inicial"
msgid "Your projects"
msgstr "Seus projetos"
msgid "Reset your password"
msgstr "Redefinir sua senha"
msgid "Invite people to join this project"
msgstr "Convide pessoas para participar deste projeto"
msgid "Share Identifier & code"
msgstr "Compartilhar Identificador & código"
msgid ""
"You can share the project identifier and the private code by any "
"communication means."
msgstr ""
"Você pode compartilhar o identificador do projeto e o código privado por "
"qualquer meio de comunicação."
msgid "Identifier:"
msgstr "Identificador:"
msgid "Share the Link"
msgstr "Compartilhar o Link"
msgid "You can directly share the following link via your prefered medium"
msgstr ""
"Você pode compartilhar diretamente o seguinte link através do seu meio "
"preferido"
msgid "Send via Emails"
msgstr "Enviar via E-mails"
msgid ""
"Specify a (comma separated) list of email adresses you want to notify "
"about the\n"
" creation of this budget management project and we will "
"send them an email for you."
msgstr ""
"Especifica uma lista de endereços de email (separados por vírgula) que você "
"quer notificar acerca da\n"
" criação deste projeto de gestão de saldo e nós iremos enviar "
"um email por si."
msgid "Who pays?"
msgstr "Quem paga?"
msgid "To whom?"
msgstr "Para quem?"
msgid "Who?"
msgstr "Quem?"
msgid "Balance"
msgstr "Saldo"
msgid "deactivate"
msgstr "desativado"
msgid "reactivate"
msgstr "reativar"
msgid "Paid"
msgstr "Pago"
msgid "Spent"
msgstr "Gasto"
msgid "Expenses by Month"
msgstr "Gastos por Mês"
msgid "Period"
msgstr "Período"

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more