diff --git a/alliance_auth/urls.py b/alliance_auth/urls.py index 9f3c2a64..5ccbc7dc 100755 --- a/alliance_auth/urls.py +++ b/alliance_auth/urls.py @@ -36,9 +36,6 @@ urlpatterns = [ url(r'^sso/', include(esi.urls, namespace='esi')), url(r'^sso/login$', authentication.views.sso_login, name='auth_sso_login'), - # Corputils - url(r'^corpstats/', include(corputils.urls, namespace='corputils')), - # Index url(_(r'^$'), authentication.views.index_view, name='auth_index'), @@ -107,6 +104,9 @@ urlpatterns += i18n_patterns( url(_(r'^refresh_api_pair/([0-9]+)/$'), eveonline.views.user_refresh_api, name='auth_user_refresh_api'), url(_(r'^delete_api_pair/(\w+)/$'), eveonline.views.api_key_removal, name='auth_api_key_removal'), url(_(r'^characters/'), eveonline.views.characters_view, name='auth_characters'), + + # Corputils + url(_(r'^corpstats/'), include(corputils.urls, namespace='corputils')), # Group management url(_(r'^groups/'), groupmanagement.views.groups_view, name='auth_groups'), diff --git a/authentication/views.py b/authentication/views.py index 8663cd81..14e237d7 100644 --- a/authentication/views.py +++ b/authentication/views.py @@ -4,6 +4,7 @@ from django.contrib.auth import logout from django.contrib.auth import authenticate from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required +from django.utils.translation import ugettext_lazy as _ from eveonline.managers import EveManager from eveonline.models import EveCharacter from authentication.models import AuthServicesInfo @@ -34,10 +35,10 @@ def login_user(request): return redirect(redirect_to) else: logger.info("Login attempt failed for user %s: user marked inactive." % user) - messages.warning(request, 'Your account has been disabled.') + messages.warning(request, _('Your account has been disabled.')) else: logger.info("Failed login attempt: provided username %s" % form.cleaned_data['username']) - messages.error(request, 'Username/password invalid.') + messages.error(request, _('Username/password invalid.')) return render(request, 'public/login.html', context={'form': form}) else: logger.debug("Providing new login form.") @@ -68,7 +69,7 @@ def register_user_view(request): user.save() logger.info("Created new user %s" % user) login(request, user) - messages.warning(request, 'Add an API key to set up your account.') + messages.warning(request, _('Add an API key to set up your account.')) return redirect("auth_dashboard") else: @@ -106,10 +107,10 @@ def sso_login(request, token): token.save() return redirect('auth_dashboard') else: - messages.error(request, 'Your account has been disabled.') + messages.error(request, _('Your account has been disabled.')) else: messages.warning(request, - 'Authenticated character has no owning account. Please log in with username and password.') + _('Authenticated character has no owning account. Please log in with username and password.')) except EveCharacter.DoesNotExist: - messages.error(request, 'No account exists with the authenticated character. Please create an account first.') + messages.error(request, _('No account exists with the authenticated character. Please create an account first.')) return redirect(login_user) diff --git a/corputils/templates/corputils/base.html b/corputils/templates/corputils/base.html index 476a5974..e93921fa 100644 --- a/corputils/templates/corputils/base.html +++ b/corputils/templates/corputils/base.html @@ -10,7 +10,7 @@
diff --git a/corputils/templates/corputils/corpstats.html b/corputils/templates/corputils/corpstats.html index 48a70eb5..eba8958a 100644 --- a/corputils/templates/corputils/corpstats.html +++ b/corputils/templates/corputils/corpstats.html @@ -38,10 +38,10 @@
-

Members

+

{% trans "Members" %}

- Last update: {{ corpstats.last_updated|naturaltime }} + {% trans "Last update:" %} {{ corpstats.last_updated|naturaltime }} {% if corpstats.can_update %} @@ -57,14 +57,14 @@ - + {% if corpstats.show_apis %} {% endif %} - - - - + + + + {% for member in members %} diff --git a/corputils/templates/corputils/search.html b/corputils/templates/corputils/search.html index 9345b9eb..413fb0ea 100644 --- a/corputils/templates/corputils/search.html +++ b/corputils/templates/corputils/search.html @@ -5,7 +5,7 @@ {% block member_data %}
-
Search Results
+
{% trans "Search Results" %}
@@ -14,13 +14,13 @@
Character{% trans "Character" %}APIzKillboardMain CharacterMain CorporationMain Alliance{% trans "zKillboard" %}{% trans "Main Character" %}{% trans "Main Corporation" %}{% trans "Main Alliance" %}
- - - - - - - + + + + + + + {% for result in results %} diff --git a/corputils/views.py b/corputils/views.py index b98613f9..9374a28d 100644 --- a/corputils/views.py +++ b/corputils/views.py @@ -6,6 +6,7 @@ from django.contrib import messages from django.core.exceptions import PermissionDenied from django.db import IntegrityError from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger +from django.utils.translation import ugettext_lazy as _ from django.conf import settings from eveonline.models import EveCharacter, EveCorporationInfo from corputils.models import CorpStats @@ -50,11 +51,11 @@ def corpstats_add(request, token): if CorpStats.objects.filter(pk=cs.pk).visible_to(request.user).exists(): return redirect('corputils:view_corp', corp_id=corp.corporation_id) except EveCorporationInfo.DoesNotExist: - messages.error(request, 'Unrecognized corporation. Please ensure it is a member of the alliance or a blue.') + messages.error(request, _('Unrecognized corporation. Please ensure it is a member of the alliance or a blue.')) except IntegrityError: - messages.error(request, 'Selected corp already has a statistics module.') + messages.error(request, _('Selected corp already has a statistics module.')) except AssertionError: - messages.error(request, 'Failed to gather corporation statistics with selected token.') + messages.error(request, _('Failed to gather corporation statistics with selected token.')) return redirect('corputils:view') diff --git a/eveonline/views.py b/eveonline/views.py index e490b257..ae585464 100755 --- a/eveonline/views.py +++ b/eveonline/views.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.shortcuts import render, redirect, get_object_or_404 from django.contrib.auth.decorators import login_required from django.contrib import messages +from django.utils.translation import ugettext_lazy as _ from eveonline.forms import UpdateKeyForm from eveonline.managers import EveManager from authentication.managers import AuthServicesInfoManager @@ -49,7 +50,7 @@ def add_api_key(request): not EveCharacter.objects.filter(character_id=c.id).exists()] logger.info("Successfully processed api add form for user %s" % request.user) if not settings.API_SSO_VALIDATION: - messages.success(request, 'Added API key %s to your account.' % form.cleaned_data['api_id']) + messages.success(request, _('Added API key %(apiid)s to your account.') % {"apiid": form.cleaned_data['api_id']}) auth = AuthServicesInfo.objects.get(user=request.user) if not auth.main_char_id: return redirect('auth_characters') @@ -73,11 +74,11 @@ def api_sso_validate(request, token, api_id): api = get_object_or_404(EveApiKeyPair, api_id=api_id) if api.user and api.user != request.user: logger.warning('User %s attempting to take ownership of api %s from %s' % (request.user, api_id, api.user)) - messages.warning(request, 'API %s already claimed by user %s' % (api_id, api.user)) + messages.warning(request, _('API %(apiid)s already claimed by user %(user)s') % {"apiid": api_id, "user": api.user}) return redirect('auth_dashboard') elif api.sso_verified: logger.debug('API %s has already been verified.' % api_id) - messages.info(request, 'API %s has already been verified' % api_id) + messages.info(request, _('API %(apiid)s has already been verified') % {"apiid": api_id}) return redirect('auth_dashboard') logger.debug('API %s has not been verified. Checking if token for %s matches.' % (api_id, token.character_name)) characters = EveApiManager.get_characters_from_api(api.api_id, api.api_key).result @@ -86,14 +87,14 @@ def api_sso_validate(request, token, api_id): api.sso_verified = True api.save() EveCharacter.objects.filter(character_id__in=characters).update(user=request.user, api_id=api_id) - messages.success(request, 'Confirmed ownership of API %s' % api.api_id) + messages.success(request, _('Confirmed ownership of API %(apiid)s') % {"apiid": api.api_id}) auth = AuthServicesInfo.objects.get(user=request.user) if not auth.main_char_id: return redirect('auth_characters') return redirect('auth_dashboard') else: - messages.warning(request, '%s not found on API %s. Please SSO as a character on the API.' % ( - token.character_name, api.api_id)) + messages.warning(request, _('%(character)s not found on API %(apiid)s. Please SSO as a character on the API.') % { + "character": token.character_name, "apiid": api.api_id}) return render(request, 'registered/apisso.html', context={'api': api}) @@ -127,7 +128,7 @@ def api_key_removal(request, api_id): authinfo = AuthServicesInfo.objects.get(user=request.user) EveManager.delete_api_key_pair(api_id, request.user.id) EveManager.delete_characters_by_api_id(api_id, request.user.id) - messages.success(request, 'Deleted API key %s' % api_id) + messages.success(request, _('Deleted API key %(apiid)s') % {"apiid": api_id}) logger.info("Succesfully processed api delete request by user %s for api %s" % (request.user, api_id)) if not EveCharacter.objects.filter(character_id=authinfo.main_char_id).exists(): authinfo.main_char_id = None @@ -150,10 +151,10 @@ def main_character_change(request, char_id): if EveCharacter.objects.filter(character_id=char_id).exists() and EveCharacter.objects.get( character_id=char_id).user == request.user: AuthServicesInfoManager.update_main_char_id(char_id, request.user) - messages.success(request, 'Changed main character ID to %s' % char_id) + messages.success(request, _('Changed main character ID to %(charid)s') % {"charid": char_id}) set_state(request.user) return redirect("auth_dashboard") - messages.error(request, 'Failed to change main character - selected character is not owned by your account.') + messages.error(request, _('Failed to change main character - selected character is not owned by your account.')) return redirect("auth_characters") @@ -164,12 +165,12 @@ def user_refresh_api(request, api_id): api_key_pair = EveApiKeyPair.objects.get(api_id=api_id) if api_key_pair.user == request.user: refresh_api(api_key_pair) - messages.success(request, 'Refreshed API key %s' % api_id) + messages.success(request, _('Refreshed API key %(apiid)s') % {"apiid": api_id}) set_state(request.user) else: - messages.warning(request, 'You are not authorized to refresh that API key.') + messages.warning(request, _('You are not authorized to refresh that API key.')) logger.warn("User %s not authorized to refresh api id %s" % (request.user, api_id)) else: - messages.warning(request, 'Unable to locate API key %s' % api_id) + messages.warning(request, _('Unable to locate API key %(apiid)s') % {"apiid": api_id}) logger.warn("User %s unable to refresh api id %s - api key not found" % (request.user, api_id)) return redirect("auth_dashboard") diff --git a/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html b/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html index b976c4df..67d76c67 100644 --- a/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html +++ b/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html @@ -1,8 +1,9 @@ {% extends 'public/base.html' %} +{% load i18n %} {% block title %}Fleet Participation{% endblock %} -{% block page_title %}Fleet Participation{% endblock %} +{% block page_title %}{% trans "Fleet Participation" %}{% endblock %}
-

Character not found!

+

{% trans "Character not found!" %}

@@ -13,8 +14,8 @@
- - This character is not part of any registered API-key. You must go to API key management and add an API with the character on before being able to click fleet attendance links. + + {% trans "This character is not part of any registered API-key. You must go to" %} {% trans "API key management and add an API with the character on before being able to click fleet attendance links." %}
diff --git a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html index aba5c80c..d30ac0f4 100644 --- a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html +++ b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html @@ -8,7 +8,7 @@ {% block content %}
-

{% blocktrans %}Edit fatlink "{{ fatlink }}"{% endblocktrans %} +

{% trans "Edit fatlink" %} "{{ fatlink }}"

{% if fat.station != "No Station" %} - + {% else %} {% endif %} diff --git a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html index 175e18d8..baa7dace 100644 --- a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html +++ b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html @@ -8,7 +8,7 @@ {% block content %}
-

{% trans "Participation data statistics for" %} {{ month }}, {{ year }} +

{% blocktrans %}Participation data statistics for {{ month }}, {{ year }}{% endblocktrans %} {% if char_id %}
{% trans "Previous month" %} diff --git a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html index 7be60991..18cec487 100644 --- a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html +++ b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html @@ -8,7 +8,7 @@ {% block content %}
-

{% trans "Participation data statistics for" %} {{ year }} +

{% blocktrans %}Participation data statistics for {{ year }}{% endblocktrans %}
{% trans "Previous year" %} {% if next_year %} diff --git a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html index c92680b7..ed85490a 100644 --- a/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html +++ b/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html @@ -36,7 +36,7 @@

{% if fat.station != "No Station" %} - + {% else %} {% endif %} @@ -46,7 +46,7 @@ {% endfor %}
CharacterCorporationAPIzKillboardMain CharacterMain CorporationMain Alliance{% trans "Character" %}{% trans "Corporation" %}{% trans "API" %}{% trans "zKillboard" %}{% trans "Main Character" %}{% trans "Main Corporation" %}{% trans "Main Alliance" %}
{{ fat.user }} {{ fat.character.character_name }}Docked in {{ fat.system }}{% blocktrans %}Docked in {{ fat.system }}{% endblocktrans %}{{ fat.system }}{{ fat.fatlink.name }} {{ fat.character.character_name }}Docked in {{ fat.system }}{% blocktrans %}Docked in {{ fat.system }}{% endblocktrans %}{{ fat.system }}
{% else %} -
No fleet activity on record.
+
{% trans "No fleet activity on record." %}
{% endif %} {% if perms.auth.fleetactivitytracking%} @@ -95,7 +95,7 @@ {% else %} -
No created fatlinks on record.
+
{% trans "No created fatlinks on record." %}
{% endif %} {% endif %}
diff --git a/fleetactivitytracking/views.py b/fleetactivitytracking/views.py index 9fd3df75..2c3cd203 100644 --- a/fleetactivitytracking/views.py +++ b/fleetactivitytracking/views.py @@ -5,6 +5,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import permission_required from django.core.exceptions import ValidationError +from django.utils.translation import ugettext_lazy as _ from django.utils import timezone from django.contrib import messages from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger @@ -233,7 +234,7 @@ def click_fatlink_view(request, token, hash, fatname): try: fat.full_clean() fat.save() - messages.success(request, 'Fleet participation registered.') + messages.success(request, _('Fleet participation registered.')) except ValidationError as e: err_messages = [] for errorname, message in e.message_dict.items(): @@ -244,9 +245,9 @@ def click_fatlink_view(request, token, hash, fatname): 'character_name': token.character_name} return render(request, 'fleetactivitytracking/characternotexisting.html', context=context) else: - messages.error(request, 'FAT link has expired.') + messages.error(request, _('FAT link has expired.')) except (ObjectDoesNotExist, KeyError): - messages.error(request, 'Invalid FAT link.') + messages.error(request, _('Invalid FAT link.')) return redirect('auth_fatlink_view') diff --git a/groupmanagement/views.py b/groupmanagement/views.py index 9f1a3a34..30fa5995 100755 --- a/groupmanagement/views.py +++ b/groupmanagement/views.py @@ -14,6 +14,7 @@ from groupmanagement.models import GroupRequest from authentication.models import AuthServicesInfo from authentication.managers import UserState from eveonline.managers import EveManager +from django.utils.translation import ugettext_lazy as _ import logging @@ -119,12 +120,12 @@ def group_membership_remove(request, group_id, user_id): # Remove group from user user.groups.remove(group) logger.info("User %s removed user %s from group %s" % (request.user, user, group)) - messages.success(request, "Removed user %s from group %s" % (user, group)) + messages.success(request, _("Removed user %(user)s from group %(group)s.") % {"user": user, "group": group}) except ObjectDoesNotExist: - messages.warning(request, "User does not exist in that group") + messages.warning(request, _("User does not exist in that group")) except ObjectDoesNotExist: - messages.warning(request, "Group does not exist") + messages.warning(request, _("Group does not exist")) return redirect('auth_group_membership_list', group_id) @@ -149,15 +150,14 @@ def group_accept_request(request, group_request_id): notify(group_request.user, "Group Application Accepted", level="success", message="Your application to %s has been accepted." % group_request.group) messages.success(request, - 'Accepted application from %s to %s.' % (group_request.main_char, group_request.group)) + _('Accepted application from %(mainchar)s to %(group)s.') % {"mainchar": group_request.main_char, "group": group_request.group}) except PermissionDenied as p: logger.warning("User %s attempted to accept group join request %s but permission was denied" % (request.user, group_request_id)) raise p except: - messages.error(request, 'An unhandled error occurred while processing the application from %s to %s.' % ( - group_request.main_char, group_request.group)) + messages.error(request, _('An unhandled error occurred while processing the application from %(mainchar)s to %(group)s.') % {"mainchar": group_request.main_char, "group": group_request.group}) logger.exception("Unhandled exception occurred while user %s attempting to accept grouprequest id %s." % ( request.user, group_request_id)) pass @@ -182,15 +182,14 @@ def group_reject_request(request, group_request_id): notify(group_request.user, "Group Application Rejected", level="danger", message="Your application to %s has been rejected." % group_request.group) messages.success(request, - 'Rejected application from %s to %s.' % (group_request.main_char, group_request.group)) + _('Rejected application from %(mainchar)s to %(group)s.') % {"mainchar": group_request.main_char, "group": group_request.group}) except PermissionDenied as p: logger.warning("User %s attempted to reject group join request %s but permission was denied" % (request.user, group_request_id)) raise p except: - messages.error(request, 'An unhandled error occured while processing the application from %s to %s.' % ( - group_request.main_char, group_request.group)) + messages.error(request, _('An unhandled error occurred while processing the application from %(mainchar)s to %(group)s.') % {"mainchar": group_request.main_char, "group": group_request.group}) logger.exception("Unhandled exception occured while user %s attempting to reject group request id %s" % ( request.user, group_request_id)) pass @@ -218,14 +217,14 @@ def group_leave_accept_request(request, group_request_id): notify(group_request.user, "Group Leave Request Accepted", level="success", message="Your request to leave %s has been accepted." % group_request.group) messages.success(request, - 'Accepted application from %s to leave %s.' % (group_request.main_char, group_request.group)) + _('Accepted application from %(mainchar)s to leave %(group)s.') % {"mainchar": group_request.main_char, "group": group_request.group}) except PermissionDenied as p: logger.warning("User %s attempted to accept group leave request %s but permission was denied" % (request.user, group_request_id)) raise p except: - messages.error(request, 'An unhandled error occured while processing the application from %s to leave %s.' % ( - group_request.main_char, group_request.group)) + messages.error(request, _('An unhandled error occured while processing the application from %(mainchar)s to leave %(group)s.') % { + "mainchar": group_request.main_char, "group": group_request.group}) logger.exception("Unhandled exception occured while user %s attempting to accept group leave request id %s" % ( request.user, group_request_id)) pass @@ -250,15 +249,15 @@ def group_leave_reject_request(request, group_request_id): request.user, group_request.user, group_request.group.name)) notify(group_request.user, "Group Leave Request Rejected", level="danger", message="Your request to leave %s has been rejected." % group_request.group) - messages.success(request, 'Rejected application from %s to leave %s.' % ( - group_request.main_char, group_request.group)) + messages.success(request, _('Rejected application from %(mainchar)s to leave %(group)s.') % { + "mainchar": group_request.main_char, "group": group_request.group}) except PermissionDenied as p: logger.warning("User %s attempted to reject group leave request %s but permission was denied" % (request.user, group_request_id)) raise p except: - messages.error(request, 'An unhandled error occured while processing the application from %s to leave %s.' % ( - group_request.main_char, group_request.group)) + messages.error(request, _('An unhandled error occured while processing the application from %(mainchar)s to leave %(group)s.') % { + "mainchar": group_request.main_char, "group": group_request.group}) logger.exception("Unhandled exception occured while user %s attempting to reject group leave request id %s" % ( request.user, group_request_id)) pass @@ -296,7 +295,7 @@ def group_request_add(request, group_id): if not GroupManager.joinable_group(group): logger.warning("User %s attempted to join group id %s but it is not a joinable group" % (request.user, group_id)) - messages.warning(request, "You cannot join that group") + messages.warning(request, _("You cannot join that group")) return redirect('auth_groups') if not request.user.has_perm('groupmanagement.request_groups') and not group.authgroup.public: # Does not have the required permission, trying to join a non-public group @@ -317,7 +316,7 @@ def group_request_add(request, group_id): grouprequest.leave_request = False grouprequest.save() logger.info("Created group request for user %s to group %s" % (request.user, Group.objects.get(id=group_id))) - messages.success(request, 'Applied to group %s.' % group) + messages.success(request, _('Applied to group %(group)s.') % {"group": group}) return redirect("auth_groups") @@ -328,12 +327,12 @@ def group_request_leave(request, group_id): if not GroupManager.joinable_group(group): logger.warning("User %s attempted to leave group id %s but it is not a joinable group" % (request.user, group_id)) - messages.warning(request, "You cannot leave that group") + messages.warning(request, _("You cannot leave that group")) return redirect('auth_groups') if group not in request.user.groups.all(): logger.debug("User %s attempted to leave group id %s but they are not a member" % (request.user, group_id)) - messages.warning(request, "You are not a member of that group") + messages.warning(request, _("You are not a member of that group")) return redirect('auth_groups') if group.authgroup.open: logger.info("%s leaving %s as is an open group" % (request.user, group)) @@ -348,5 +347,5 @@ def group_request_leave(request, group_id): grouprequest.leave_request = True grouprequest.save() logger.info("Created group leave request for user %s to group %s" % (request.user, Group.objects.get(id=group_id))) - messages.success(request, 'Applied to leave group %s.' % group) + messages.success(request, _('Applied to leave group %(group)s.') % {"group": group}) return redirect("auth_groups") diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index bc43249b..1d8276ac 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index c428bbe2..d5b4a232 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-06-16 18:15+0000\n" +"POT-Creation-Date: 2017-02-03 17:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,899 +15,1176 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: alliance_auth/settings.py:83 +#: alliance_auth/settings.py:104 alliance_auth/tests/test_settings.py:92 msgid "English" msgstr "Englisch" -#: alliance_auth/settings.py:84 +#: alliance_auth/settings.py:105 alliance_auth/tests/test_settings.py:93 msgid "German" msgstr "Deutsch" -#: alliance_auth/urls.py:19 +#: alliance_auth/urls.py:39 msgid "^$" msgstr "" -#: alliance_auth/urls.py:155 +#: alliance_auth/urls.py:82 msgid "^login_user/" msgstr "" -#: alliance_auth/urls.py:156 +#: alliance_auth/urls.py:83 msgid "^register_user/" msgstr "" -#: alliance_auth/urls.py:158 +#: alliance_auth/urls.py:85 msgid "^user/password/$" msgstr "" -#: alliance_auth/urls.py:159 +#: alliance_auth/urls.py:86 msgid "^user/password/done/$" msgstr "" -#: alliance_auth/urls.py:161 +#: alliance_auth/urls.py:88 msgid "^user/password/reset/$" msgstr "" -#: alliance_auth/urls.py:163 +#: alliance_auth/urls.py:90 msgid "^user/password/password/reset/done/$" msgstr "" -#: alliance_auth/urls.py:165 +#: alliance_auth/urls.py:92 msgid "^user/password/reset/complete/$" msgstr "" -#: alliance_auth/urls.py:167 +#: alliance_auth/urls.py:94 msgid "" "^user/password/reset/confirm/(?P[0-9A-Za-z_\\-]+)/(?P.+)/$" msgstr "" -#: alliance_auth/urls.py:171 +#: alliance_auth/urls.py:98 msgid "^dashboard/$" msgstr "" -#: alliance_auth/urls.py:172 +#: alliance_auth/urls.py:99 msgid "^help/$" msgstr "" -#: alliance_auth/urls.py:175 +#: alliance_auth/urls.py:102 msgid "^add_api_key/" msgstr "" -#: alliance_auth/urls.py:176 -msgid "^api_key_management/" -msgstr "" - -#: alliance_auth/urls.py:178 +#: alliance_auth/urls.py:103 msgid "^refresh_api_pair/([0-9]+)/$" msgstr "" -#: alliance_auth/urls.py:179 +#: alliance_auth/urls.py:104 msgid "^delete_api_pair/(\\w+)/$" msgstr "" -#: alliance_auth/urls.py:180 +#: alliance_auth/urls.py:105 msgid "^characters/" msgstr "" -#: alliance_auth/urls.py:183 +#: alliance_auth/urls.py:108 +msgid "^corpstats/" +msgstr "" + +#: alliance_auth/urls.py:111 msgid "^groups/" msgstr "" -#: alliance_auth/urls.py:184 +#: alliance_auth/urls.py:112 msgid "^group/management/" msgstr "" -#: alliance_auth/urls.py:186 +#: alliance_auth/urls.py:114 +msgid "^group/membership/$" +msgstr "" + +#: alliance_auth/urls.py:116 +msgid "^group/membership/(\\w+)/$" +msgstr "" + +#: alliance_auth/urls.py:118 +msgid "^group/membership/(\\w+)/remove/(\\w+)/$" +msgstr "" + +#: alliance_auth/urls.py:120 msgid "^group/request_add/(\\w+)" msgstr "" -#: alliance_auth/urls.py:188 +#: alliance_auth/urls.py:122 msgid "^group/request/accept/(\\w+)" msgstr "" -#: alliance_auth/urls.py:190 +#: alliance_auth/urls.py:124 msgid "^group/request/reject/(\\w+)" msgstr "" -#: alliance_auth/urls.py:193 +#: alliance_auth/urls.py:127 msgid "^group/request_leave/(\\w+)" msgstr "" -#: alliance_auth/urls.py:195 +#: alliance_auth/urls.py:129 msgid "group/leave_request/accept/(\\w+)" msgstr "" -#: alliance_auth/urls.py:197 +#: alliance_auth/urls.py:131 msgid "^group/leave_request/reject/(\\w+)" msgstr "" -#: alliance_auth/urls.py:201 +#: alliance_auth/urls.py:135 msgid "^hr_application_management/" msgstr "" -#: alliance_auth/urls.py:203 +#: alliance_auth/urls.py:137 msgid "^hr_application_create/$" msgstr "" -#: alliance_auth/urls.py:205 +#: alliance_auth/urls.py:139 msgid "^hr_application_create/(\\d+)" msgstr "" -#: alliance_auth/urls.py:207 +#: alliance_auth/urls.py:141 msgid "^hr_application_remove/(\\w+)" msgstr "" -#: alliance_auth/urls.py:209 +#: alliance_auth/urls.py:143 msgid "hr_application_view/(\\w+)" msgstr "" -#: alliance_auth/urls.py:211 +#: alliance_auth/urls.py:145 msgid "hr_application_personal_view/(\\w+)" msgstr "" -#: alliance_auth/urls.py:213 +#: alliance_auth/urls.py:147 msgid "hr_application_personal_removal/(\\w+)" msgstr "" -#: alliance_auth/urls.py:216 +#: alliance_auth/urls.py:150 msgid "hr_application_approve/(\\w+)" msgstr "" -#: alliance_auth/urls.py:218 +#: alliance_auth/urls.py:152 msgid "hr_application_reject/(\\w+)" msgstr "" -#: alliance_auth/urls.py:220 +#: alliance_auth/urls.py:154 msgid "hr_application_search/" msgstr "" -#: alliance_auth/urls.py:222 +#: alliance_auth/urls.py:156 msgid "hr_mark_in_progress/(\\w+)" msgstr "" -#: alliance_auth/urls.py:226 +#: alliance_auth/urls.py:160 msgid "^optimer/$" msgstr "" -#: alliance_auth/urls.py:227 +#: alliance_auth/urls.py:161 msgid "^add_optimer/$" msgstr "" -#: alliance_auth/urls.py:228 +#: alliance_auth/urls.py:162 msgid "^remove_optimer/(\\w+)" msgstr "" -#: alliance_auth/urls.py:229 +#: alliance_auth/urls.py:163 msgid "^edit_optimer/(\\w+)$" msgstr "" -#: alliance_auth/urls.py:232 +#: alliance_auth/urls.py:166 msgid "^services/$" msgstr "" -#: alliance_auth/urls.py:233 -msgid "^services/jabber_broadcast/$" -msgstr "" - -#: alliance_auth/urls.py:240 -msgid "^corputils/$" -msgstr "" - -#: alliance_auth/urls.py:241 -msgid "^corputils/(?P[0-9]+)/$" -msgstr "" - -#: alliance_auth/urls.py:242 -msgid "^corputils/search/$" -msgstr "" - -#: alliance_auth/urls.py:243 -msgid "^corputils/search/(?P[0-9]+)/$" -msgstr "" - -#: alliance_auth/urls.py:246 +#: alliance_auth/urls.py:169 msgid "^timers/$" msgstr "" -#: alliance_auth/urls.py:247 +#: alliance_auth/urls.py:170 msgid "^add_timer/$" msgstr "" -#: alliance_auth/urls.py:248 +#: alliance_auth/urls.py:171 msgid "^remove_timer/(\\w+)" msgstr "" -#: alliance_auth/urls.py:249 +#: alliance_auth/urls.py:172 msgid "^edit_timer/(\\w+)$" msgstr "" -#: alliance_auth/urls.py:252 -msgid "^sigtracker/$" -msgstr "" - -#: alliance_auth/urls.py:253 -msgid "^add_signature/$" -msgstr "" - -#: alliance_auth/urls.py:254 -msgid "^remove_signature/(\\w+)" -msgstr "" - -#: alliance_auth/urls.py:255 -msgid "^edit_signature/(\\w+)$" -msgstr "" - -#: alliance_auth/urls.py:258 +#: alliance_auth/urls.py:175 msgid "^srp/$" msgstr "" -#: alliance_auth/urls.py:259 +#: alliance_auth/urls.py:176 msgid "^srp_all/$" msgstr "" -#: alliance_auth/urls.py:260 +#: alliance_auth/urls.py:177 msgid "^srp_fleet_view/(\\w+)$" msgstr "" -#: alliance_auth/urls.py:261 +#: alliance_auth/urls.py:178 msgid "^srp_fleet_add_view/$" msgstr "" -#: alliance_auth/urls.py:262 +#: alliance_auth/urls.py:179 msgid "^srp_fleet_edit/(\\w+)$" msgstr "" -#: alliance_auth/urls.py:263 +#: alliance_auth/urls.py:180 msgid "^srp_request/(\\w+)" msgstr "" -#: alliance_auth/urls.py:264 +#: alliance_auth/urls.py:181 msgid "srp_request_amount_update/(\\w+)" msgstr "" -#: alliance_auth/urls.py:268 +#: alliance_auth/urls.py:185 msgid "^tool/fleet_formatter_tool/$" msgstr "" -#: alliance_auth/urls.py:272 +#: alliance_auth/urls.py:189 msgid "^notifications/$" msgstr "" -#: alliance_auth/urls.py:273 +#: alliance_auth/urls.py:190 msgid "^notifications/(\\w+)/$" msgstr "" -#: alliance_auth/urls.py:276 -msgid "^set_jabber_password/$" -msgstr "" - -#: alliance_auth/urls.py:279 -msgid "^fits/$" -msgstr "" - -#: authentication/forms.py:6 -#: customization/templates/registered/services.html:17 -#: customization/templates/registered/services.html:342 -#: registration/forms.py:11 -#: stock/templates/registered/hrapplicationmanagement.html:25 -#: stock/templates/registered/hrapplicationmanagement.html:79 -#: stock/templates/registered/hrapplicationmanagement.html:120 +#: authentication/forms.py:9 authentication/forms.py:14 +#: stock/templates/registered/hrapplicationmanagement.html:26 +#: stock/templates/registered/hrapplicationmanagement.html:80 +#: stock/templates/registered/hrapplicationmanagement.html:124 #: stock/templates/registered/hrapplicationsearchview.html:26 -#: stock/templates/registered/services.html:25 -#: stock/templates/registered/services.html:379 +#: stock/templates/registered/services.html:16 msgid "Username" msgstr "Benutzername" -#: authentication/forms.py:7 -#: customization/templates/registered/services.html:18 -#: customization/templates/registered/services.html:343 -#: registration/forms.py:12 services/forms.py:26 services/forms.py:30 -#: stock/templates/registered/services.html:26 -#: stock/templates/registered/services.html:380 +#: authentication/forms.py:10 authentication/forms.py:15 services/forms.py:25 msgid "Password" msgstr "Passwort" -#: corputils/forms.py:9 +#: authentication/forms.py:16 +msgid "Password Again" +msgstr "Passwort wdh." + +#: authentication/forms.py:17 +msgid "Email" +msgstr "E-Mail" + +#: authentication/forms.py:18 +msgid "Email Again" +msgstr "E-Mail wdh." + +#: authentication/views.py:38 authentication/views.py:110 +msgid "Your account has been disabled." +msgstr "Dein Account wurde deaktiviert." + +#: authentication/views.py:41 +msgid "Username/password invalid." +msgstr "Benutzername/Passwort ungültig." + +#: authentication/views.py:72 +msgid "Add an API key to set up your account." +msgstr "Füge einen API Key hinzu um deinen Account einzurichten." + +#: authentication/views.py:113 +msgid "" +"Authenticated character has no owning account. Please log in with username " +"and password." +msgstr "" +"Authentifizierter Charakter hat keinen zugehörigen Account. Bitte melde dich mit Benutzername und Passwort an." + +#: authentication/views.py:115 +msgid "" +"No account exists with the authenticated character. Please create an account " +"first." +msgstr "" +"Es existiert kein Account für den authentifizierten Character. Bitte erstelle einen Account." + +#: corputils/templates/corputils/base.html:3 +#: corputils/templates/corputils/base.html:4 +#: corputils/templates/corputils/base.html:7 +msgid "Corporation Member Data" +msgstr "Corporation Mitgliedsdaten" + +#: corputils/templates/corputils/base.html:13 +msgid "Corporations" +msgstr "Corporations" + +#: corputils/templates/corputils/base.html:24 +msgid "Add" +msgstr "Hinzufügen" + +#: corputils/templates/corputils/base.html:30 msgid "Search characters..." msgstr "Suche Charaktere..." -#: customization/templates/registered/dashboard.html:4 -#: customization/templates/registered/dashboard.html:14 -#: stock/templates/registered/dashboard.html:4 -#: stock/templates/registered/dashboard.html:9 -msgid "Dashboard" -msgstr "Dashboard" +#: corputils/templates/corputils/corpstats.html:28 +msgid "API Index:" +msgstr "API Index:" -#: customization/templates/registered/dashboard.html:24 -#: stock/templates/registered/corputils.html:107 -#: stock/templates/registered/corputilssearchview.html:40 -#: stock/templates/registered/dashboard.html:19 -msgid "Main character" +#: corputils/templates/corputils/corpstats.html:41 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:25 +#: stock/templates/registered/groupmembers.html:13 +msgid "Members" +msgstr "Mitgliederzahl:" + +#: corputils/templates/corputils/corpstats.html:44 +msgid "Last update:" +msgstr "Letzes Update:" + +#: corputils/templates/corputils/corpstats.html:60 +#: corputils/templates/corputils/search.html:17 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:29 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:29 +#: stock/templates/registered/fleetupcharacters.html:46 +#: stock/templates/registered/groupmembers.html:19 +msgid "Character" +msgstr "Charakter" + +#: corputils/templates/corputils/corpstats.html:64 +#: corputils/templates/corputils/search.html:20 +msgid "zKillboard" +msgstr "zKillboard" + +#: corputils/templates/corputils/corpstats.html:65 +#: corputils/templates/corputils/search.html:21 +#: stock/templates/registered/dashboard.html:14 +#: stock/templates/registered/hrapplicationmanagement.html:81 +#: stock/templates/registered/hrapplicationmanagement.html:125 +#: stock/templates/registered/hrapplicationsearchview.html:27 +#: stock/templates/registered/hrapplicationview.html:34 +msgid "Main Character" msgstr "Hauptcharakter" -#: customization/templates/registered/dashboard.html:48 -#: stock/templates/registered/dashboard.html:43 -msgid "Groups" -msgstr "Gruppen" +#: corputils/templates/corputils/corpstats.html:66 +#: corputils/templates/corputils/search.html:22 +msgid "Main Corporation" +msgstr "Haupt Corporation" -#: customization/templates/registered/dashboard.html:69 -#: stock/templates/registered/dashboard.html:64 -msgid "Not a part of the corporation." -msgstr "Nicht Mitglied der Corporation" +#: corputils/templates/corputils/corpstats.html:67 +#: corputils/templates/corputils/search.html:23 +msgid "Main Alliance" +msgstr "Haupt Allianz" -#: customization/templates/registered/dashboard.html:71 -#: stock/templates/registered/dashboard.html:66 -msgid "Not a part of the alliance." -msgstr "Nicht Mitglied der Allianz" +#: corputils/templates/corputils/corpstats.html:80 +#: corputils/templates/corputils/search.html:35 +msgid "Killboard" +msgstr "Killboard" -#: customization/templates/registered/fleetfits.html:8 -#: stock/templates/registered/fleetfits.html:8 -msgid "Alliance Fleet Doctrines" -msgstr "Allianzflottendoktrinen" +#: corputils/templates/corputils/search.html:8 +msgid "Search Results" +msgstr "Suchergebnisse" -#: customization/templates/registered/operationmanagement.html:8 -#: stock/templates/registered/operationmanagement.html:8 -msgid "Fleet Operation Management" -msgstr "Flotten Operations Management" +#: corputils/templates/corputils/search.html:18 +#: stock/templates/registered/fleetupcharacters.html:47 +#: stock/templates/registered/hrapplicationmanagement.html:27 +#: stock/templates/registered/hrapplicationmanagement.html:82 +#: stock/templates/registered/hrapplicationmanagement.html:126 +#: stock/templates/registered/hrapplicationsearchview.html:28 +msgid "Corporation" +msgstr "Corporation" -#: customization/templates/registered/operationmanagement.html:13 -#: stock/templates/registered/operationmanagement.html:13 -msgid "Fleet Operation Timers" -msgstr "Flotten Operations Zeiten" +#: corputils/templates/corputils/search.html:19 +msgid "API" +msgstr "API" -#: customization/templates/registered/operationmanagement.html:17 -#: stock/templates/registered/addoperation.html:9 -#: stock/templates/registered/operationmanagement.html:17 -msgid "Create Operation" -msgstr "Operation erstellen" +#: corputils/views.py:54 +msgid "" +"Unrecognized corporation. Please ensure it is a member of the alliance or a " +"blue." +msgstr "" +"Unbekannte Corporation. Bitte stelle sicher sie ist ein Mitglied der Allianz oder " +"blau." -#: customization/templates/registered/operationmanagement.html:24 -#: stock/templates/registered/fleetup.html:116 -#: stock/templates/registered/operationmanagement.html:24 -#: stock/templates/registered/timermanagement.html:24 -msgid "Current Eve Time:" -msgstr "Momentane Eve Zeit" +#: corputils/views.py:56 +msgid "Selected corp already has a statistics module." +msgstr "Ausgewählte Corp hat bereits ein statistik modul." -#: customization/templates/registered/operationmanagement.html:30 -#: optimer/form.py:14 stock/templates/registered/operationmanagement.html:30 -msgid "Operation Name" -msgstr "Operationsname" +#: corputils/views.py:58 +msgid "Failed to gather corporation statistics with selected token." +msgstr "Fehler beim Sammeln von Corpstatistiken mit ausgewählten Token." -#: customization/templates/registered/operationmanagement.html:31 -#: optimer/form.py:9 stock/templates/registered/fleetup.html:73 -#: stock/templates/registered/fleetupdoctrinesview.html:50 -#: stock/templates/registered/operationmanagement.html:31 -msgid "Doctrine" -msgstr "Doktrin" +#: eveonline/views.py:53 +msgid "Added API key %(apiid)s to your account." +msgstr "API key %(apiid)s zum Account hinzugefügt." -#: customization/templates/registered/operationmanagement.html:32 -#: stock/templates/registered/operationmanagement.html:32 -msgid "Form Up System" -msgstr "Form Up System" +#: eveonline/views.py:77 +msgid "API %(apiid)s already claimed by user %(user)s" +msgstr "API %(apiid)s wird bereits von %(user)s genutzt" -#: customization/templates/registered/operationmanagement.html:33 -#: stock/templates/registered/operationmanagement.html:33 -msgid "Form Up Location" -msgstr "Form Up Location" +#: eveonline/views.py:81 +msgid "API %(apiid)s has already been verified" +msgstr "API %(apiid)s wurde bereits verifiziert" -#: customization/templates/registered/operationmanagement.html:34 -#: optimer/form.py:12 stock/templates/registered/operationmanagement.html:34 -msgid "Start Time" -msgstr "Startzeit" +#: eveonline/views.py:90 +msgid "Confirmed ownership of API %(apiid)s" +msgstr "Besitz von API %(apiid)s bestätigt" -#: customization/templates/registered/operationmanagement.html:35 -#: stock/templates/registered/operationmanagement.html:35 -#: stock/templates/registered/timermanagement.html:35 -#: stock/templates/registered/timermanagement.html:137 -#: stock/templates/registered/timermanagement.html:239 -msgid "Local Time" -msgstr "Ortszeit" +#: eveonline/views.py:96 +msgid "" +"%(character)s not found on API %(apiid)s. Please SSO as a character on the API." +msgstr "" +"%(character)s wurde nicht in API %(apiid)s gefunden. Bitte SSO als ein Charakter des API Keys." -#: customization/templates/registered/operationmanagement.html:36 -#: optimer/form.py:13 -#: stock/templates/registered/fatlinkpersonalmonthlystatisticsview.html:44 -#: stock/templates/registered/fatlinkview.html:73 -#: stock/templates/registered/operationmanagement.html:36 -msgid "Duration" -msgstr "Dauer" +#: eveonline/views.py:131 +msgid "Deleted API key %(apiid)s" +msgstr "API Key %(apiid)s wurde entfernt" -#: customization/templates/registered/operationmanagement.html:37 -#: stock/templates/registered/operationmanagement.html:37 -msgid "FC" -msgstr "FC" +#: eveonline/views.py:154 +msgid "Changed main character ID to %(charid)s" +msgstr "Hauptcharakter ID zu %(charid)s geändert" -#: customization/templates/registered/operationmanagement.html:38 -#: stock/templates/registered/operationmanagement.html:38 -#: stock/templates/registered/timermanagement.html:30 -#: stock/templates/registered/timermanagement.html:132 -#: stock/templates/registered/timermanagement.html:234 timerboard/form.py:12 -msgid "Details" -msgstr "Details" +#: eveonline/views.py:157 +msgid "" +"Failed to change main character - selected character is not owned by your " +"account." +msgstr "" +"Hauptcharakter änderung fehlgeschlagen - ausgewählter Charakter gehört " +"nicht zu deinem Account." -#: customization/templates/registered/operationmanagement.html:39 -#: stock/templates/registered/operationmanagement.html:39 -#: stock/templates/registered/signaturemanagement.html:31 -#: stock/templates/registered/srpfleetdata.html:45 -msgid "Post Time" -msgstr "Veröffentlichungs Zeit" +#: eveonline/views.py:168 +msgid "Refreshed API key %(apiid)s" +msgstr "API key %(apiid)s erneuert" -#: customization/templates/registered/operationmanagement.html:41 -#: stock/templates/registered/fatlinkpersonalmonthlystatisticsview.html:41 -#: stock/templates/registered/fatlinkview.html:70 -#: stock/templates/registered/operationmanagement.html:41 -#: stock/templates/registered/signaturemanagement.html:33 -#: stock/templates/registered/timermanagement.html:36 -#: stock/templates/registered/timermanagement.html:138 -#: stock/templates/registered/timermanagement.html:240 -msgid "Creator" -msgstr "Ersteller" +#: eveonline/views.py:171 +msgid "You are not authorized to refresh that API key." +msgstr "Es ist dir nicht erlaubt den API key zu erneuern." -#: customization/templates/registered/operationmanagement.html:42 -#: customization/templates/registered/services.html:20 -#: customization/templates/registered/services.html:304 -#: customization/templates/registered/services.html:345 -#: customization/templates/registered/services.html:627 -#: stock/templates/registered/apikeymanagment.html:29 -#: stock/templates/registered/groupmanagement.html:20 -#: stock/templates/registered/groupmanagement.html:50 -#: stock/templates/registered/groups.html:19 -#: stock/templates/registered/operationmanagement.html:42 -#: stock/templates/registered/services.html:28 -#: stock/templates/registered/services.html:341 -#: stock/templates/registered/services.html:382 -#: stock/templates/registered/services.html:693 -#: stock/templates/registered/signaturemanagement.html:34 -#: stock/templates/registered/timermanagement.html:38 -#: stock/templates/registered/timermanagement.html:140 -#: stock/templates/registered/timermanagement.html:242 -msgid "Action" -msgstr "Aktion" +#: eveonline/views.py:174 +msgid "Unable to locate API key %(apiid)s" +msgstr "API key %(apiid)s ist nicht auffindbar" -#: customization/templates/registered/services.html:7 -#: stock/templates/registered/services.html:7 -msgid "Services Management" -msgstr "Dienst Verwaltung" - -#: customization/templates/registered/services.html:12 -#: stock/templates/registered/services.html:12 -msgid "Available Services" -msgstr "Verfügbare Dienste" - -#: customization/templates/registered/services.html:16 -#: customization/templates/registered/services.html:300 -#: customization/templates/registered/services.html:341 -#: customization/templates/registered/services.html:623 -#: stock/templates/registered/services.html:24 -#: stock/templates/registered/services.html:337 -#: stock/templates/registered/services.html:378 -#: stock/templates/registered/services.html:689 -msgid "Service" -msgstr "Dienst" - -#: customization/templates/registered/services.html:19 -#: customization/templates/registered/services.html:344 -#: stock/templates/registered/services.html:27 -#: stock/templates/registered/services.html:381 -msgid "Domain" -msgstr "Domain" - -#: customization/templates/registered/services.html:301 -#: customization/templates/registered/services.html:624 -#: stock/templates/registered/services.html:338 -#: stock/templates/registered/services.html:690 -msgid "Unique ID" -msgstr "Einzigartige ID" - -#: customization/templates/registered/services.html:303 -#: customization/templates/registered/services.html:626 -#: stock/templates/registered/services.html:340 -#: stock/templates/registered/services.html:692 -msgid "Quick Link" -msgstr "Schnell Link" - -#: customization/templates/registered/services.html:663 -#: stock/templates/registered/groups.html:57 -#: stock/templates/registered/services.html:729 -msgid "You are not in the corporation." -msgstr "Du bist nicht in dieser Corporation." - -#: customization/templates/registered/services.html:665 -#: stock/templates/registered/groups.html:59 -#: stock/templates/registered/services.html:731 -msgid "You are not in the alliance." -msgstr "Du bist kein Mitglied der Allianz." - -#: customization/templates/registered/teamspeakjoin.html:8 -#: stock/templates/registered/teamspeakjoin.html:8 -msgid "Verify Teamspeak" -msgstr "Teamspeak bestätigen" - -#: customization/templates/registered/teamspeakjoin.html:13 -#: stock/templates/registered/teamspeakjoin.html:13 -msgid "Verify Teamspeak Identity" -msgstr "Teamspeak-Identität bestätigen" - -#: customization/templates/registered/teamspeakjoin.html:16 -#: stock/templates/registered/teamspeakjoin.html:16 -msgid "Join Server" -msgstr "Server beitreten" - -#: customization/templates/registered/teamspeakjoin.html:22 -#: stock/templates/registered/teamspeakjoin.html:22 -msgid "Continue" -msgstr "Fortsetzen" - -#: fleetactivitytracking/forms.py:15 +#: fleetactivitytracking/forms.py:17 msgid "Name of fat-link" msgstr "Name des fat-links:" -#: fleetactivitytracking/forms.py:16 +#: fleetactivitytracking/forms.py:18 msgid "Duration of fat-link" msgstr "Dauer des fat-link" -#: fleetactivitytracking/forms.py:17 -#: stock/templates/registered/fatlinkpersonalmonthlystatisticsview.html:42 -#: stock/templates/registered/fatlinkview.html:71 +#: fleetactivitytracking/forms.py:20 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:39 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:76 msgid "Fleet" msgstr "Flotte" -#: groupmanagement/views.py:163 groupmanagement/views.py:183 -#: stock/templates/registered/hrapplicationmanagement.html:36 -#: stock/templates/registered/hrapplicationmanagement.html:70 -#: stock/templates/registered/hrapplicationmanagement.html:96 -#: stock/templates/registered/hrapplicationmanagement.html:137 -#: stock/templates/registered/hrapplicationsearchview.html:40 -#: stock/templates/registered/hrapplicationview.html:21 -#: stock/templates/registered/srpfleetdata.html:78 -#: stock/templates/registered/srpmanagement.html:83 -msgid "Pending" -msgstr "Ausstehend" +#: fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html:4 +msgid "Fleet Participation" +msgstr "Flotten Teilnahme" -#: hrapplications/forms.py:5 -#: stock/templates/registered/hrapplicationview.html:92 -msgid "Comment" -msgstr "Kommentar" +#: fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html:6 +msgid "Character not found!" +msgstr "Charakter nicht gefunden!" -#: hrapplications/forms.py:8 -msgid "Search String" -msgstr "Suchbegriff" +#: fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html:17 +msgid "Character not registered!" +msgstr "Charakter nicht registriert!" -#: optimer/form.py:10 sigtracker/form.py:12 -#: stock/templates/registered/fatlinkmodify.html:25 -#: stock/templates/registered/fatlinkview.html:29 -#: stock/templates/registered/signaturemanagement.html:24 -#: stock/templates/registered/timermanagement.html:32 -#: stock/templates/registered/timermanagement.html:134 -#: stock/templates/registered/timermanagement.html:236 timerboard/form.py:13 +#: fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html:18 +msgid "This character is not part of any registered API-key. You must go to" +msgstr "Dieser Charakter ist nicht Teil eines registrierten API-Keys. Gehe zur" + +#: fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html:18 +msgid "" +"API key management and add an API with the character on before being " +"able to click fleet attendance links." +msgstr "API key verwaltung und füge eine API für diesen Charakter hinzu bevor du fat links klickst." + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkformatter.html:8 +msgid "Create Fatlink" +msgstr "Erstelle Fatlink" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkformatter.html:14 +#: stock/templates/registered/addoperation.html:15 +#: stock/templates/registered/addoperation.html:24 +msgid "Create Fleet Operation" +msgstr "Flotten-Operation erstellen" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkformatter.html:18 +msgid "Bad request!" +msgstr "Fehlerhafte Anfrage!" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkformatter.html:29 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:66 +msgid "Create fatlink" +msgstr "Erstelle fatlink" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:7 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:7 +msgid "Fatlink view" +msgstr "Fatlink sehen" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:11 +msgid "Edit fatlink" +msgstr "Editiere fatlink" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:15 +msgid "Delete fat" +msgstr "Lösche fat" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:21 +msgid "Registered characters" +msgstr "Registrierte Charaktere" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:28 +#: stock/templates/registered/groupmembers.html:18 +#: stock/templates/registered/hrapplicationview.html:33 +msgid "User" +msgstr "Benutzername" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:30 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:30 +#: optimer/form.py:8 stock/templates/registered/timermanagement.html:31 +#: stock/templates/registered/timermanagement.html:163 +#: stock/templates/registered/timermanagement.html:295 timerboard/form.py:18 msgid "System" msgstr "System" -#: optimer/form.py:11 stock/templates/registered/fleetup.html:72 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:31 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:22 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:31 +msgid "Ship" +msgstr "Schiff" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:32 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:40 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:32 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:77 +#: stock/templates/registered/fleetup.html:57 +#: stock/templates/registered/fleetup.html:59 +#: stock/templates/registered/timermanagement.html:33 +#: stock/templates/registered/timermanagement.html:165 +#: stock/templates/registered/timermanagement.html:297 +msgid "Eve Time" +msgstr "Eve Zeit" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:40 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:39 +#, python-format +msgid "Docked in %(fat.system)s" +msgstr "Docked in %(fat.system)s" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:7 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html:7 +msgid "Personal fatlink statistics" +msgstr "Persönliche fatlink Statistic" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:11 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:11 +#, python-format +msgid "Participation data statistics for %(month)s, %(year)s" +msgstr "Teilnahme Statistic für %(month)s, %(year)s" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:14 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:13 +msgid "Previous month" +msgstr "Vorheriger Monat" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:15 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:15 +msgid "Next month" +msgstr "Nächster Monat" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:19 +#, python-format +msgid "%(user)s has collected %(n_fats)s links this month." +msgstr "%(user)s hat diesen Monat %(n_fats)s gesammelt." + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:23 +msgid "Times used" +msgstr "male genutzt" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:33 +#, python-format +msgid "%(user)s has created %(n_created_fats)s links this month." +msgstr "%(user)s hat diesen Monat %(n_created_fats)s links erstellt." + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:37 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:74 +#: stock/templates/registered/dashboard.html:88 +#: stock/templates/registered/fleetupdoctrine.html:49 +#: stock/templates/registered/fleetupdoctrinesview.html:49 +#: stock/templates/registered/fleetupfittingsview.html:40 +#: stock/templates/registered/groupmembership.html:18 +#: stock/templates/registered/groups.html:17 +#: stock/templates/registered/hrapplicationview.html:47 +msgid "Name" +msgstr "Name" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:38 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:75 +#: stock/templates/registered/operationmanagement.html:40 +#: stock/templates/registered/timermanagement.html:35 +#: stock/templates/registered/timermanagement.html:167 +#: stock/templates/registered/timermanagement.html:299 +msgid "Creator" +msgstr "Ersteller" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:41 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:78 +#: optimer/form.py:11 stock/templates/registered/operationmanagement.html:35 +msgid "Duration" +msgstr "Dauer" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:42 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:79 +msgid "Edit" +msgstr "Editieren" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html:11 +msgid "Participation data statistics for %(year)s" +msgstr "Teilnahme Statistic für %(year)s" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html:13 +msgid "Previous year" +msgstr "Vorheriges Jahr" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html:15 +msgid "Next year" +msgstr "Nächstes Jahr" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html:22 +msgid "Month" +msgstr "Monat" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalstatisticsview.html:23 +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:26 +msgid "Fats" +msgstr "Fats" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:7 +msgid "Fatlink statistics" +msgstr "Fatlink Statistik" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:23 +msgid "Ticker" +msgstr "Ticker: " + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:24 +#: stock/templates/registered/dashboard.html:89 +#: stock/templates/registered/groupmembers.html:20 +#: stock/templates/registered/hrapplicationview.html:48 +msgid "Corp" +msgstr "Corp" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:27 +msgid "Average fats" +msgstr "Durchschnittliche fats" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:11 +msgid "Participation data" +msgstr "Teilnahme Daten" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:15 +msgid "Most recent clicked fatlinks" +msgstr "Letzter geklickter fatlink" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:20 +msgid "Personal statistics" +msgstr "Persönliche Statistik" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:28 +msgid "fatname" +msgstr "fatname" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:49 +msgid "No fleet activity on record." +msgstr "Keine Flotten aktivität bekannt." + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:56 +msgid "Most recent fatlinks" +msgstr "Letzter fatlink" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:61 +msgid "View statistics" +msgstr "Statistik" + +#: fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:98 +msgid "No created fatlinks on record." +msgstr "Keine erstellten fatlinks bekannt." + +#: fleetactivitytracking/views.py:237 +msgid "Fleet participation registered." +msgstr "Flotten Teilnahme registriert." + +#: fleetactivitytracking/views.py:248 +msgid "FAT link has expired." +msgstr "FAT link ist abgelaufen." + +#: fleetactivitytracking/views.py:250 +msgid "Invalid FAT link." +msgstr "Ungültiger FAT link." + +#: groupmanagement/views.py:122 +msgid "Removed user %(user)s from group %(group)s." +msgstr "Benutzer %(user)s von Gruppe %(group)s entfernt." + +#: groupmanagement/views.py:124 +msgid "User does not exist in that group" +msgstr "Benutzer existiert nicht in dieser Gruppe" + +#: groupmanagement/views.py:127 +msgid "Group does not exist" +msgstr "Gruppe existiert nicht" + +#: groupmanagement/views.py:152 +msgid "Accepted application from %(mainchar)s to %(group)s." +msgstr "Anfrage von %(mainchar)s zur Gruppe %(group)s beizutreten Akzeptiert." + +#: groupmanagement/views.py:159 groupmanagement/views.py:191 +msgid "" +"An unhandled error occurred while processing the application from " +"%(mainchar)s to %(group)s." +msgstr "" +"Bei der bearbeitung der Anfrage von %(mainchar)s zur Gruppe %(group)s " +"beizutreten ist ein unbehandelter Fehler aufgetreten." + +#: groupmanagement/views.py:184 +msgid "Rejected application from %(mainchar)s to %(group)s." +msgstr "Anfrage von %(mainchar)s zur Gruppe %(group)s beizutreten Abgelehnt." + +#: groupmanagement/views.py:219 +msgid "Accepted application from %(mainchar)s to leave %(group)s." +msgstr "Anfrage von %(mainchar)s die Gruppe %(group)s zu verlassen Akzeptiert." + +#: groupmanagement/views.py:225 groupmanagement/views.py:258 +msgid "" +"An unhandled error occured while processing the application from %(mainchar)s " +"to leave %(group)s." +msgstr "" +"Bei der bearbeitung der Anfrage von %(mainchar)s die Gruppe %(group)s " +"zu verlassen ist ein unbehandelter Fehler aufgetreten." + +#: groupmanagement/views.py:251 +msgid "Rejected application from %(mainchar)s to leave %(group)s." +msgstr "Anfrage von %(mainchar)s die Gruppe %(group)s zu verlassen Abgelehnt." + +#: groupmanagement/views.py:290 +msgid "You cannot join that group" +msgstr "Du kannst dieser Gruppe nicht beitreten" + +#: groupmanagement/views.py:298 groupmanagement/views.py:329 +#: stock/templates/registered/hrapplicationmanagement.html:37 +#: stock/templates/registered/hrapplicationmanagement.html:70 +#: stock/templates/registered/hrapplicationmanagement.html:97 +#: stock/templates/registered/hrapplicationmanagement.html:141 +#: stock/templates/registered/hrapplicationsearchview.html:40 +#: stock/templates/registered/hrapplicationview.html:22 +#: stock/templates/registered/srpfleetdata.html:75 +#: stock/templates/registered/srpmanagement.html:79 +msgid "Pending" +msgstr "Ausstehend" + +#: groupmanagement/views.py:305 +msgid "Applied to group %(group)s." +msgstr "Für die Gruppe %(group)s beworben." + +#: groupmanagement/views.py:316 +msgid "You cannot leave that group" +msgstr "Du kannst diese Gruppe nicht verlassen" + +#: groupmanagement/views.py:321 +msgid "You are not a member of that group" +msgstr "Du bist kein Mitglied dieser Gruppe" + +#: groupmanagement/views.py:336 +msgid "Applied to leave group %(group)s." +msgstr "Anfrage die Gruppe %(group)s zu verlassen gesendet." + +#: hrapplications/forms.py:7 +#: stock/templates/registered/hrapplicationview.html:111 +msgid "Comment" +msgstr "Kommentar" + +#: hrapplications/forms.py:11 +msgid "Search String" +msgstr "Suchbegriff" + +#: notifications/views.py:37 +msgid "You are not authorized to view that notification." +msgstr "Du bist nicht autorisiert diese Mitteilung zu sehen." + +#: notifications/views.py:49 +msgid "Deleted notification." +msgstr "Mitteilung gelöscht." + +#: notifications/views.py:53 +msgid "Failed to locate notification." +msgstr "Mitteilung konnte nicht gefunden werden." + +#: notifications/views.py:61 +msgid "Marked all notifications as read." +msgstr "Alle Mitteilungen als gelesen Markieren." + +#: notifications/views.py:69 +msgid "Deleted all read notifications." +msgstr "Alle gelesenen Mitteilungen gelöscht." + +#: optimer/form.py:7 stock/templates/registered/fleetup.html:73 +#: stock/templates/registered/fleetupdoctrinesview.html:50 +#: stock/templates/registered/operationmanagement.html:30 +msgid "Doctrine" +msgstr "Doktrin" + +#: optimer/form.py:9 stock/templates/registered/fleetup.html:72 #: stock/templates/registered/fleetup.html:158 msgid "Location" msgstr "Ort" -#: optimer/form.py:15 stock/templates/registered/srpmanagement.html:37 +#: optimer/form.py:10 stock/templates/registered/operationmanagement.html:33 +msgid "Start Time" +msgstr "Startzeit" + +#: optimer/form.py:12 stock/templates/registered/operationmanagement.html:29 +msgid "Operation Name" +msgstr "Operationsname" + +#: optimer/form.py:13 stock/templates/registered/srpmanagement.html:38 msgid "Fleet Commander" msgstr "Flottenkommandeur" -#: optimer/form.py:16 +#: optimer/form.py:14 msgid "Extra Details" msgstr "Zusätzliche Details" -#: registration/forms.py:13 -msgid "Password Again" -msgstr "Passwort wdh." +#: optimer/views.py:57 +msgid "Created operation timer for %(opname)s." +msgstr "Operation timer für %(opname)s erstellt." -#: registration/forms.py:14 -msgid "Email" -msgstr "E-Mail" +#: optimer/views.py:76 +msgid "Removed operation timer for %(opname)s." +msgstr "Operation timer für %(opname)s entfernt." -#: registration/forms.py:15 -msgid "Email Again" -msgstr "E-Mail wdh." +#: optimer/views.py:105 +msgid "Saved changes to operation timer for %(opname)s." +msgstr "Änderungen for operation timer %(opname)s gespeichert." -#: services/forms.py:6 -msgid "Group" -msgstr "Gruppen" - -#: services/forms.py:7 -msgid "Message" -msgstr "Nachricht" - -#: services/forms.py:11 +#: services/forms.py:8 msgid "Name of Fleet:" msgstr "SRP Flotte erstellen:" -#: services/forms.py:12 +#: services/forms.py:9 msgid "Fleet Commander:" msgstr "Flottenkommandeur:" -#: services/forms.py:13 +#: services/forms.py:10 msgid "Fleet Comms:" msgstr "Flotten Comms:" -#: services/forms.py:14 +#: services/forms.py:11 msgid "Fleet Type:" msgstr "Flottenzeit:" -#: services/forms.py:15 +#: services/forms.py:12 msgid "Ship Priorities:" msgstr "Schiffs priorität:" -#: services/forms.py:16 +#: services/forms.py:13 msgid "Formup Location:" msgstr "Formup Location:" -#: services/forms.py:17 +#: services/forms.py:14 msgid "Formup Time:" msgstr "Formup Zeit:" -#: services/forms.py:18 +#: services/forms.py:15 msgid "Expected Duration:" msgstr "Erwartete Dauer:" -#: services/forms.py:19 +#: services/forms.py:16 msgid "Purpose:" msgstr "Grund:" -#: services/forms.py:20 +#: services/forms.py:17 msgid "Reimbursable?*" msgstr "Erstattungsfähig?" -#: services/forms.py:20 services/forms.py:21 +#: services/forms.py:17 services/forms.py:19 msgid "Yes" msgstr "Ja" -#: services/forms.py:20 services/forms.py:21 +#: services/forms.py:17 services/forms.py:19 msgid "No" msgstr "Nein" -#: services/forms.py:21 +#: services/forms.py:19 msgid "Important?*" msgstr "Wichtig?" -#: services/forms.py:22 +#: services/forms.py:21 msgid "Comments" msgstr "Kommentar" -#: services/forms.py:25 -msgid "Email Address" -msgstr "Email Adresse" - -#: services/forms.py:27 -msgid "Update Avatar" -msgstr "Signatur aktualisieren" - -#: services/forms.py:34 +#: services/forms.py:30 msgid "Password must be at least 8 characters long." msgstr "Passwort muss mindestens 8 Zeichen lang sein" -#: services/forms.py:43 +#: services/modules/discord/templates/registered/discord_service_ctrl.html:23 +msgid "Link Discord Server" +msgstr "Verbinde zu Discord Server" + +#: services/modules/openfire/forms.py:8 +msgid "Group" +msgstr "Gruppen" + +#: services/modules/openfire/forms.py:9 +msgid "Message" +msgstr "Nachricht" + +#: services/modules/openfire/urls.py:16 +msgid "^set_password/$" +msgstr "" + +#: services/modules/openfire/urls.py:25 +msgid "^services/jabber_broadcast/$" +msgstr "" + +#: services/modules/teamspeak3/forms.py:15 #, python-format msgid "Unable to locate user %s on server" msgstr "Unfähig den Benutzer %s auf dem Server zu finden" -#: sigtracker/form.py:7 -msgid "More Than 50%" -msgstr "Mehr als 50%" +#: services/modules/teamspeak3/templates/registered/teamspeak3_service_ctrl.html:4 +#: stock/templates/registered/services.html:15 +msgid "Service" +msgstr "Dienst" -#: sigtracker/form.py:7 -msgid "Less Than 50%" -msgstr "Weniger als 50%" +#: services/modules/teamspeak3/templates/registered/teamspeak3_service_ctrl.html:5 +msgid "Unique ID" +msgstr "Einzigartige ID" -#: sigtracker/form.py:7 -msgid "Less Than 10%" -msgstr "Weniger als 10%" +#: services/modules/teamspeak3/templates/registered/teamspeak3_service_ctrl.html:7 +#: stock/templates/registered/groupmanagement.html:26 +#: stock/templates/registered/groupmanagement.html:57 +#: stock/templates/registered/groupmembers.html:22 +#: stock/templates/registered/groupmembership.html:22 +#: stock/templates/registered/groups.html:19 +#: stock/templates/registered/notification_list.html:30 +#: stock/templates/registered/notification_list.html:61 +#: stock/templates/registered/operationmanagement.html:41 +#: stock/templates/registered/services.html:18 +#: stock/templates/registered/timermanagement.html:37 +#: stock/templates/registered/timermanagement.html:169 +#: stock/templates/registered/timermanagement.html:301 +msgid "Action" +msgstr "Aktion" -#: sigtracker/form.py:8 -msgid "More Than 24 Hours" -msgstr "Mehr als 24 Stunden" +#: services/modules/teamspeak3/templates/registered/teamspeak3_service_ctrl.html:20 +msgid "Quick Link" +msgstr "Schnell Link" -#: sigtracker/form.py:8 -msgid "Less Than 24 Hours" -msgstr "Weniger als 24 Stunden" +#: services/views.py:59 +msgid "There's a problem with your main character. Please select a new one." +msgstr "Es gibt ein Problem mit deinem Hauptcharakter. Bitte wähle einen neuen aus" -#: sigtracker/form.py:8 -msgid "Less Than 4 Hours" -msgstr "Weniger als 4 Stunden" - -#: sigtracker/form.py:9 -msgid "Only Smallest" -msgstr "Nur kleinste" - -#: sigtracker/form.py:9 -msgid "Up to Medium" -msgstr "bis mittel" - -#: sigtracker/form.py:9 -msgid "Larger" -msgstr "Größere" - -#: sigtracker/form.py:9 -msgid "Very Large" -msgstr "Sehr Große" - -#: sigtracker/form.py:13 -#: stock/templates/registered/signaturemanagement.html:23 -msgid "ID" -msgstr "ID" - -#: sigtracker/form.py:14 -#: stock/templates/registered/signaturemanagement.html:27 -msgid "Lifetime Status" -msgstr "Lebenszeit Status" - -#: sigtracker/form.py:15 -#: stock/templates/registered/signaturemanagement.html:28 -msgid "Mass Status" -msgstr "Masse Status" - -#: sigtracker/form.py:16 -#: stock/templates/registered/signaturemanagement.html:29 -msgid "Ship Size" -msgstr "Schiffsgröße" - -#: sigtracker/form.py:17 -msgid "End Destination" -msgstr "Ziel" - -#: sigtracker/form.py:18 -#: stock/templates/registered/signaturemanagement.html:26 -msgid "Goes Through" -msgstr "Geht durch" - -#: sigtracker/form.py:19 -#: stock/templates/registered/signaturemanagement.html:30 -msgid "Notes" -msgstr "Notizen" - -#: srp/form.py:6 stock/templates/registered/srpmanagement.html:34 +#: srp/form.py:7 stock/templates/registered/srpmanagement.html:35 msgid "Fleet Name" msgstr "Flottenname" -#: srp/form.py:7 stock/templates/registered/srpmanagement.html:35 +#: srp/form.py:8 stock/templates/registered/srpmanagement.html:36 msgid "Fleet Time" msgstr "Flottenzeit" -#: srp/form.py:8 stock/templates/registered/srpmanagement.html:36 +#: srp/form.py:9 stock/templates/registered/srpmanagement.html:37 msgid "Fleet Doctrine" msgstr "Flottendoktrin" -#: srp/form.py:12 stock/templates/registered/srpfleetdata.html:41 +#: srp/form.py:13 stock/templates/registered/srpfleetdata.html:42 msgid "Additional Info" msgstr "Zusätzliche Info" -#: srp/form.py:14 +#: srp/form.py:15 msgid "zKillboard Link" msgstr "zKillboard Link" -#: srp/form.py:28 +#: srp/form.py:24 +msgid "Invalid Link. Please use zKillboard.com" +msgstr "Ungültiger Link. Bitte benutze zKillboard.com" + +#: srp/form.py:29 msgid "Total SRP Amount" msgstr "Aktualisiere SRP Menge" -#: srp/form.py:32 +#: srp/form.py:33 msgid "After Action Report Link" msgstr "Abschlussbericht Link" -#: stock/templates/public/base.html:82 +#: srp/views.py:97 +msgid "Created SRP fleet %(fleetname)s." +msgstr "SRP Flotte %(fleetname)s erstellt." + +#: srp/views.py:116 +msgid "Removed SRP fleet %(fleetname)s." +msgstr "SRP Flotte %(fleetname)s entfernt." + +#: srp/views.py:120 srp/views.py:137 srp/views.py:154 srp/views.py:171 +#: srp/views.py:189 srp/views.py:393 +msgid "Unable to locate SRP fleet with ID %(fleetid)s" +msgstr "Unfähig SRP Flotte mit der ID %(fleetid)s zu finden" + +#: srp/views.py:133 +msgid "Disabled SRP fleet %(fleetname)s." +msgstr "SRP link für %(fleetname)s deaktiviert." + +#: srp/views.py:150 +msgid "Enabled SRP fleet %(fleetname)s." +msgstr "SRP link für %(fleetname)s aktiviert." + +#: srp/views.py:167 +msgid "Marked SRP fleet %(fleetname)s as completed." +msgstr "SRP Flotte %(fleetname)s als vollständig markiert." + +#: srp/views.py:184 +#, python-brace-format +msgid "Marked SRP fleet %(fleetname)s as incomplete." +msgstr "SRP Flotte %(fleetname)s als unvollständig markiert." + +#: srp/views.py:228 +msgid "" +"Your SRP request Killmail link is invalid. Please make sure you are using " +"zKillboard." +msgstr "" +"Der Killmail link deiner SRP anfrage ist ungültig. Bitte stelle sicher, " +"dass du zKillboard benutzt." + +#: srp/views.py:239 +msgid "Submitted SRP request for your %(ship)s." +msgstr "SRP anfrage für %(ship)s gesendet." + +#: srp/views.py:261 +msgid "Deleted SRP request from %(character)s for their %(ship)s." +msgstr "SPR anfrage von %(character)s für %(ship)s entfernt." + +#: srp/views.py:266 srp/views.py:299 srp/views.py:331 srp/views.py:345 +msgid "Unable to locate SRP request with ID %(requestid)s" +msgstr "Unfähig SRP anfrage mit der ID %(requestid)s zu finden." + +#: srp/views.py:287 +msgid "Approved SRP request from %(character)s for their %(ship)s." +msgstr "SRP anfrage von %(character)s für %(ship)s genehmigt." + +#: srp/views.py:318 +msgid "Rejected SRP request from %(character)s for their %(ship)s." +msgstr "SRP anfrage von %(character)s für %(ship)s abgelehnt." + +#: srp/views.py:357 +msgid "Updated SRP amount." +msgstr "Aktualisiere SRP Menge" + +#: srp/views.py:382 +msgid "Saved changes to SRP fleet %(fleetname)s" +msgstr "Änderungen der SRP flotte %(fleetname)s gespeichert" + +#: stock/templates/public/base.html:85 +msgid "Admin" +msgstr "Admin" + +#: stock/templates/public/base.html:87 msgid "Logout" msgstr "Ausloggen" -#: stock/templates/public/base.html:84 -#: stock/templates/registration/password_reset_complete.html:54 +#: stock/templates/public/base.html:89 stock/templates/public/login.html:14 +#: stock/templates/registration/password_reset_complete.html:49 msgid "Login" msgstr "Einloggen" -#: stock/templates/public/base.html:95 +#: stock/templates/public/base.html:101 msgid "Main Navigation" msgstr "Haupmenü" -#: stock/templates/public/base.html:101 +#: stock/templates/public/base.html:106 msgid " Dashboard" msgstr " Dashboard" -#: stock/templates/public/base.html:107 -msgid " Api Keys" -msgstr " API Keys" - #: stock/templates/public/base.html:113 -msgid " Characters" -msgstr " Charaktere" - -#: stock/templates/public/base.html:120 msgid " Groups" msgstr " Gruppen" -#: stock/templates/public/base.html:127 +#: stock/templates/public/base.html:120 msgid " Help" msgstr " Hilfe" -#: stock/templates/public/base.html:132 +#: stock/templates/public/base.html:126 msgid "Aux Navigation" msgstr "Zusatz Navigation" -#: stock/templates/public/base.html:138 +#: stock/templates/public/base.html:131 msgid " Services" msgstr " Dienste" -#: stock/templates/public/base.html:147 +#: stock/templates/public/base.html:140 msgid " Applications" msgstr " Bewerbungen" -#: stock/templates/public/base.html:155 +#: stock/templates/public/base.html:148 msgid " Corporation Stats" msgstr " Korporationsstatistiken" -#: stock/templates/public/base.html:163 +#: stock/templates/public/base.html:156 msgid " Group Management" msgstr " Gruppenverwaltung" -#: stock/templates/public/base.html:171 -msgid " Fleet Doctrines" -msgstr " Flottendoktrinen" - -#: stock/templates/public/base.html:186 -msgid " Wormhole Tracker" -msgstr " Wurmloch Tracker" - -#: stock/templates/public/base.html:193 +#: stock/templates/public/base.html:174 msgid " Fleet Operations" msgstr " Flottenoperationen" -#: stock/templates/public/base.html:200 +#: stock/templates/public/base.html:181 msgid " Structure Timers" msgstr " Strukturen Timer" -#: stock/templates/public/base.html:213 +#: stock/templates/public/base.html:188 +msgid " Fleet Activity Tracking" +msgstr " Flottenaktivitäts-Tracking" + +#: stock/templates/public/base.html:194 msgid " Ship Replacement" msgstr " Schiff’s erstattung" -#: stock/templates/public/base.html:220 +#: stock/templates/public/base.html:200 msgid "Util" msgstr "Werkzeuge" -#: stock/templates/public/base.html:225 +#: stock/templates/public/base.html:204 #: stock/templates/registration/password_change_done.html:10 #: stock/templates/registration/password_change_form.html:9 #: stock/templates/registration/password_change_form.html:18 -#: stock/templates/registration/password_reset_confirm.html:53 +#: stock/templates/registration/password_reset_confirm.html:49 msgid "Change Password" msgstr "Passwort ändern" -#: stock/templates/public/base.html:233 +#: stock/templates/public/base.html:211 msgid " Fleet Broadcast Formatter" msgstr "Flottenübertragungen Formatierer " -#: stock/templates/public/base.html:241 -msgid " Jabber Broadcast" -msgstr " Jabberübertragungen" - -#: stock/templates/public/login.html:55 -msgid "Username/Password Invalid" -msgstr "Benutzername/Passwort ungültig" - -#: stock/templates/public/login.html:58 -#: stock/templates/public/register.html:62 -msgid "Register" -msgstr "Registrieren" - -#: stock/templates/public/login.html:63 +#: stock/templates/public/login.html:57 msgid "Please sign in" msgstr "Bitte einloggen" -#: stock/templates/public/login.html:66 +#: stock/templates/public/login.html:62 msgid "Sign in" msgstr "Einloggen" -#: stock/templates/public/login.html:71 +#: stock/templates/public/login.html:68 msgid "Reset" msgstr "Zurücksetzen" -#: stock/templates/public/register.html:56 +#: stock/templates/public/login.html:71 +#: stock/templates/public/register.html:57 +msgid "Register" +msgstr "Registrieren" + +#: stock/templates/public/register.html:13 +msgid "Registration" +msgstr "Registration" + +#: stock/templates/public/register.html:51 msgid "Username Already Registered" msgstr "Name ist bereit in Benutzung" -#: stock/templates/public/register.html:60 +#: stock/templates/public/register.html:55 msgid "Register Account" msgstr "Registriere Account" @@ -927,19 +1204,6 @@ msgstr "" msgid "Member API keys need to be account-wide." msgstr "Mitglieder API Key muss für den ganzen Account sein." -#: stock/templates/registered/addapikey.html:27 -#, python-format -msgid "" -"Create\n" -" a full API key" -msgstr "" -"Einen\n" -" vollständigen API Key erstellen" - #: stock/templates/registered/addapikey.html:32 #, python-format msgid "" @@ -950,43 +1214,29 @@ msgstr "Blaue API Key erfordern Zugriffsmaske %(BLUE_API_MASK)s oder höher" msgid "BLUE API keys need to be account-wide." msgstr "BLAUE API Keys müssen Account-weit sein." -#: stock/templates/registered/addapikey.html:40 -#, python-format -msgid "" -"Create\n" -" a blue key" -msgstr "" -"Einen blauen Key " -"erstellen" - #: stock/templates/registered/addapikey.html:49 -#: stock/templates/registered/apikeymanagment.html:21 msgid "Add Key" msgstr "Key hinzufügen" -#: stock/templates/registered/addoperation.html:15 -#: stock/templates/registered/addoperation.html:24 -#: stock/templates/registered/fatlinkformatter.html:13 -msgid "Create Fleet Operation" -msgstr "Flotten-Operation erstellen" +#: stock/templates/registered/addoperation.html:7 +msgid "Alliance Auth - Fleet Operation Create" +msgstr "Allianz Auth - Flotten Operation Erstellen" -#: stock/templates/registered/addsignature.html:8 -#: stock/templates/registered/addsignature.html:14 -#: stock/templates/registered/addsignature.html:23 -#: stock/templates/registered/signaturemanagement.html:16 -msgid "Create Signature" -msgstr "Signatur erstellen" +#: stock/templates/registered/addoperation.html:9 +#: stock/templates/registered/operationmanagement.html:16 +msgid "Create Operation" +msgstr "Operation erstellen" + +#: stock/templates/registered/addtimer.html:7 +msgid "Alliance Auth - Structure Timer Create" +msgstr "Allianz Auth - Struktur Timer Erstellen" #: stock/templates/registered/addtimer.html:9 msgid "Timer Create" msgstr "Timer erstellen" #: stock/templates/registered/addtimer.html:15 -#: stock/templates/registered/timermanagement.html:17 +#: stock/templates/registered/timermanagement.html:16 msgid "Create Structure Timer" msgstr "Struktur-Timer erstellen" @@ -994,31 +1244,28 @@ msgstr "Struktur-Timer erstellen" msgid "Create Timer" msgstr "Timer erstellen" -#: stock/templates/registered/apikeymanagment.html:8 -#: stock/templates/registered/apikeymanagment.html:18 -msgid "API Key Management" -msgstr "API Key Verwaltung" +#: stock/templates/registered/apisso.html:3 +#: stock/templates/registered/apisso.html:4 +#: stock/templates/registered/apisso.html:7 +msgid "Verify API Ownership" +msgstr "Bestätige API Besitz" -#: stock/templates/registered/apikeymanagment.html:16 -msgid "No api keys found" -msgstr "Keine API Key gefunden" - -#: stock/templates/registered/apikeymanagment.html:27 -msgid "API ID" -msgstr "API ID" - -#: stock/templates/registered/apikeymanagment.html:28 -msgid "API Key" -msgstr "API Key" +#: stock/templates/registered/apisso.html:10 +#, python-format +msgid "" +"Please authenticate as a character on API %(api.api_id)s to prove ownership." +msgstr "" +"Bitte authentifiziere als ein Charakter der API %(api.api_id)s um Besitz zu bestätigen" #: stock/templates/registered/characters.html:7 #: stock/templates/registered/characters.html:12 #: stock/templates/registered/fleetup.html:28 #: stock/templates/registered/fleetupcharacters.html:29 #: stock/templates/registered/fleetupdoctrine.html:28 +#: stock/templates/registered/fleetupdoctrinesview.html:28 #: stock/templates/registered/fleetupfitting.html:28 #: stock/templates/registered/fleetupfittingsview.html:28 -#: stock/templates/registered/hrapplicationview.html:42 +#: stock/templates/registered/hrapplicationview.html:43 msgid "Characters" msgstr "Charaktere" @@ -1027,371 +1274,67 @@ msgid "No primary character set" msgstr "Keinen primären Charakter festgelegt" #: stock/templates/registered/characters.html:35 -msgid "" -"" -msgstr "" -"" +msgid "Refresh Primary" +msgstr "Aktualisiere Hauptcharakter" -#: stock/templates/registered/characters.html:39 -msgid "" -"" -msgstr "" -"" +#: stock/templates/registered/characters.html:37 +msgid "Make Primary" +msgstr "Mache zum Hauptcharakter" -#: stock/templates/registered/characters.html:57 +#: stock/templates/registered/characters.html:52 msgid "Alliance: " msgstr "Allianz: " -#: stock/templates/registered/characters.html:59 +#: stock/templates/registered/characters.html:54 msgid "Corporation: " msgstr "Corporation: " -#: stock/templates/registered/characters.html:61 +#: stock/templates/registered/characters.html:56 msgid "Corporation Ticker: " msgstr "Corporation Ticker: " -#: stock/templates/registered/corputils.html:7 -#: stock/templates/registered/corputilssearchview.html:8 -msgid "Corporation Member Tracking" -msgstr "Corporation Mitglieder Tracking" +#: stock/templates/registered/dashboard.html:5 +#: stock/templates/registered/dashboard.html:9 +msgid "Dashboard" +msgstr "Dashboard" -#: stock/templates/registered/corputils.html:12 -msgid "Corporation Member Data" -msgstr "Corporation Mitgliedsdaten" +#: stock/templates/registered/dashboard.html:38 +msgid "Missing main character model." +msgstr "Hauptcharakter model fehlt" -#: stock/templates/registered/corputils.html:18 -#: stock/templates/registered/fleetupcharacters.html:47 -#: stock/templates/registered/hrapplicationmanagement.html:26 -#: stock/templates/registered/hrapplicationmanagement.html:81 -#: stock/templates/registered/hrapplicationmanagement.html:122 -#: stock/templates/registered/hrapplicationsearchview.html:28 -msgid "Corporation" -msgstr "Corporation" +#: stock/templates/registered/dashboard.html:42 +msgid "Add API Key" +msgstr "API Key hinzufügen" -#: stock/templates/registered/corputils.html:26 -msgid "Ticker:" -msgstr "Ticker: " +#: stock/templates/registered/dashboard.html:45 +msgid "Change Main" +msgstr "Hauptcharakter ändern" -#: stock/templates/registered/corputils.html:28 -msgid "Member count:" -msgstr "Mitgliederzahl:" +#: stock/templates/registered/dashboard.html:52 +msgid "Groups" +msgstr "Gruppen" -#: stock/templates/registered/corputils.html:30 -msgid "Player count:" -msgstr "Spieleranzahl:" +#: stock/templates/registered/dashboard.html:71 +msgid "API Key requires EVE SSO verification" +msgstr "API Key benötigt EVE SSO bestätigung" -#: stock/templates/registered/corputils.html:32 -msgid "Unregistered characters:" -msgstr "Nicht registrierte Charaktere:" +#: stock/templates/registered/dashboard.html:71 +msgid "API Key is valid" +msgstr "API Key ist gültig" -#: stock/templates/registered/corputils.html:35 -msgid "API Index:" -msgstr "API Index:" +#: stock/templates/registered/dashboard.html:72 +msgid "API ID" +msgstr "API ID" -#: stock/templates/registered/corputils.html:51 -msgid "Alliance corporations" -msgstr "Allianz Corporations" +#: stock/templates/registered/dashboard.html:90 +#: stock/templates/registered/groupmembers.html:21 +#: stock/templates/registered/hrapplicationview.html:49 +msgid "Alliance" +msgstr "Allianz" -#: stock/templates/registered/corputils.html:80 -#: stock/templates/registered/corputils.html:112 -#: stock/templates/registered/corputils.html:115 -#: stock/templates/registered/corputils.html:148 -#: stock/templates/registered/corputils.html:194 -#: stock/templates/registered/corputils.html:205 -#: stock/templates/registered/corputilssearchview.html:42 -#: stock/templates/registered/corputilssearchview.html:45 -#: stock/templates/registered/corputilssearchview.html:63 -msgid "Killboard" -msgstr "Killboard" - -#: stock/templates/registered/corputils.html:89 -#: stock/templates/registered/corputilssearchview.html:29 -#: stock/templates/registered/hrapplicationmanagement.html:177 -#: stock/templates/registered/hrapplicationsearchview.html:77 -msgid "Search" -msgstr "Suche" - -#: stock/templates/registered/corputils.html:96 -msgid "Registered Main Characters" -msgstr "Registrierte Haupt Charaktere" - -#: stock/templates/registered/corputils.html:97 -msgid "Characters without API" -msgstr "Charaktere ohne API" - -#: stock/templates/registered/corputils.html:108 -msgid "Main corporation" -msgstr "Haupt Corporation" - -#: stock/templates/registered/corputils.html:109 -msgid "Character list" -msgstr "Charakterliste" - -#: stock/templates/registered/corputils.html:110 -#: stock/templates/registered/fatlinkpersonalstatisticsview.html:25 -#: stock/templates/registered/fatlinkstatisticsview.html:29 -msgid "Fats" -msgstr "" - -#: stock/templates/registered/corputils.html:113 -#: stock/templates/registered/corputilssearchview.html:43 -msgid "Fleet statistics" -msgstr " Flottenstatistic" - -#: stock/templates/registered/corputils.html:117 -#: stock/templates/registered/corputils.html:164 -#: stock/templates/registered/corputilssearchview.html:47 -#: stock/templates/registered/corputilssearchview.html:83 -msgid "API JackKnife" -msgstr "API JackKnife" - -#: stock/templates/registered/corputils.html:177 -#, python-format -msgid "" -"Seems there are no characters in %(corp.corporation_name)s tied to a " -"registered API!" -msgstr "" -"Scheint, als wären keine Charaktere zu %(corp.corporation_name)s verbunden" - -#: stock/templates/registered/corputils.html:187 -#, python-format -msgid "" -"There are atleast %(n_unacounted)s characters not accounted for in EveWho." -msgstr "" -"Es sind mindestens %(n_unacounted)s Charaktere nicht in EveWho bekannt." - -#: stock/templates/registered/corputils.html:193 -#: stock/templates/registered/corputilssearchview.html:39 -#: stock/templates/registered/fatlinkmodify.html:24 -#: stock/templates/registered/fatlinkview.html:28 -#: stock/templates/registered/fleetupcharacters.html:46 -msgid "Character" -msgstr "Charakter" - -#: stock/templates/registered/corputils.html:214 -#, python-format -msgid "" -"Good job! Every character in %(corp.corporation_name)s seem to be tied to an " -"API!" -msgstr "" -"Gut gemacht! Alle Charaktere in %(corp.corporation_name)s scheinen mit einer " -"APIverknüft zu sein!" - -#: stock/templates/registered/corputils.html:223 -msgid "No corporation model found. Contact your admin." -msgstr "Kein Corporation Model gefunden. Kontaktiere deinen Admin." - -#: stock/templates/registered/corputilssearchview.html:14 -msgid "Member Search Results" -msgstr "Mitgliedersuche Ergebnisse" - -#: stock/templates/registered/corputilssearchview.html:59 -msgid "No API registered!" -msgstr "Keine API registriert!" - -#: stock/templates/registered/discord.html:8 -#: stock/templates/registered/jabberbroadcast.html:8 -#: stock/templates/registered/jabberbroadcast.html:13 -msgid "Jabber Broadcast" -msgstr "Jabber Übertragung" - -#: stock/templates/registered/discord.html:13 -msgid "Discord Connection" -msgstr "Discordverbindung" - -#: stock/templates/registered/discord.html:19 -msgid "Account Linked" -msgstr "Account verbunden" - -#: stock/templates/registered/discord.html:21 -msgid "" -"Enter your Discord account credentials below. These are not stored: they are " -"needed to determine your user ID and make you join the server." -msgstr "" -"Gib Deine Discord Accountdaten unten an. Diese werden nicht gespeichert: sie " -"werden benötigt, um deine Nutzer ID zu ermitteln und dich mit dem Server zu " -"verbinden." - -#: stock/templates/registered/discord.html:22 -msgid "If you do not have a Discord account, please create one Link to the line members" -msgstr "" -"Gebe diesen Link den Teilnehmern" +msgid "Give this link to the line members" +msgstr "Gebe diesen link den leine membern" #: stock/templates/registered/srpfleetdata.html:15 msgid "SRP Fleet Data" @@ -1983,26 +2047,30 @@ msgstr "Verluste insgesamt:" msgid "Total ISK Cost:" msgstr "ISK-Kosten insgesamt:" -#: stock/templates/registered/srpfleetdata.html:39 +#: stock/templates/registered/srpfleetdata.html:40 msgid "Pilot Name" msgstr "Name des Piloten" -#: stock/templates/registered/srpfleetdata.html:40 +#: stock/templates/registered/srpfleetdata.html:41 msgid "Killboard Link" msgstr "Killboard Link" -#: stock/templates/registered/srpfleetdata.html:42 -msgid "Ship Type" -msgstr "Schiffstypen" - #: stock/templates/registered/srpfleetdata.html:43 +msgid "Ship Type" +msgstr "Schiffstyp" + +#: stock/templates/registered/srpfleetdata.html:44 msgid "Killboard Loss Amt" msgstr "Summe Killboard Verluste" -#: stock/templates/registered/srpfleetdata.html:44 +#: stock/templates/registered/srpfleetdata.html:45 msgid "SRP ISK Cost" msgstr "SRP ISK-Kosten" +#: stock/templates/registered/srpfleetdata.html:113 +msgid "No SRP requests for this fleet." +msgstr "Keine SRP anfragen für diese Flotte." + #: stock/templates/registered/srpfleetrequest.html:8 msgid "SRP Request" msgstr "SRP-Anfrage" @@ -2013,7 +2081,6 @@ msgid "Create SRP Request" msgstr "Erstelle SRP-Anfrage" #: stock/templates/registered/srpfleetrequest.html:21 -#: stock/templates/registered/srpfleetrequestamount.html:21 msgid "SRP Code Does Not Exist" msgstr "SRP-Code existiert nicht" @@ -2026,7 +2093,7 @@ msgstr "SRP-Anfrage erfolgreich eingereicht" msgid "Update SRP Amount" msgstr "Aktualisiere SRP Menge" -#: stock/templates/registered/srpfleetrequestamount.html:27 +#: stock/templates/registered/srpfleetrequestamount.html:24 msgid "Update SRP Request Amount" msgstr "Aktualisiere SPR Anfragen Menge" @@ -2050,31 +2117,56 @@ msgstr "Zeige alles" msgid "Add SRP Fleet" msgstr "Füge SRP Flotte hinzu" -#: stock/templates/registered/srpmanagement.html:38 +#: stock/templates/registered/srpmanagement.html:39 msgid "Fleet AAR" msgstr "Flotten AAR" -#: stock/templates/registered/srpmanagement.html:39 +#: stock/templates/registered/srpmanagement.html:40 msgid "Fleet SRP Code" msgstr "Flotten SRP Code" -#: stock/templates/registered/srpmanagement.html:40 +#: stock/templates/registered/srpmanagement.html:41 msgid "Fleet ISK Cost" msgstr "Flotten ISK Kosten" -#: stock/templates/registered/srpmanagement.html:41 +#: stock/templates/registered/srpmanagement.html:42 msgid "SRP Status" msgstr "SRP Status" -#: stock/templates/registered/srpmanagement.html:68 +#: stock/templates/registered/srpmanagement.html:43 + +msgid "Pending Requests" +msgstr "Ausstehende Anfragen" + +#: stock/templates/registered/srpmanagement.html:62 +msgid "Link" +msgstr "Link" + +#: stock/templates/registered/srpmanagement.html:70 msgid "Disabled" msgstr "Deaktiviert" -#: stock/templates/registered/srpmanagement.html:87 +#: stock/templates/registered/srpmanagement.html:83 #: stock/templates/registration/password_change_done.html:16 msgid "Completed" msgstr "Fertig" +#: stock/templates/registered/srpmanagement.html:120 +msgid "No SRP fleets created." +msgstr "Keine SRP-Flotte erstellt." + +#: stock/templates/registered/teamspeakjoin.html:8 +msgid "Verify Teamspeak" +msgstr "Teamspeak bestätigen" + +#: stock/templates/registered/teamspeakjoin.html:13 +msgid "Verify Teamspeak Identity" +msgstr "Teamspeak-Identität bestätigen" + +#: stock/templates/registered/teamspeakjoin.html:16 +msgid "Join Server" +msgstr "Server beitreten" + #: stock/templates/registered/timermanagement.html:8 msgid "Structure Timer Management" msgstr "Struktur-Timer Verwaltung" @@ -2083,41 +2175,49 @@ msgstr "Struktur-Timer Verwaltung" msgid "Structure Timers" msgstr "Struktur-Timer" -#: stock/templates/registered/timermanagement.html:27 -msgid "Next Timer" -msgstr "Nächster Timer" - -#: stock/templates/registered/timermanagement.html:31 -#: stock/templates/registered/timermanagement.html:133 -#: stock/templates/registered/timermanagement.html:235 timerboard/form.py:16 -msgid "Objective" -msgstr "Ziel" - -#: stock/templates/registered/timermanagement.html:51 -#: stock/templates/registered/timermanagement.html:153 -#: stock/templates/registered/timermanagement.html:256 timerboard/form.py:10 -msgid "Hostile" -msgstr "Feindlich" - -#: stock/templates/registered/timermanagement.html:56 -#: stock/templates/registered/timermanagement.html:158 -#: stock/templates/registered/timermanagement.html:261 timerboard/form.py:10 -msgid "Friendly" -msgstr "Freundlich" - -#: stock/templates/registered/timermanagement.html:61 -#: stock/templates/registered/timermanagement.html:163 -#: stock/templates/registered/timermanagement.html:266 timerboard/form.py:10 -msgid "Neutral" -msgstr "Neutral" - -#: stock/templates/registered/timermanagement.html:129 +#: stock/templates/registered/timermanagement.html:26 msgid "Corp Timers" msgstr "Corp Timer" -#: stock/templates/registered/timermanagement.html:231 -msgid "Future Timers" -msgstr "Zukünftige Timer" +#: stock/templates/registered/timermanagement.html:30 +#: stock/templates/registered/timermanagement.html:162 +#: stock/templates/registered/timermanagement.html:294 timerboard/form.py:21 +msgid "Objective" +msgstr "Ziel" + +#: stock/templates/registered/timermanagement.html:50 +#: stock/templates/registered/timermanagement.html:182 +#: stock/templates/registered/timermanagement.html:314 timerboard/form.py:15 +msgid "Hostile" +msgstr "Feindlich" + +#: stock/templates/registered/timermanagement.html:55 +#: stock/templates/registered/timermanagement.html:187 +#: stock/templates/registered/timermanagement.html:319 timerboard/form.py:15 +msgid "Friendly" +msgstr "Freundlich" + +#: stock/templates/registered/timermanagement.html:60 +#: stock/templates/registered/timermanagement.html:192 +#: stock/templates/registered/timermanagement.html:324 timerboard/form.py:15 +msgid "Neutral" +msgstr "Neutral" + +#: stock/templates/registered/timermanagement.html:157 +msgid "Next Timers" +msgstr "Nächste Timer" + +#: stock/templates/registered/timermanagement.html:287 +msgid "No upcoming timers." +msgstr "Keine kommenden timer." + +#: stock/templates/registered/timermanagement.html:289 +msgid "Past Timers" +msgstr "Vergangene Timer" + +#: stock/templates/registered/timermanagement.html:420 +msgid "No past timers." +msgstr "Keine vergangenen Timer." #: stock/templates/registered/timerupdate.html:15 #: stock/templates/registered/timerupdate.html:27 @@ -2133,19 +2233,19 @@ msgstr "Struktur Timer existiert nicht" msgid "Password Change" msgstr "Passwort ändern" -#: stock/templates/registration/password_reset_complete.html:49 +#: stock/templates/registration/password_reset_complete.html:45 msgid "Password reset complete" msgstr "Passwort wurde zurückgesetzt" -#: stock/templates/registration/password_reset_complete.html:51 +#: stock/templates/registration/password_reset_complete.html:47 msgid "Your password has been set." msgstr "Passwort wurde gesetzt" -#: stock/templates/registration/password_reset_confirm.html:58 +#: stock/templates/registration/password_reset_confirm.html:54 msgid "Password reset unsuccessful" msgstr "Passwort Zurücksetzen Fehlgeschlagen" -#: stock/templates/registration/password_reset_confirm.html:60 +#: stock/templates/registration/password_reset_confirm.html:56 msgid "" "The password reset link was invalid, possibly because it has already been " "used. Please request a new password reset." @@ -2198,49 +2298,62 @@ msgstr "Vielen dank, dass du unsere Seite nutzt!" msgid "Your IT Team" msgstr "Euer IT Team" -#: stock/templates/registration/password_reset_form.html:51 +#: stock/templates/registration/password_reset_form.html:46 msgid "Password Reset" msgstr "Passwort zurücksetzen" -#: stock/templates/registration/password_reset_form.html:53 +#: stock/templates/registration/password_reset_form.html:48 msgid "Forgotten your password? Enter your email below." msgstr "Hast du dein Passwort vergessen? Gib unten deine Email-Adresse ein." -#: stock/templates/registration/password_reset_form.html:56 +#: stock/templates/registration/password_reset_form.html:51 msgid "Reset Password" msgstr "Passwort zurücksetzen" -#: timerboard/form.py:9 +#: timerboard/form.py:14 msgid "Other" msgstr "anderes" -#: timerboard/form.py:14 +#: timerboard/form.py:19 msgid "Planet/Moon" msgstr "Planet/Mond" -#: timerboard/form.py:15 +#: timerboard/form.py:20 msgid "Structure Type" msgstr "Struktur-Timer" -#: timerboard/form.py:17 +#: timerboard/form.py:22 msgid "Days Remaining" msgstr "Tage Verbleibend" -#: timerboard/form.py:18 +#: timerboard/form.py:23 msgid "Hours Remaining" msgstr "Stunden Verbleibend" -#: timerboard/form.py:19 +#: timerboard/form.py:25 msgid "Minutes Remaining" msgstr "Minuten Verbleibend" -#: timerboard/form.py:20 +#: timerboard/form.py:27 msgid "Important" msgstr "Wichtig" -#: timerboard/form.py:21 +#: timerboard/form.py:28 msgid "Corp-Restricted" msgstr "Corp-beschränkt" +#: timerboard/views.py:95 +msgid "Added new timer in %(system)s at %(time)s." +msgstr "Neuen Timer hinzugefügt in %(system)s um %(time)s." +#: timerboard/views.py:114 +msgid "Deleted timer in %(system)s at %(time)s." +msgstr "Timer in %(system)s um %(time)s entfernt." +#: timerboard/views.py:118 +msgid "Unable to locate timer with ID %(timerid)s." +msgstr "Unfähig den Timer mit der ID %(timerid)s zu finden. " + +#: timerboard/views.py:154 +msgid "Saved changes to the timer." +msgstr "Änderungen am Timer gespeichert" \ No newline at end of file diff --git a/notifications/views.py b/notifications/views.py index 201d7c9f..a75e64a8 100644 --- a/notifications/views.py +++ b/notifications/views.py @@ -3,6 +3,7 @@ from django.shortcuts import render, get_object_or_404, redirect from .models import Notification from django.contrib.auth.decorators import login_required from django.contrib import messages +from django.utils.translation import ugettext_lazy as _ import logging logger = logging.getLogger(__name__) @@ -33,7 +34,7 @@ def notification_view(request, notif_id): else: logger.warn( "User %s not authorized to view notif_id %s belonging to user %s" % (request.user, notif_id, notif.user)) - messages.error(request, 'You are not authorized to view that notification.') + messages.error(request, _('You are not authorized to view that notification.')) return redirect('auth_notification_list') @@ -45,11 +46,11 @@ def remove_notification(request, notif_id): if Notification.objects.filter(id=notif_id).exists(): notif.delete() logger.info("Deleting notif id %s by user %s" % (notif_id, request.user)) - messages.success(request, 'Deleted notification.') + messages.success(request, _('Deleted notification.')) else: logger.error( "Unable to delete notif id %s for user %s - notif matching id not found." % (notif_id, request.user)) - messages.error(request, 'Failed to locate notification.') + messages.error(request, _('Failed to locate notification.')) return redirect('auth_notification_list') @@ -57,7 +58,7 @@ def remove_notification(request, notif_id): def mark_all_read(request): logger.debug('mark all notifications read called by user %s' % request.user) Notification.objects.filter(user=request.user).update(viewed=True) - messages.success(request, 'Marked all notifications as read.') + messages.success(request, _('Marked all notifications as read.')) return redirect('auth_notification_list') @@ -65,5 +66,5 @@ def mark_all_read(request): def delete_all_read(request): logger.debug('delete all read notifications called by user %s' % request.user) Notification.objects.filter(user=request.user).filter(viewed=True).delete() - messages.success(request, 'Deleted all read notifications.') + messages.success(request, _('Deleted all read notifications.')) return redirect('auth_notification_list') diff --git a/optimer/views.py b/optimer/views.py index d201dbe1..e10c35e7 100644 --- a/optimer/views.py +++ b/optimer/views.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import permission_required from django.utils import timezone +from django.utils.translation import ugettext_lazy as _ from django.shortcuts import get_object_or_404 from django.shortcuts import render, redirect from django.contrib import messages @@ -53,7 +54,7 @@ def add_optimer_view(request): op.eve_character = character op.save() logger.info("User %s created op timer with name %s" % (request.user, op.operation_name)) - messages.success(request, 'Created operation timer for %s.' % op.operation_name) + messages.success(request, _('Created operation timer for %(opname)s.') % {"opname": op.operation_name}) return redirect("/optimer/") else: logger.debug("Returning new opForm") @@ -72,7 +73,7 @@ def remove_optimer(request, optimer_id): op = optimer.objects.get(id=optimer_id) op.delete() logger.info("Deleting optimer id %s by user %s" % (optimer_id, request.user)) - messages.success(request, 'Removed operation timer for %s.' % op.operation_name) + messages.success(request, _('Removed operation timer for %(opname)s.') % {"opname": op.operation_name}) else: logger.error("Unable to delete optimer id %s for user %s - operation matching id not found." % ( optimer_id, request.user)) @@ -101,7 +102,7 @@ def edit_optimer(request, optimer_id): op.eve_character = character logger.info("User %s updating optimer id %s " % (request.user, optimer_id)) op.save() - messages.success(request, 'Saved changes to operation timer for %s.' % op.operation_name) + messages.success(request, _('Saved changes to operation timer for %(opname)s.') % {"opname": op.operation_name}) return redirect("auth_optimer_view") else: data = { diff --git a/services/modules/discord/templates/registered/discord_service_ctrl.html b/services/modules/discord/templates/registered/discord_service_ctrl.html index f9315c9a..7b7fa34b 100644 --- a/services/modules/discord/templates/registered/discord_service_ctrl.html +++ b/services/modules/discord/templates/registered/discord_service_ctrl.html @@ -20,7 +20,7 @@ {% endif %} {% if request.user.is_superuser %} {% endif %} diff --git a/services/views.py b/services/views.py index 7cfd3833..a5517341 100755 --- a/services/views.py +++ b/services/views.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from django.contrib import messages from django.contrib.auth.decorators import login_required from django.shortcuts import render +from django.utils.translation import ugettext_lazy as _ from alliance_auth.hooks import get_hooks from authentication.decorators import members_and_blues @@ -54,7 +55,7 @@ def services_view(request): try: char = EveCharacter.objects.get(character_id=auth.main_char_id) except EveCharacter.DoesNotExist: - messages.warning(request, "There's a problem with your main character. Please select a new one.") + messages.warning(request, _("There's a problem with your main character. Please select a new one.")) context = {'service_ctrls': []} for fn in get_hooks('services_hook'): diff --git a/srp/form.py b/srp/form.py index 7dfccfe6..2d0d6504 100755 --- a/srp/form.py +++ b/srp/form.py @@ -21,7 +21,7 @@ class SrpFleetUserRequestForm(forms.Form): def clean_killboard_link(self): data = self.cleaned_data['killboard_link'] if "zkillboard.com" not in data: - raise forms.ValidationError("Invalid Link. Please use zKillboard.com") + raise forms.ValidationError(_("Invalid Link. Please use zKillboard.com")) return data diff --git a/srp/views.py b/srp/views.py index f327108b..775a7f96 100755 --- a/srp/views.py +++ b/srp/views.py @@ -14,6 +14,7 @@ from srp.form import SrpFleetMainUpdateForm from services.managers.srp_manager import srpManager from notifications import notify from django.utils import timezone +from django.utils.translation import ugettext_lazy as _ from authentication.decorators import members_and_blues import uuid @@ -93,7 +94,7 @@ def srp_fleet_add_view(request): completed = True completed_srp_code = srp_fleet_main.fleet_srp_code logger.info("Created SRP Fleet %s by user %s" % (srp_fleet_main.fleet_name, request.user)) - messages.success(request, 'Created SRP fleet %s.' % srp_fleet_main.fleet_name) + messages.success(request, _('Created SRP fleet %(fleetname)s.') % {"fleetname": srp_fleet_main.fleet_name}) else: logger.debug("Returning blank SrpFleetMainForm") @@ -112,11 +113,11 @@ def srp_fleet_remove(request, fleet_id): srpfleetmain = SrpFleetMain.objects.get(id=fleet_id) srpfleetmain.delete() logger.info("SRP Fleet %s deleted by user %s" % (srpfleetmain.fleet_name, request.user)) - messages.success(request, 'Removed SRP fleet %s.' % srpfleetmain.fleet_name) + messages.success(request, _('Removed SRP fleet %(fleetname)s.') % {"fleetname": srpfleetmain.fleet_name}) else: logger.error( "Unable to delete SRP fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user)) - messages.error(request, 'Unable to locate SRP fleet with ID %s' % fleet_id) + messages.error(request, _('Unable to locate SRP fleet with ID %(fleetid)s') % {"fleetid": fleet_id}) return redirect("auth_srp_management_view") @@ -129,11 +130,11 @@ def srp_fleet_disable(request, fleet_id): srpfleetmain.fleet_srp_code = "" srpfleetmain.save() logger.info("SRP Fleet %s disabled by user %s" % (srpfleetmain.fleet_name, request.user)) - messages.success(request, 'Disabled SRP fleet %s.' % srpfleetmain.fleet_name) + messages.success(request, _('Disabled SRP fleet %(fleetname)s.') % {"fleetname": srpfleetmain.fleet_name}) else: logger.error( "Unable to disable SRP fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user)) - messages.error(request, 'Unable to locate SRP fleet with ID %s' % fleet_id) + messages.error(request, _('Unable to locate SRP fleet with ID %(fleetid)s') % {"fleetid": fleet_id}) return redirect("auth_srp_management_view") @@ -146,11 +147,11 @@ def srp_fleet_enable(request, fleet_id): srpfleetmain.fleet_srp_code = random_string(8) srpfleetmain.save() logger.info("SRP Fleet %s enable by user %s" % (srpfleetmain.fleet_name, request.user)) - messages.success(request, 'Enabled SRP fleet %s.' % srpfleetmain.fleet_name) + messages.success(request, _('Enabled SRP fleet %(fleetname)s.') % {"fleetname": srpfleetmain.fleet_name}) else: logger.error( "Unable to enable SRP fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user)) - messages.error(request, 'Unable to locate SRP fleet with ID %s' % fleet_id) + messages.error(request, _('Unable to locate SRP fleet with ID %(fleetid)s') % {"fleetid": fleet_id}) return redirect("auth_srp_management_view") @@ -163,11 +164,11 @@ def srp_fleet_mark_completed(request, fleet_id): srpfleetmain.fleet_srp_status = "Completed" srpfleetmain.save() logger.info("Marked SRP Fleet %s as completed by user %s" % (srpfleetmain.fleet_name, request.user)) - messages.success(request, 'Marked SRP fleet %s as completed.' % srpfleetmain.fleet_name) + messages.success(request, _('Marked SRP fleet %(fleetname)s as completed.') % {"fleetname": srpfleetmain.fleet_name}) else: logger.error("Unable to mark SRP fleet with id %s as completed for user %s - fleet matching id not found." % ( fleet_id, request.user)) - messages.error(request, 'Unable to locate SRP fleet with ID %s' % fleet_id) + messages.error(request, _('Unable to locate SRP fleet with ID %(fleetid)s') % {"fleetid": fleet_id}) return redirect("auth_srp_fleet_view", fleet_id) @@ -180,12 +181,12 @@ def srp_fleet_mark_uncompleted(request, fleet_id): srpfleetmain.fleet_srp_status = "" srpfleetmain.save() logger.info("Marked SRP Fleet %s as incomplete for user %s" % (fleet_id, request.user)) - messages.success(request, 'Marked SRP fleet %s as incomplete.' % srpfleetmain.fleet_name) + messages.success(request, _('Marked SRP fleet %(fleetname)s as incomplete.') % {"fleetname": srpfleetmain.fleet_name}) return redirect("auth_srp_fleet_view", fleet_id) else: logger.error("Unable to mark SRP Fleet id %s as incomplete for user %s - fleet matching id not found." % ( fleet_id, request.user)) - messages.error(request, 'Unable to locate SRP fleet with ID %s' % fleet_id) + messages.error(request, _('Unable to locate SRP fleet with ID %(fleetid)s') % {"fleetid": fleet_id}) return redirect('auth_srp_management_view') @@ -224,7 +225,7 @@ def srp_request_view(request, fleet_srp): request.user, srp_request.killboard_link)) # THIS SHOULD BE IN FORM VALIDATION messages.error(request, - "Your SRP request Killmail link is invalid. Please make sure you are using zKillboard.") + _("Your SRP request Killmail link is invalid. Please make sure you are using zKillboard.")) return redirect("auth_srp_management_view") srp_ship_name = EveManager.get_itemtype(ship_type_id).name srp_request.srp_ship_name = srp_ship_name @@ -235,7 +236,7 @@ def srp_request_view(request, fleet_srp): completed = True logger.info("Created SRP Request on behalf of user %s for fleet name %s" % ( request.user, srp_fleet_main.fleet_name)) - messages.success(request, 'Submitted SRP request for your %s.' % srp_ship_name) + messages.success(request, _('Submitted SRP request for your %(ship)s.') % {"ship": srp_ship_name}) else: logger.debug("Returning blank SrpFleetUserRequestForm") @@ -257,12 +258,12 @@ def srp_request_remove(request, srp_request_id): stored_fleet_view = srpuserrequest.srp_fleet_main.id srpuserrequest.delete() logger.info("Deleted SRP request id %s for user %s" % (srp_request_id, request.user)) - messages.success(request, 'Deleted SRP request from %s for their %s.' % ( - srpuserrequest.character, srpuserrequest.srp_ship_name)) + messages.success(request, _('Deleted SRP request from %(character)s for their %(ship)s.') % { + "character": srpuserrequest.character, "ship": srpuserrequest.srp_ship_name}) if stored_fleet_view is None: logger.error("Unable to delete srp request id %s for user %s - request matching id not found." % ( srp_request_id, request.user)) - messages.error(request, 'Unable to locate SRP request with ID %s' % srp_request_id) + messages.error(request, _('Unable to locate SRP request with ID %(requestid)s') % {"requestid": srp_request_id}) return redirect("auth_srp_management_view") else: return redirect("auth_srp_fleet_view", stored_fleet_view) @@ -283,8 +284,8 @@ def srp_request_approve(request, srp_request_id): srpuserrequest.save() logger.info("Approved SRP request id %s for character %s by user %s" % ( srp_request_id, srpuserrequest.character, request.user)) - messages.success(request, 'Approved SRP request from %s for their %s.' % ( - srpuserrequest.character, srpuserrequest.srp_ship_name)) + messages.success(request, _('Approved SRP request from %(character)s for their %(ship)s.') % { + "character": srpuserrequest.character, "ship": srpuserrequest.srp_ship_name}) notify( srpuserrequest.character.user, 'SRP Request Approved', @@ -295,7 +296,7 @@ def srp_request_approve(request, srp_request_id): if stored_fleet_view is None: logger.error("Unable to approve srp request id %s on behalf of user %s - request matching id not found." % ( srp_request_id, request.user)) - messages.error(request, 'Unable to locate SRP request with ID %s' % srp_request_id) + messages.error(request, _('Unable to locate SRP request with ID %(requestid)s') % {"requestid": srp_request_id}) return redirect("auth_srp_management_view") else: return redirect("auth_srp_fleet_view", stored_fleet_view) @@ -314,8 +315,8 @@ def srp_request_reject(request, srp_request_id): srpuserrequest.save() logger.info("SRP request id %s for character %s rejected by %s" % ( srp_request_id, srpuserrequest.character, request.user)) - messages.success(request, 'Rejected SRP request from %s for their %s.' % ( - srpuserrequest.character, srpuserrequest.srp_ship_name)) + messages.success(request, _('Rejected SRP request from %(character)s for their %(ship)s.') % { + "character": srpuserrequest.character, "ship": srpuserrequest.srp_ship_name}) notify( srpuserrequest.character.user, 'SRP Request Rejected', @@ -327,7 +328,7 @@ def srp_request_reject(request, srp_request_id): if stored_fleet_view is None: logger.error("Unable to reject SRP request id %s on behalf of user %s - request matching id not found." % ( srp_request_id, request.user)) - messages.error(request, 'Unable to locate SRP request with ID %s' % srp_request_id) + messages.error(request, _('Unable to locate SRP request with ID %(requestid)s') % {"requestid": srp_request_id}) return redirect("auth_srp_management_view") else: return redirect("auth_srp_fleet_view", stored_fleet_view) @@ -341,7 +342,7 @@ def srp_request_update_amount_view(request, fleet_srp_request_id): if SrpUserRequest.objects.filter(id=fleet_srp_request_id).exists() is False: logger.error("Unable to locate SRP request id %s for user %s" % (fleet_srp_request_id, request.user)) - messages.error(request, 'Unable to locate SRP request with ID %s' % fleet_srp_request_id) + messages.error(request, _('Unable to locate SRP request with ID %(requestid)s') % {"requestid": fleet_srp_request_id}) return redirect("auth_srp_management_view") if request.method == 'POST': @@ -353,7 +354,7 @@ def srp_request_update_amount_view(request, fleet_srp_request_id): srp_request.save() logger.info("Updated srp request id %s total to %s by user %s" % ( fleet_srp_request_id, form.cleaned_data['srp_total_amount'], request.user)) - messages.success(request, 'Updated SRP amount.') + messages.success(request, _('Updated SRP amount.')) return redirect("auth_srp_fleet_view", srp_request.srp_fleet_main.id) else: logger.debug("Returning blank SrpFleetUpdateCostForm") @@ -378,7 +379,7 @@ def srp_fleet_edit_view(request, fleet_id): srpfleetmain.fleet_srp_aar_link = form.cleaned_data['fleet_aar_link'] srpfleetmain.save() logger.info("User %s edited SRP Fleet %s" % (request.user, srpfleetmain.fleet_name)) - messages.success(request, 'Saved changes to SRP fleet %s' % srpfleetmain.fleet_name) + messages.success(request, _('Saved changes to SRP fleet %(fleetname)s') % {"fleetname": srpfleetmain.fleet_name}) return redirect("auth_srp_management_view") else: logger.debug("Returning blank SrpFleetMainUpdateForm") @@ -389,5 +390,5 @@ def srp_fleet_edit_view(request, fleet_id): else: logger.error( "Unable to edit srp fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user)) - messages.error(request, 'Unable to locate SRP fleet with ID %s' % fleet_id) + messages.error(request, _('Unable to locate SRP fleet with ID %(fleetid)s') % {"fleetid": fleet_id}) return redirect("auth_srp_management_view") diff --git a/stock/templates/public/base.html b/stock/templates/public/base.html index c6db7eb3..51a66054 100755 --- a/stock/templates/public/base.html +++ b/stock/templates/public/base.html @@ -65,7 +65,7 @@ {% endif %} {% if user.is_authenticated %} {% if user.is_staff %} -
  • Admin
  • +
  • {% trans "Admin" %}
  • {% endif %}
  • {% trans "Logout" %}
  • {% else %} @@ -162,7 +162,7 @@
  • - Fleet Activity Tracking + {% trans " Fleet Activity Tracking" %}
  • diff --git a/stock/templates/public/login.html b/stock/templates/public/login.html index 0a0564c9..dc8366aa 100644 --- a/stock/templates/public/login.html +++ b/stock/templates/public/login.html @@ -11,7 +11,7 @@ - {{ SITE_NAME }} - Login + {{ SITE_NAME }} - {% trans "Login" %} {% include 'bundles/bootstrap-css.html' %} {% include 'bundles/fontawesome.html' %} diff --git a/stock/templates/public/register.html b/stock/templates/public/register.html index 62697b89..147fa989 100644 --- a/stock/templates/public/register.html +++ b/stock/templates/public/register.html @@ -10,7 +10,7 @@ - {{ SITE_NAME }} - Login + {{ SITE_NAME }} - {% trans "Registration" %} {% include 'bundles/bootstrap-css.html' %} {% include 'bundles/fontawesome.html' %} diff --git a/stock/templates/registered/addapikey.html b/stock/templates/registered/addapikey.html index 2a3382a6..03c003e7 100644 --- a/stock/templates/registered/addapikey.html +++ b/stock/templates/registered/addapikey.html @@ -24,9 +24,9 @@

    {% endif %}

    - {% blocktrans %}Create - a full API key{% endblocktrans %} + {% trans "Create + a full API key" %}

    {% blocktrans %}Blue API keys require access mask {{BLUE_API_MASK}} or greater for services.{% endblocktrans %} @@ -37,9 +37,9 @@

    {% endif %}

    - {% blocktrans %}Create - a blue key{% endblocktrans %} + {% trans "Create + a blue key" %}

    diff --git a/stock/templates/registered/addoperation.html b/stock/templates/registered/addoperation.html index 66ef70d2..88116a5a 100644 --- a/stock/templates/registered/addoperation.html +++ b/stock/templates/registered/addoperation.html @@ -4,7 +4,7 @@ {% load i18n %} {% get_current_language as LANGUAGE_CODE %} -{% block title %}Alliance Auth - Fleet Operation Create{% endblock %} +{% block title %}{% trans "Alliance Auth - Fleet Operation Create" %}{% endblock %} {% block page_title %}{% trans "Create Operation" %}{% endblock page_title %} {% block extra_css %} diff --git a/stock/templates/registered/addtimer.html b/stock/templates/registered/addtimer.html index 1fc4e9c4..11b1c2e3 100755 --- a/stock/templates/registered/addtimer.html +++ b/stock/templates/registered/addtimer.html @@ -4,7 +4,7 @@ {% load i18n %} {% get_current_language as LANGUAGE_CODE %} -{% block title %}Alliance Auth - Structure Timer Create{% endblock %} +{% block title %}{% trans "Alliance Auth - Structure Timer Create" %}{% endblock %} {% block page_title %}{% trans "Timer Create" %}{% endblock page_title %} {% block extra_css %} diff --git a/stock/templates/registered/apisso.html b/stock/templates/registered/apisso.html index e9bb4291..4b219d21 100644 --- a/stock/templates/registered/apisso.html +++ b/stock/templates/registered/apisso.html @@ -1,13 +1,14 @@ {% extends 'public/base.html' %} {% load staticfiles %} -{% block title %}Verify API Ownership{% endblock %} -{% block page_title%}Verify API Ownership{% endblock %} +{% load i18n %} +{% block title %}{% trans "Verify API Ownership" %}{% endblock %} +{% block page_title%}{% trans "Verify API Ownership" %}{% endblock %} {% block content %}
    -

    Verify API Ownership

    +

    {% trans "Verify API Ownership" %}

    Please authenticate as a character on API {{ api.api_id }} to prove ownership.
    +
    {% blocktrans %}Please authenticate as a character on API {{ api.api_id }} to prove ownership.{% endblocktrans %}
    diff --git a/stock/templates/registered/fleetupdoctrinesview.html b/stock/templates/registered/fleetupdoctrinesview.html index 72407798..7899eacc 100644 --- a/stock/templates/registered/fleetupdoctrinesview.html +++ b/stock/templates/registered/fleetupdoctrinesview.html @@ -78,7 +78,7 @@ {% endfor %} {% else %} -

    There seems to be no Doctrines in here at the moment!

    +

    {% trans "There seems to be no Doctrines in here at the moment!" %}

    {% endif %}
    diff --git a/stock/templates/registered/groupmanagement.html b/stock/templates/registered/groupmanagement.html index 767d7e75..42e622ff 100644 --- a/stock/templates/registered/groupmanagement.html +++ b/stock/templates/registered/groupmanagement.html @@ -42,7 +42,7 @@ {% endfor %} {% else %} -
    No group add requests.
    +
    {% trans "No group add requests." %}
    {% endif %} @@ -73,7 +73,7 @@ {% endfor %} {% else %} -
    No group leave requests.
    +
    {% trans "No group leave requests." %}
    {% endif %} diff --git a/stock/templates/registered/groupmanagementmenu.html b/stock/templates/registered/groupmanagementmenu.html index 2423f3e0..4601cbb3 100644 --- a/stock/templates/registered/groupmanagementmenu.html +++ b/stock/templates/registered/groupmanagementmenu.html @@ -11,7 +11,7 @@ - Group Management + {% trans "Group Management" %} diff --git a/stock/templates/registered/groupmembership.html b/stock/templates/registered/groupmembership.html index 66c7c7a7..9c57204b 100644 --- a/stock/templates/registered/groupmembership.html +++ b/stock/templates/registered/groupmembership.html @@ -47,7 +47,7 @@ {% endfor %} {% else %} -
    No groups to list.
    +
    {% trans "No groups to list." %}
    {% endif %} diff --git a/stock/templates/registered/groups.html b/stock/templates/registered/groups.html index 89d3260a..a96af407 100644 --- a/stock/templates/registered/groups.html +++ b/stock/templates/registered/groups.html @@ -47,7 +47,7 @@ {% endfor %} {% else %} -
    No groups available.
    +
    {% trans "No groups available." %}
    {% endif %} diff --git a/stock/templates/registered/hrapplicationmanagement.html b/stock/templates/registered/hrapplicationmanagement.html index f3967698..ebd5432b 100755 --- a/stock/templates/registered/hrapplicationmanagement.html +++ b/stock/templates/registered/hrapplicationmanagement.html @@ -111,7 +111,7 @@ {% endfor %} {% else %} -
    No pending applications.
    +
    {% trans "No pending applications." %}
    {% endif %} @@ -155,7 +155,7 @@ {% endfor %} {% else %} -
    No reviewed applications.
    +
    {% trans "No reviewed applications." %}
    {% endif %} diff --git a/stock/templates/registered/hrapplicationsearchview.html b/stock/templates/registered/hrapplicationsearchview.html index ac2fedd8..3826d04f 100755 --- a/stock/templates/registered/hrapplicationsearchview.html +++ b/stock/templates/registered/hrapplicationsearchview.html @@ -64,7 +64,7 @@ @@ -76,7 +76,7 @@ {% endfor %} {% else %} -
    No read notifications.
    +
    {% trans "No read notifications." %}
    {% endif %} diff --git a/stock/templates/registered/operationmanagement.html b/stock/templates/registered/operationmanagement.html index 215479f3..db4fa937 100644 --- a/stock/templates/registered/operationmanagement.html +++ b/stock/templates/registered/operationmanagement.html @@ -72,7 +72,7 @@ {% else %} -
    No fleet operations found.
    +
    {% trans "No fleet operations found." %}
    {% endif %} diff --git a/stock/templates/registered/service_credentials.html b/stock/templates/registered/service_credentials.html index 944da785..b92082d1 100644 --- a/stock/templates/registered/service_credentials.html +++ b/stock/templates/registered/service_credentials.html @@ -1,11 +1,12 @@ {% extends "public/base.html" %} {% load staticfiles %} +{% load i18n %} {% block page_title %}Credentials{% endblock page_title %} -{% block title %}Credentials{% endblock title%} +{% block title %}{% trans "Credentials" %}{% endblock title%} {% block content %}
    -

    {{ service }} Credentials

    +

    {% blocktrans %}{{ service }} Credentials{% endblocktrans %}

    @@ -16,7 +17,7 @@
    {% endfor %} - Continue + {% trans "Continue" %}
    diff --git a/stock/templates/registered/srpfleetdata.html b/stock/templates/registered/srpfleetdata.html index dfbb6a6a..ce526b04 100755 --- a/stock/templates/registered/srpfleetdata.html +++ b/stock/templates/registered/srpfleetdata.html @@ -110,7 +110,7 @@ {% endfor %} {% else %} -
    No SRP requests for this fleet.
    +
    {% trans "No SRP requests for this fleet." %}
    {% endif %} diff --git a/stock/templates/registered/srpmanagement.html b/stock/templates/registered/srpmanagement.html index 188ca656..5bd9b408 100755 --- a/stock/templates/registered/srpmanagement.html +++ b/stock/templates/registered/srpmanagement.html @@ -40,7 +40,7 @@ {% trans "Fleet SRP Code" %} {% trans "Fleet ISK Cost" %} {% trans "SRP Status" %} - {% trans "Pending Requests" %} + {% trans "Pending Requests" %} {% trans "Actions" %} {% for srpfleet in srpfleets %} @@ -117,7 +117,7 @@ {% endfor %} {% else %} -
    No SRP fleets created.
    +
    {% trans "No SRP fleets created." %}
    {% endif %} diff --git a/stock/templates/registered/timermanagement.html b/stock/templates/registered/timermanagement.html index 4a9dab24..7b7caf78 100755 --- a/stock/templates/registered/timermanagement.html +++ b/stock/templates/registered/timermanagement.html @@ -290,7 +290,7 @@ {% endfor %} {% else %} -
    No upcoming timers.
    +
    {% trans "No upcoming timers." %}
    {% endif %}

    {% trans "Past Timers" %}

    {% if past_timers %} @@ -426,7 +426,7 @@ {% endfor %} {% else %} -
    No past timers.
    +
    {% trans "No past timers." %}
    {% endif %} diff --git a/timerboard/views.py b/timerboard/views.py index 29e8c408..6bcd6b4c 100755 --- a/timerboard/views.py +++ b/timerboard/views.py @@ -7,6 +7,7 @@ from django.contrib.auth.decorators import permission_required from django.shortcuts import get_object_or_404 from authentication.decorators import members_and_blues from django.utils import timezone +from django.utils.translation import ugettext_lazy as _ from django.contrib import messages from authentication.states import MEMBER_STATE, BLUE_STATE from authentication.models import AuthServicesInfo @@ -91,7 +92,7 @@ def add_timer_view(request): timer.user = request.user timer.save() logger.info("Created new timer in %s at %s by user %s" % (timer.system, timer.eve_time, request.user)) - messages.success(request, 'Added new timer in %s at %s.' % (timer.system, timer.eve_time)) + messages.success(request, _('Added new timer in %(system)s at %(time)s.') % {"system": timer.system, "time": timer.eve_time}) return redirect("/timers/") else: logger.debug("Returning new TimerForm") @@ -110,11 +111,11 @@ def remove_timer(request, timer_id): timer = Timer.objects.get(id=timer_id) timer.delete() logger.debug("Deleting timer id %s by user %s" % (timer_id, request.user)) - messages.success(request, 'Deleted timer in %s at %s.' % (timer.system, timer.eve_time)) + messages.success(request, _('Deleted timer in %(system)s at %(time)s.') % (timer.system, timer.eve_time)) else: logger.error( "Unable to delete timer id %s for user %s - timer matching id not found." % (timer_id, request.user)) - messages.error(request, 'Unable to locate timer with ID %s.' % timer_id) + messages.error(request, _('Unable to locate timer with ID %(timerid)s.') % {"timerid": timer_id}) return redirect("auth_timer_view") @@ -150,7 +151,7 @@ def edit_timer(request, timer_id): timer.eve_character = character timer.eve_corp = corporation logger.info("User %s updating timer id %s " % (request.user, timer_id)) - messages.success(request, 'Saved changes to the timer.') + messages.success(request, _('Saved changes to the timer.')) timer.save() return redirect("auth_timer_view") else: