translation: Define new stings and continue translation

This commit is contained in:
2024-04-13 13:25:09 +02:00
parent 5d925ead67
commit 8cd326663c
15 changed files with 496 additions and 209 deletions

View File

@@ -10,7 +10,7 @@ from notfellchen.settings import host
def mail_admins_new_report(report):
subject = _("New report")
subject = _("Neue Meldung")
for moderator in Member.objects.filter(Q(trust_level=Member.MODERATOR) | Q(trust_level=Member.ADMIN)):
greeting = _("Moin,") + "\r\n"
new_report_text = _("es wurde eine Vermittlung gemeldet.") + "\r\n"

View File

@@ -23,7 +23,7 @@ class Image(models.Model):
class Species(models.Model):
"""Model representing a species of animal."""
name = models.CharField(max_length=200, help_text=_('Enter a animal species'),
name = models.CharField(max_length=200, help_text=_('Name der Tierart'),
verbose_name=_('Name'))
def __str__(self):
@@ -31,8 +31,8 @@ class Species(models.Model):
return self.name
class Meta:
verbose_name = _('Species')
verbose_name_plural = _('Species')
verbose_name = _('Tierart')
verbose_name_plural = _('Tierarten')
class Location(models.Model):
@@ -51,7 +51,7 @@ class Location(models.Model):
name = models.CharField(max_length=200)
postcode = models.CharField(max_length=200)
country = models.CharField(max_length=20, choices=COUNTRIES_CHOICES)
description = models.TextField(null=True, blank=True, verbose_name=_('Description'))
description = models.TextField(null=True, blank=True, verbose_name=_('Beschreibung'))
class RescueOrganization(models.Model):
@@ -59,11 +59,11 @@ class RescueOrganization(models.Model):
return f"{self.name}"
name = models.CharField(max_length=200)
trusted = models.BooleanField(default=False, verbose_name=_('Trusted'))
trusted = models.BooleanField(default=False, verbose_name=_('Vertrauenswürdig'))
location = models.ForeignKey(Location, on_delete=models.PROTECT)
instagram = models.URLField(null=True, blank=True, verbose_name=_('Instagram profile'))
facebook = models.URLField(null=True, blank=True, verbose_name=_('Facebook profile'))
fediverse_profile = models.URLField(null=True, blank=True, verbose_name=_('Fediverse profile'))
instagram = models.URLField(null=True, blank=True, verbose_name=_('Instagram Profil'))
facebook = models.URLField(null=True, blank=True, verbose_name=_('Facebook Profil'))
fediverse_profile = models.URLField(null=True, blank=True, verbose_name=_('Fediverse Profil'))
website = models.URLField(null=True, blank=True, verbose_name=_('Website'))
@@ -76,14 +76,14 @@ class AdoptionNotice(models.Model):
def __str__(self):
return f"{self.name}"
created_at = models.DateField(verbose_name=_('Created at'), default=datetime.now)
searching_since = models.DateField(verbose_name=_('Searching for a home since'))
created_at = models.DateField(verbose_name=_('Erstellt am'), default=datetime.now)
searching_since = models.DateField(verbose_name=_('Sucht nach einem Zuhause seit'))
name = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True, verbose_name=_('Description'))
description = models.TextField(null=True, blank=True, verbose_name=_('Beschreibung'))
organization = models.ForeignKey(RescueOrganization, blank=True, null=True, on_delete=models.SET_NULL,
verbose_name=_('Organization'))
further_information = models.URLField(null=True, blank=True, verbose_name=_('Link to further information'))
group_only = models.BooleanField(default=False, verbose_name=_('Only group adoption'))
verbose_name=_('Organisation'))
further_information = models.URLField(null=True, blank=True, verbose_name=_('Link zu mehr Informationen'))
group_only = models.BooleanField(default=False, verbose_name=_('Ausschließlich Gruppenadoption'))
photos = models.ManyToManyField(Image, blank=True)
@property
@@ -141,9 +141,9 @@ class Animal(models.Model):
FEMALE: "female",
}
date_of_birth = models.DateField(verbose_name=_('Date of birth'))
date_of_birth = models.DateField(verbose_name=_('Geburtsdatum'))
name = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True, verbose_name=_('Description'))
description = models.TextField(null=True, blank=True, verbose_name=_('Beschreibung'))
species = models.ForeignKey(Species, on_delete=models.PROTECT)
photos = models.ManyToManyField(Image, blank=True)
sex = models.CharField(max_length=20, choices=SEX_CHOICES, )
@@ -270,22 +270,22 @@ class ModerationAction(models.Model):
class Language(models.Model):
"""Model representing a Language (e.g. English, French, Japanese, etc.)"""
name = models.CharField(max_length=200,
help_text=_("Enter a natural languages name (e.g. English, French, Japanese etc.)."),
help_text=_("Der Name einer natürliche Sprache wie Deutsch, Englisch oder Arabisch."),
unique=True)
languagecode = models.CharField(max_length=10,
# Translators: This helptext includes an URL
help_text=_(
"Enter the language code for this language. For further information see http://www.i18nguy.com/unicode/language-identifiers.html"),
verbose_name=_('Language code'))
"Der standartisierte Sprachcode. Mehr Informationen: http://www.i18nguy.com/unicode/language-identifiers.html"),
verbose_name=_('Sprachcode'))
def __str__(self):
"""String for representing the Model object (in Admin site etc.)"""
return self.name
class Meta:
verbose_name = _('Language')
verbose_name_plural = _('Languages')
verbose_name = _('Sprache')
verbose_name_plural = _('Sprachen')
"""
@@ -320,14 +320,14 @@ class Member(models.Model):
MEMBER: "Mitglied",
}
user = models.OneToOneField(User, on_delete=models.CASCADE, verbose_name=_('User'))
user = models.OneToOneField(User, on_delete=models.CASCADE, verbose_name=_('Nutzer*in'))
preferred_language = models.ForeignKey(Language, on_delete=models.PROTECT, null=True, blank=True,
verbose_name=_('Preferred language'))
verbose_name=_('Bevorzugte Sprache'))
trust_level = models.CharField(choices=TRUES_LEVEL, max_length=100, default=MEMBER)
class Meta:
verbose_name = _('Member')
verbose_name_plural = _('Members')
verbose_name = _('Nutzer*in')
verbose_name_plural = _('Nutzer*innen')
@receiver(post_save, sender=User)
def add_member(sender, instance, created, raw, using, **kwargs):

View File

@@ -7,8 +7,8 @@
<div>
<table>
<tr>
<th>Alter</th>
<th>Geschlecht</th>
<th>{% translate "Alter" %}</th>
<th>{% translate "Geschlecht" %}</th>
</tr>
<tr>
<td>{{ animal.hr_age }}</td>
@@ -17,7 +17,7 @@
</table>
</div>
<p>{{ animal.description }}</p>
<h2>Bilder</h2>
<h2>{% translate "Bilder" %}</h2>
<div class="photos">
{% for image in animal.photos_list %}
<div class="card-photo">

View File

@@ -8,9 +8,9 @@
<p><strong>{% translate "E-Mail" %}:</strong> {{ member.user.email }}</p>
{% if member.preferred_language %}
<p><strong>{% translate "Language" %}:</strong> {{ member.preferred_language }}</p>
<p><strong>{% translate "Sprache" %}:</strong> {{ member.preferred_language }}</p>
{% else %}
<p>{% translate "No preferred language set." %}</p>
<p>{% translate "Keine bevorzugte Sprache gesetzt." %}</p>
{% endif %}
{% endblock %}

View File

@@ -3,17 +3,19 @@
{% block content %}
{% if form_complete %}
<h1>Erfolgreich gemeldet</h1>
Wenn du sehen willst welche Moderationsentscheidungen getroffen werden, schau zu einem späteren Zeitpunkt wieder
auf dieser Seite vorbei.
Wenn du unzufrieden mit der Entscheidung bist, kannst du per Mail an
<a href="mailto:info@notfellchen.org">info@notfellchen.org</a> Einspruch einlegen.
<h1>{% Erfolgreich gemeldet %}</h1>
{% blocktranslate %}
Wenn du sehen willst welche Moderationsentscheidungen getroffen werden, schau zu einem späteren Zeitpunkt
wieder auf dieser Seite vorbei.
Wenn du unzufrieden mit der Entscheidung bist, kannst du per Mail an
<a href="mailto:info@notfellchen.org">info@notfellchen.org</a> Einspruch einlegen.
{% endblocktranslate %}
{% endif %}
{% include "fellchensammlung/partials/partial-report.html" %}
<h2>Moderationsverlauf</h2>
<h2>{% translate "Moderationsverlauf" %}</h2>
{% if report.get_moderation_actions %}
{% include "fellchensammlung/lists/list-moderation-action.html" %}
{% else %}
Bisher wurden keine Maßnahmen vorgenommen
{% translate "Bisher wurden keine Maßnahmen vorgenommen" %}
{% endif %}
{% endblock %}

View File

@@ -9,14 +9,14 @@
<div class="table-adoption-notice-info">
<table>
<tr>
<th>Ort</th>
<th>Suchen seit</th>
<th>{% translate "Ort" %}</th>
<th>{% translate "Suchen seit" %}</th>
</tr>
<tr>
{% if adoption_notice.location %}
<td>{{ adoption_notice.location.name }}, {{ adoption_notice.location.postcode }}</td>
{% else %}
<td>Kein Ort angegeben</td>
<td>{% translate "Kein Ort angegeben" %}</td>
{% endif %}
<td>{{ adoption_notice.searching_since }}</td>
</tr>
@@ -26,7 +26,7 @@
{% if adoption_notice.description %}
{{ adoption_notice.description }}
{% else %}
Keine Beschreibung angegeben
{% translate "Keine Beschreibung angegeben" %}
{% endif %}
</p>

View File

@@ -2,11 +2,11 @@
{% load i18n %}
{% block content %}
<h1>Melden</h1>
<h1>{% translate "Melden" %}</h1>
Wenn diese Vermittlung nicht unseren <a href='{% url "about" %}'>Regeln</a> entspricht, wähle bitte eine der folgenden Regeln aus und hinterlasse einen Kommentar der es detaillierter erklärt, insbesondere wenn der Regelverstoß nicht offensichtlich ist.
<form method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button class="button-report" type="submit">Melden</button>
<button class="button-report" type="submit">{% translate "Melden" %}</button>
</form>
{% endblock %}

View File

@@ -2,12 +2,14 @@
{% load i18n %}
{% block content %}
<h1>Vermitteln</h1>
<h1>{% translate "Vermitteln" %}</h1>
{% blocktranslate %}
Bitte mach dich zunächst mit unseren Regeln vertraut. Dann trage hier die ersten Informationen ein.
Du bekommst in einem weiteren Schritt die Möglichkeit einzelne Tiere zu deiner Vermittlung hinzuzufügen und Fotos hochzuladen.
{% endblocktranslate %}
<form method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Weiter</button>
<button type="submit">{% translate "Weiter" %}</button>
</form>
{% endblock %}

View File

@@ -2,19 +2,23 @@
{% load i18n %}
{% block content %}
<h1>Vermitteln</h1>
Hier kannst du jetzt einzelne Tiere zu deiner Vermittlung hinzufügen. Lad auch gerne Fotos hoch. Gruppenfotos kannst
du im nächsten Schritt hochladen.
<h1>{% translate "Vermitteln" %}</h1>
{% blocktranslate %}
Hier kannst du jetzt einzelne Tiere zu deiner Vermittlung hinzufügen. Lad auch gerne Fotos hoch. Gruppenfotos
kannst
du im nächsten Schritt hochladen.
{% endblocktranslate %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-animal">
{{ form.as_p }}
</div>
<div class="form-image">
<h2>Bild hinzufügen</h2>
<h2>{% translate "Bild hinzufügen" %}</h2>
{{ image_form.as_p }}
</div>
<button name="button_add_another_animal" type="submit">Speichern und nächstes Tier hinzufügen</button>
<button name="button_save_and_continue" type="submit">Speichern und weiter</button>
<button name="button_add_another_animal"
type="submit">{% translate "Speichern und nächstes Tier hinzufügen" %}</button>
<button name="button_save_and_continue" type="submit">{% translate "Speichern und weiter" %}</button>
</form>
{% endblock %}

View File

@@ -1,25 +1,27 @@
{% load custom_tags %}
{% load i18n %}
<div class="card-adoption-notice">
<div>
<div class="header-card-adoption-notice">
<h1><a href="{{ adoption_notice.get_absolute_url }}"> {{ adoption_notice.name }}</a></h1>
<a href="{{ adoption_notice.get_report_url }}">Melden</a>
<a href="{{ adoption_notice.get_report_url }}">{% translate "Melden" %}</a>
</div>
<p><b>Notfellchen:</b> {{ adoption_notice.animals.all|join_link:", " | safe }}
<p><b>{% translate "Notfellchen" %}:</b> {{ adoption_notice.animals.all|join_link:", " | safe }}
</p>
<p>
<b>Ort</b>
{% if adoption_notice.location %}
{{ adoption_notice.location }}
{% else %}
Keine Ort angegeben
{% translate "Keine Ort angegeben" %}
{% endif %}
</p>
<p>
{% if adoption_notice.description %}
{{ adoption_notice.description }}
{% else %}
Keine Beschreibung
{% translate "Keine Beschreibung" %}
{% endif %}
</p>
{% if adoption_notice.get_photo %}
@@ -29,7 +31,7 @@
alt="{{ adoption_notice.get_photo.alt_text }}">
</div>
{% else %}
No photo
{% translate "Keine Foto" %}
{% endif %}
</div>
</div>

View File

@@ -1,3 +1,4 @@
{% load i18n %}
<div class="card-animal">
<div class="detail-animal-header">
<h1>{{ animal.name }}</h1>
@@ -8,6 +9,6 @@
<img src="/media/{{ animal.get_photo.image }}" alt="{{ animal.get_photo.alt_text }}">
</div>
{% else %}
No photos
{% translate "Keine Foto" %}
{% endif %}
</div>

View File

@@ -1,4 +1,5 @@
{% load i18n %}
<div class="card-animal">
<div class="tag">{{ moderation_action.action }}</div>
<div class="tag">{{ moderation_action.action }}</div>
<p>{{ moderation_action.public_comment }}</p>
</div>

View File

@@ -1,14 +1,19 @@
{% load i18n %}
<div class="report">
<h2>Meldung von {{ report.adoption_notice.name }}</h2>
<h2>
{% blocktranslate %}
Meldung von {{ report.adoption_notice.name }}
{% endblocktranslate %}
</h2>
{% if report.reported_broken_rules %}
Regeln gegen die Verstoßen wurde
<ul>
{% for rule in report.get_reported_rules %}
<li>{{ rule }}</li>
{% endfor %}
</ul>
{% translate "Regeln gegen die Verstoßen wurde" %}
<ul>
{% for rule in report.get_reported_rules %}
<li>{{ rule }}</li>
{% endfor %}
</ul>
{% endif %}
<p><b>Kommentar zur Meldung:</b>
<p><b>{% translate "Kommentar zur Meldung" %}:</b>
{{ report.comment }}
</p>
</div>