mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-04 14:16:21 +01:00
Compare commits
109 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55446639c0 | ||
|
|
c703584110 | ||
|
|
7f22a744c6 | ||
|
|
1e0b64d1e0 | ||
|
|
17b0b802b3 | ||
|
|
1ef7a35d67 | ||
|
|
654ebb031f | ||
|
|
77ce2311c9 | ||
|
|
843c3ccf9a | ||
|
|
c19f7e6e79 | ||
|
|
df6a25067d | ||
|
|
ee132b6e60 | ||
|
|
78988fee04 | ||
|
|
ed3cd08d40 | ||
|
|
543e4169e4 | ||
|
|
d696777ba5 | ||
|
|
5caa9c8012 | ||
|
|
5cff1df48d | ||
|
|
2a3d775a9b | ||
|
|
648733d537 | ||
|
|
70caf7606c | ||
|
|
99c65d2a5d | ||
|
|
55125a8ff3 | ||
|
|
2fd0fcdbcb | ||
|
|
2fe7bcf20e | ||
|
|
0c0f2fd5ba | ||
|
|
b32f4ab243 | ||
|
|
70f314e578 | ||
|
|
bc1b1c3a8f | ||
|
|
453512db64 | ||
|
|
4047159fd1 | ||
|
|
f5ddbb8004 | ||
|
|
c45d5d7325 | ||
|
|
c679ec0646 | ||
|
|
69a51bb08a | ||
|
|
442c893c39 | ||
|
|
33df15f882 | ||
|
|
5d56f0a66c | ||
|
|
0fbdbf3a8d | ||
|
|
5291bf6896 | ||
|
|
bd6c0fede5 | ||
|
|
23fe1703c3 | ||
|
|
9139b0da56 | ||
|
|
80145b313f | ||
|
|
e96bdd12f9 | ||
|
|
513b7b88f4 | ||
|
|
5e3fc5c1cb | ||
|
|
d3069db046 | ||
|
|
24863eaf9e | ||
|
|
d138bd61c5 | ||
|
|
bff20ddd5d | ||
|
|
493e694410 | ||
|
|
8c41d9da58 | ||
|
|
9e0358a3ce | ||
|
|
19bb6856a2 | ||
|
|
9751315b97 | ||
|
|
99df847e1f | ||
|
|
60ba82c653 | ||
|
|
bd7f13358a | ||
|
|
4edd0fab9e | ||
|
|
fced909b4d | ||
|
|
e2b96da460 | ||
|
|
ecd27b823e | ||
|
|
dae4afddb1 | ||
|
|
d507663316 | ||
|
|
67081ab465 | ||
|
|
bce90344f8 | ||
|
|
29c6fa292a | ||
|
|
295361a541 | ||
|
|
92a1bd40a3 | ||
|
|
b8bbd0d1c1 | ||
|
|
b7a6c9379a | ||
|
|
e5f3a67919 | ||
|
|
58cc4b84dd | ||
|
|
331dc7d4d0 | ||
|
|
01991b78c9 | ||
|
|
466113e6cb | ||
|
|
b1f5aad9f9 | ||
|
|
464016ac05 | ||
|
|
cc76f09a6e | ||
|
|
a7f6a74211 | ||
|
|
8898c665cf | ||
|
|
313305ab22 | ||
|
|
86559fc11f | ||
|
|
1835b04dc8 | ||
|
|
30180f9fe9 | ||
|
|
f1eac7b84f | ||
|
|
793df66f7a | ||
|
|
188295daac | ||
|
|
0447697106 | ||
|
|
1608950d43 | ||
|
|
23c283c0bb | ||
|
|
b76fa4282a | ||
|
|
d88cb57cf0 | ||
|
|
787140dd7e | ||
|
|
735e890de4 | ||
|
|
77caa5543d | ||
|
|
b2f0962527 | ||
|
|
efc0fcf11d | ||
|
|
1b49ea571e | ||
|
|
3c21a3857a | ||
|
|
d0a769f524 | ||
|
|
222547187e | ||
|
|
ce872d67bb | ||
|
|
fcffb3d2ff | ||
|
|
1930dfab77 | ||
|
|
b4418c8c36 | ||
|
|
295e5a04d8 | ||
|
|
d67ab108a0 |
@@ -25,7 +25,7 @@ before_script:
|
||||
pre-commit-check:
|
||||
<<: *only-default
|
||||
stage: pre-commit
|
||||
image: python:3.11-bookworm
|
||||
image: python:3.11-trixie
|
||||
# variables:
|
||||
# PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
|
||||
# cache:
|
||||
@@ -65,7 +65,7 @@ test-3.8-core:
|
||||
|
||||
test-3.9-core:
|
||||
<<: *only-default
|
||||
image: python:3.9-bookworm
|
||||
image: python:3.9-trixie
|
||||
script:
|
||||
- tox -e py39-core
|
||||
artifacts:
|
||||
@@ -77,7 +77,7 @@ test-3.9-core:
|
||||
|
||||
test-3.10-core:
|
||||
<<: *only-default
|
||||
image: python:3.10-bookworm
|
||||
image: python:3.10-trixie
|
||||
script:
|
||||
- tox -e py310-core
|
||||
artifacts:
|
||||
@@ -89,7 +89,7 @@ test-3.10-core:
|
||||
|
||||
test-3.11-core:
|
||||
<<: *only-default
|
||||
image: python:3.11-bookworm
|
||||
image: python:3.11-trixie
|
||||
script:
|
||||
- tox -e py311-core
|
||||
artifacts:
|
||||
@@ -101,7 +101,7 @@ test-3.11-core:
|
||||
|
||||
test-3.12-core:
|
||||
<<: *only-default
|
||||
image: python:3.12-bookworm
|
||||
image: python:3.12-trixie
|
||||
script:
|
||||
- tox -e py312-core
|
||||
artifacts:
|
||||
@@ -125,7 +125,7 @@ test-3.8-all:
|
||||
|
||||
test-3.9-all:
|
||||
<<: *only-default
|
||||
image: python:3.9-bookworm
|
||||
image: python:3.9-trixie
|
||||
script:
|
||||
- tox -e py39-all
|
||||
artifacts:
|
||||
@@ -137,7 +137,7 @@ test-3.9-all:
|
||||
|
||||
test-3.10-all:
|
||||
<<: *only-default
|
||||
image: python:3.10-bookworm
|
||||
image: python:3.10-trixie
|
||||
script:
|
||||
- tox -e py310-all
|
||||
artifacts:
|
||||
@@ -149,7 +149,7 @@ test-3.10-all:
|
||||
|
||||
test-3.11-all:
|
||||
<<: *only-default
|
||||
image: python:3.11-bookworm
|
||||
image: python:3.11-trixie
|
||||
script:
|
||||
- tox -e py311-all
|
||||
artifacts:
|
||||
@@ -162,7 +162,7 @@ test-3.11-all:
|
||||
|
||||
test-3.12-all:
|
||||
<<: *only-default
|
||||
image: python:3.12-bookworm
|
||||
image: python:3.12-trixie
|
||||
script:
|
||||
- tox -e py312-all
|
||||
artifacts:
|
||||
@@ -174,7 +174,7 @@ test-3.12-all:
|
||||
|
||||
build-test:
|
||||
stage: test
|
||||
image: python:3.11-bookworm
|
||||
image: python:3.11-trixie
|
||||
|
||||
before_script:
|
||||
- python -m pip install --upgrade pip
|
||||
@@ -193,13 +193,13 @@ build-test:
|
||||
|
||||
test-docs:
|
||||
<<: *only-default
|
||||
image: python:3.11-bookworm
|
||||
image: python:3.11-trixie
|
||||
script:
|
||||
- tox -e docs
|
||||
|
||||
deploy_production:
|
||||
stage: deploy
|
||||
image: python:3.11-bookworm
|
||||
image: python:3.11-trixie
|
||||
|
||||
before_script:
|
||||
- python -m pip install --upgrade pip
|
||||
|
||||
@@ -25,19 +25,19 @@ exclude: |
|
||||
repos:
|
||||
# Code Upgrades
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v3.20.0
|
||||
rev: v3.21.2
|
||||
hooks:
|
||||
- id: pyupgrade
|
||||
args: [--py38-plus]
|
||||
- repo: https://github.com/adamchainz/django-upgrade
|
||||
rev: 1.25.0
|
||||
rev: 1.29.1
|
||||
hooks:
|
||||
- id: django-upgrade
|
||||
args: [--target-version=4.2]
|
||||
|
||||
# Formatting
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v5.0.0
|
||||
rev: v6.0.0
|
||||
hooks:
|
||||
# Identify invalid files
|
||||
- id: check-ast
|
||||
@@ -55,8 +55,6 @@ repos:
|
||||
# - id: check-docstring-first
|
||||
- id: debug-statements
|
||||
# - id: requirements-txt-fixer
|
||||
- id: fix-encoding-pragma
|
||||
args: [--remove]
|
||||
- id: fix-byte-order-marker
|
||||
# General quality checks
|
||||
- id: mixed-line-ending
|
||||
@@ -66,11 +64,11 @@ repos:
|
||||
- id: check-executables-have-shebangs
|
||||
- id: end-of-file-fixer
|
||||
- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
|
||||
rev: 3.2.1
|
||||
rev: 3.6.0
|
||||
hooks:
|
||||
- id: editorconfig-checker
|
||||
- repo: https://github.com/igorshubovych/markdownlint-cli
|
||||
rev: v0.45.0
|
||||
rev: v0.47.0
|
||||
hooks:
|
||||
- id: markdownlint
|
||||
language: node
|
||||
@@ -78,7 +76,7 @@ repos:
|
||||
- --disable=MD013
|
||||
# Infrastructure
|
||||
- repo: https://github.com/tox-dev/pyproject-fmt
|
||||
rev: v2.6.0
|
||||
rev: v2.11.1
|
||||
hooks:
|
||||
- id: pyproject-fmt
|
||||
name: pyproject.toml formatter
|
||||
@@ -86,7 +84,7 @@ repos:
|
||||
args:
|
||||
- --indent=4
|
||||
additional_dependencies:
|
||||
- tox==4.24.1 # https://github.com/tox-dev/tox/releases/latest
|
||||
- tox==4.32.0 # https://github.com/tox-dev/tox/releases/latest
|
||||
- repo: https://github.com/abravalheri/validate-pyproject
|
||||
rev: v0.24.1
|
||||
hooks:
|
||||
|
||||
1
CODEOWNERS
Normal file
1
CODEOWNERS
Normal file
@@ -0,0 +1 @@
|
||||
* @allianceauth
|
||||
@@ -63,7 +63,6 @@ Here is an example of the Alliance Auth web site with a mixture of Services, App
|
||||
- [Aaron Kable](https://gitlab.com/aaronkable/)
|
||||
- [Ariel Rin](https://gitlab.com/soratidus999/)
|
||||
- [Col Crunch](https://gitlab.com/colcrunch/)
|
||||
- [Erik Kalkoken](https://gitlab.com/ErikKalkoken/)
|
||||
- [Rounon Dax](https://gitlab.com/ppfeufer)
|
||||
- [snipereagle1](https://gitlab.com/mckernanin)
|
||||
|
||||
@@ -71,6 +70,7 @@ Here is an example of the Alliance Auth web site with a mixture of Services, App
|
||||
|
||||
- [Adarnof](https://gitlab.com/adarnof/)
|
||||
- [Basraah](https://gitlab.com/basraah/)
|
||||
- [Erik Kalkoken](https://gitlab.com/ErikKalkoken/)
|
||||
|
||||
### Beta Testers / Bug Fixers
|
||||
|
||||
@@ -89,6 +89,6 @@ Alliance Auth is maintained and developed by the community and we welcome every
|
||||
|
||||
To see what needs to be worked on please review our issue list or chat with our active developers on Discord.
|
||||
|
||||
Also, please make sure you have signed the [License Agreement](https://developers.eveonline.com/resource/license-agreement) by logging in at [https://developers.eveonline.com](https://developers.eveonline.com) before submitting any pull requests.
|
||||
Also, please make sure you have signed the [License Agreement](https://developers.eveonline.com/license-agreement) by logging in at [https://developers.eveonline.com](https://developers.eveonline.com) before submitting any pull requests.
|
||||
|
||||
In addition to the core AA system we also very much welcome contributions to our growing list of 3rd party services and plugin apps. Please see [AA Community Creations](https://gitlab.com/allianceauth/community-creations) for details.
|
||||
|
||||
@@ -5,7 +5,7 @@ manage online service access.
|
||||
# This will make sure the app is always imported when
|
||||
# Django starts so that shared_task will use this app.
|
||||
|
||||
__version__ = '4.9.0'
|
||||
__version__ = '4.12.0'
|
||||
__title__ = 'Alliance Auth'
|
||||
__title_useragent__ = 'AllianceAuth'
|
||||
__url__ = 'https://gitlab.com/allianceauth/allianceauth'
|
||||
|
||||
@@ -52,4 +52,10 @@ class UserSettingsMiddleware(MiddlewareMixin):
|
||||
except Exception as e:
|
||||
logger.exception(e)
|
||||
|
||||
# Minimize Menu
|
||||
try:
|
||||
request.session["MINIMIZE_SIDEBAR"] = request.user.profile.minimize_sidebar
|
||||
except Exception as e:
|
||||
pass # We don't care that an anonymous user has no profile (not logged in)
|
||||
|
||||
return response
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 4.2.25 on 2025-10-14 22:02
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentication", "0024_alter_userprofile_language"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="userprofile",
|
||||
name="minimize_sidebar",
|
||||
field=models.BooleanField(
|
||||
default=False,
|
||||
help_text="Keep the sidebar menu minimized",
|
||||
verbose_name="Minimize Sidebar Menu",
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -97,7 +97,8 @@ class UserProfile(models.Model):
|
||||
on_delete=models.SET_DEFAULT,
|
||||
default=get_guest_state_pk)
|
||||
language = models.CharField(
|
||||
_("Language"), max_length=10,
|
||||
_("Language"),
|
||||
max_length=10,
|
||||
choices=Language.choices,
|
||||
blank=True,
|
||||
default='')
|
||||
@@ -112,6 +113,12 @@ class UserProfile(models.Model):
|
||||
null=True,
|
||||
help_text="Bootstrap 5 Themes from https://bootswatch.com/ or Community Apps"
|
||||
)
|
||||
minimize_sidebar = models.BooleanField(
|
||||
_("Minimize Sidebar Menu"),
|
||||
default=False,
|
||||
help_text=_("Keep the sidebar menu minimized")
|
||||
)
|
||||
|
||||
|
||||
def assign_state(self, state=None, commit=True):
|
||||
if not state:
|
||||
|
||||
@@ -27,7 +27,7 @@ def dashboard_results(hours: int) -> _TaskCounts:
|
||||
my_earliest = events.first_event(earliest=earliest)
|
||||
return [my_earliest] if my_earliest else []
|
||||
|
||||
earliest = dt.datetime.utcnow() - dt.timedelta(hours=hours)
|
||||
earliest = dt.datetime.now(dt.timezone.utc) - dt.timedelta(hours=hours)
|
||||
earliest_events = []
|
||||
succeeded_count = succeeded_tasks.count(earliest=earliest)
|
||||
earliest_events += earliest_if_exists(succeeded_tasks, earliest)
|
||||
|
||||
@@ -42,7 +42,7 @@ class EventSeries:
|
||||
- event_time: timestamp of event. Will use current time if not specified.
|
||||
"""
|
||||
if not event_time:
|
||||
event_time = dt.datetime.utcnow()
|
||||
event_time = dt.datetime.now(dt.timezone.utc)
|
||||
my_id = self._redis.incr(self._key_counter)
|
||||
self._redis.zadd(self._key_sorted_set, {my_id: event_time.timestamp()})
|
||||
|
||||
|
||||
@@ -88,6 +88,7 @@ class TestUserSettingsMiddlewareLoginFlow(TestCase):
|
||||
self.request.LANGUAGE_CODE = 'en'
|
||||
self.request.user.profile.language = 'de'
|
||||
self.request.user.profile.night_mode = True
|
||||
self.request.user.profile.minimize_sidebar = False
|
||||
self.request.user.is_anonymous = False
|
||||
self.response = Mock()
|
||||
self.response.content = 'hello world'
|
||||
@@ -173,3 +174,26 @@ class TestUserSettingsMiddlewareLoginFlow(TestCase):
|
||||
self.response
|
||||
)
|
||||
self.assertEqual(self.request.session["NIGHT_MODE"], True)
|
||||
|
||||
def test_middleware_set_mimimize_sidebar(self):
|
||||
"""
|
||||
tests the middleware will always set minimize_sidebar to False (default)
|
||||
"""
|
||||
|
||||
response = self.middleware.process_response(
|
||||
self.request,
|
||||
self.response
|
||||
)
|
||||
self.assertEqual(self.request.session["MINIMIZE_SIDEBAR"], False)
|
||||
|
||||
def test_middleware_minimize_sidebar_when_set(self):
|
||||
"""
|
||||
tests the middleware will set mimimize_sidebar to True from DB
|
||||
"""
|
||||
|
||||
self.request.user.profile.minimize_sidebar = True
|
||||
response = self.middleware.process_response(
|
||||
self.request,
|
||||
self.response
|
||||
)
|
||||
self.assertEqual(self.request.session["MINIMIZE_SIDEBAR"], True)
|
||||
|
||||
@@ -9,6 +9,7 @@ from allianceauth.tests.auth_utils import AuthUtils
|
||||
from allianceauth.authentication.constants import ESI_ERROR_MESSAGE_OVERRIDES
|
||||
|
||||
MODULE_PATH = "allianceauth.authentication.views"
|
||||
TEMPLATETAGS_PATH = "allianceauth.templatetags.admin_status"
|
||||
|
||||
|
||||
def jsonresponse_to_dict(response) -> dict:
|
||||
@@ -17,6 +18,7 @@ def jsonresponse_to_dict(response) -> dict:
|
||||
|
||||
@patch(MODULE_PATH + ".queued_tasks_count")
|
||||
@patch(MODULE_PATH + ".active_tasks_count")
|
||||
@patch(MODULE_PATH + "._celery_stats")
|
||||
class TestRunningTasksCount(TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
@@ -26,36 +28,64 @@ class TestRunningTasksCount(TestCase):
|
||||
cls.user.is_superuser = True
|
||||
cls.user.save()
|
||||
|
||||
def test_should_return_data(
|
||||
self, mock_active_tasks_count, mock_queued_tasks_count
|
||||
):
|
||||
def test_should_return_data(self, mock_celery_stats, mock_tasks_queued, mock_tasks_running):
|
||||
# given
|
||||
mock_active_tasks_count.return_value = 2
|
||||
mock_queued_tasks_count.return_value = 3
|
||||
mock_tasks_running.return_value = 2
|
||||
mock_tasks_queued.return_value = 3
|
||||
mock_celery_stats.return_value = {
|
||||
"tasks_succeeded": 5,
|
||||
"tasks_retried": 1,
|
||||
"tasks_failed": 4,
|
||||
"tasks_total": 11,
|
||||
"tasks_hours": 24,
|
||||
"earliest_task": "2025-08-14T22:47:54.853Z",
|
||||
}
|
||||
|
||||
request = self.factory.get("/")
|
||||
request.user = self.user
|
||||
|
||||
# when
|
||||
response = task_counts(request)
|
||||
|
||||
# then
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertDictEqual(
|
||||
jsonresponse_to_dict(response), {
|
||||
"tasks_running": 2, "tasks_queued": 3}
|
||||
jsonresponse_to_dict(response),
|
||||
{
|
||||
"tasks_succeeded": 5,
|
||||
"tasks_retried": 1,
|
||||
"tasks_failed": 4,
|
||||
"tasks_total": 11,
|
||||
"tasks_hours": 24,
|
||||
"earliest_task": "2025-08-14T22:47:54.853Z",
|
||||
"tasks_running": 3,
|
||||
"tasks_queued": 2,
|
||||
}
|
||||
)
|
||||
|
||||
def test_su_only(
|
||||
self, mock_active_tasks_count, mock_queued_tasks_count
|
||||
):
|
||||
def test_su_only(self, mock_celery_stats, mock_tasks_queued, mock_tasks_running):
|
||||
self.user.is_superuser = False
|
||||
self.user.save()
|
||||
self.user.refresh_from_db()
|
||||
|
||||
# given
|
||||
mock_active_tasks_count.return_value = 2
|
||||
mock_queued_tasks_count.return_value = 3
|
||||
mock_tasks_running.return_value = 2
|
||||
mock_tasks_queued.return_value = 3
|
||||
mock_celery_stats.return_value = {
|
||||
"tasks_succeeded": 5,
|
||||
"tasks_retried": 1,
|
||||
"tasks_failed": 4,
|
||||
"tasks_total": 11,
|
||||
"tasks_hours": 24,
|
||||
"earliest_task": "2025-08-14T22:47:54.853Z",
|
||||
}
|
||||
|
||||
request = self.factory.get("/")
|
||||
request.user = self.user
|
||||
|
||||
# when
|
||||
response = task_counts(request)
|
||||
|
||||
# then
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ from allianceauth.hooks import get_hooks
|
||||
|
||||
from .constants import ESI_ERROR_MESSAGE_OVERRIDES
|
||||
from .core.celery_workers import active_tasks_count, queued_tasks_count
|
||||
from allianceauth.templatetags.admin_status import _celery_stats
|
||||
from .forms import RegistrationForm
|
||||
from .models import CharacterOwnership
|
||||
|
||||
@@ -370,10 +371,10 @@ def registration_closed(request):
|
||||
@user_passes_test(lambda u: u.is_superuser)
|
||||
def task_counts(request) -> JsonResponse:
|
||||
"""Return task counts as JSON for an AJAX call."""
|
||||
data = {
|
||||
"tasks_running": active_tasks_count(),
|
||||
"tasks_queued": queued_tasks_count()
|
||||
}
|
||||
data = _celery_stats()
|
||||
data.update(
|
||||
{"tasks_running": active_tasks_count(), "tasks_queued": queued_tasks_count()}
|
||||
)
|
||||
return JsonResponse(data)
|
||||
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ class StartProject(BaseStartProject):
|
||||
parser.add_argument('--celery', help='The path to the celery executable.')
|
||||
parser.add_argument('--gunicorn', help='The path to the gunicorn executable.')
|
||||
parser.add_argument('--memmon', help='The path to the memmon executable.')
|
||||
parser.add_argument('--venv_directory', help='The path to the virtual environment directory.')
|
||||
|
||||
|
||||
def create_project(parser, options, args):
|
||||
@@ -27,7 +28,7 @@ def create_project(parser, options, args):
|
||||
allianceauth_path = os.path.dirname(allianceauth.__file__)
|
||||
template_path = os.path.join(allianceauth_path, 'project_template')
|
||||
|
||||
# Determine locations of commands to render supervisor cond
|
||||
# Determine locations of commands to render supervisor configuration
|
||||
command_options = {
|
||||
'template': template_path,
|
||||
'python': shutil.which('python'),
|
||||
@@ -35,6 +36,7 @@ def create_project(parser, options, args):
|
||||
'celery': shutil.which('celery'),
|
||||
'memmon': shutil.which('memmon'),
|
||||
'extensions': ['py', 'conf', 'json'],
|
||||
'venv_directory': os.getenv('VIRTUAL_ENV'),
|
||||
}
|
||||
|
||||
# Strip 'start' out of the arguments, leaving project name (and optionally destination dir)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
{% endblock header_nav_brand %}
|
||||
|
||||
{% block header_nav_collapse_left %}
|
||||
<li class="nav-item dropdown">
|
||||
<li class="nav-item dropdown mb-2 mb-lg-0">
|
||||
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">
|
||||
{% translate "Corporations" %}
|
||||
</a>
|
||||
@@ -26,11 +26,7 @@
|
||||
{% endfor %}
|
||||
|
||||
{% if perms.corputils.add_corpstats %}
|
||||
{% if available.count >= 1 %}
|
||||
<li> </li>
|
||||
{% endif %}
|
||||
|
||||
<li>
|
||||
<li class="mt-3">
|
||||
<a class="dropdown-item" href="{% url 'corputils:add' %}">
|
||||
{% translate "Add corporation" %}
|
||||
</a>
|
||||
|
||||
@@ -727,7 +727,8 @@ class TestEveSwaggerProvider(TestCase):
|
||||
my_provider = EveSwaggerProvider()
|
||||
my_client = my_provider.client
|
||||
operation = my_client.Universe.get_universe_factions()
|
||||
self.assertEqual(
|
||||
operation.future.request.headers['User-Agent'],
|
||||
f'AllianceAuth/{aa_version} (dummy@example.net; +{aa_url}) Django-ESI/{esi_version} (+{esi_url})'
|
||||
)
|
||||
expected_variants = {
|
||||
f'AllianceAuth/{aa_version} (dummy@example.net; +{aa_url}) DjangoEsi/{esi_version} (+{esi_url})', # Django-ESI 8.0.0
|
||||
f'AllianceAuth/{aa_version} (dummy@example.net; +{aa_url}) Django-ESI/{esi_version} (+{esi_url})' # Django-ESI 7.x, Py38 Py39
|
||||
}
|
||||
self.assertIn(operation.future.request.headers['User-Agent'], expected_variants)
|
||||
|
||||
@@ -320,8 +320,8 @@ def click_fatlink_view(request, token, fat_hash=None):
|
||||
messages.warning(
|
||||
request,
|
||||
_(
|
||||
f"Cannot register the fleet participation for {character.character_name}. The character needs to be online."
|
||||
),
|
||||
"Cannot register the fleet participation for {character_name}. The character needs to be online."
|
||||
).format(character_name=character.character_name)
|
||||
)
|
||||
|
||||
return redirect('fatlink:view')
|
||||
|
||||
219
allianceauth/framework/datatables.py
Normal file
219
allianceauth/framework/datatables.py
Normal file
@@ -0,0 +1,219 @@
|
||||
from collections import defaultdict
|
||||
import re
|
||||
from typing import List
|
||||
|
||||
from django.db.models import Model, Q
|
||||
from django.http import HttpRequest, JsonResponse
|
||||
from django.template import Context, Template
|
||||
from django.template.loader import render_to_string
|
||||
from django.views import View
|
||||
|
||||
from allianceauth.services.hooks import get_extension_logger
|
||||
|
||||
|
||||
logger = get_extension_logger(__name__)
|
||||
|
||||
|
||||
class nested_param_dict(dict):
|
||||
"""
|
||||
Helper to create infinite depth default dicts for setting from params
|
||||
"""
|
||||
def __setitem__(self, item, value):
|
||||
if "." in item:
|
||||
head, path = item.split(".", 1)
|
||||
try:
|
||||
head = int(head)
|
||||
except ValueError:
|
||||
pass
|
||||
obj = self.setdefault(head, nested_param_dict())
|
||||
obj[path] = value
|
||||
else:
|
||||
super().__setitem__(item, value)
|
||||
|
||||
|
||||
def defaultdict_to_dict(d):
|
||||
"""
|
||||
Helper to convert default dict back to dict
|
||||
"""
|
||||
if isinstance(d, defaultdict):
|
||||
d = {k: defaultdict_to_dict(v) for k, v in d.items()}
|
||||
return d
|
||||
|
||||
|
||||
class DataTablesView(View):
|
||||
|
||||
model: Model = None
|
||||
columns: List[tuple] = []
|
||||
|
||||
def get_model_qs(self, request: HttpRequest, *args, **kwargs):
|
||||
return self.model.objects
|
||||
|
||||
def filter_qs(self, table_conf: dict):
|
||||
# Search
|
||||
filter_qs = Q()
|
||||
for id, c in table_conf["columns"].items():
|
||||
_c = self.columns[int(id)][0]
|
||||
if c.get("searchable", False) and len(_c) > 0:
|
||||
if c.get("columnControl", False):
|
||||
_sv = str(c["columnControl"]["search"]["value"])
|
||||
"""contains, equal, ends, starts, empty"""
|
||||
_logic = str(c["columnControl"]["search"]["logic"])
|
||||
"""text, date, num"""
|
||||
_type = str(c["columnControl"]["search"]["type"])
|
||||
if _type == "text":
|
||||
if _logic == "empty":
|
||||
filter_qs &= Q(**{f'{_c}': ""})
|
||||
elif len(_sv) > 0:
|
||||
if _logic == "contains":
|
||||
filter_qs &= Q(**{f'{_c}__icontains': _sv})
|
||||
elif _logic == "starts":
|
||||
filter_qs &= Q(**{f'{_c}__istartswith': _sv})
|
||||
elif _logic == "ends":
|
||||
filter_qs &= Q(**{f'{_c}__iendswith': _sv})
|
||||
elif _logic == "equal":
|
||||
filter_qs &= Q(**{f'{_c}': _sv})
|
||||
elif _type == "num":
|
||||
if _logic == "empty":
|
||||
filter_qs &= Q(**{f'{_c}__isnull': True})
|
||||
elif len(_sv) > 0:
|
||||
try:
|
||||
if _logic == "greater":
|
||||
filter_qs &= Q(**{f'{_c}__gt': float(_sv)})
|
||||
elif _logic == "less":
|
||||
filter_qs &= Q(**{f'{_c}__lt': float(_sv)})
|
||||
elif _logic == "greaterOrEqual":
|
||||
filter_qs &= Q(**{f'{_c}__gte': float(_sv)})
|
||||
elif _logic == "lessOrEqual":
|
||||
filter_qs &= Q(**{f'{_c}__lte': float(_sv)})
|
||||
elif _logic == "equal":
|
||||
filter_qs &= Q(**{f'{_c}': float(_sv)})
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
_sv = str(c["search"]["value"])
|
||||
if len(_sv) > 0:
|
||||
if c["search"]["regex"]:
|
||||
filter_qs |= Q(**{f'{_c}__iregex': _sv})
|
||||
else:
|
||||
filter_qs |= Q(**{f'{_c}__icontains': _sv})
|
||||
_gsv = str(table_conf["search"]["value"])
|
||||
if len(_gsv) > 0:
|
||||
filter_qs |= Q(**{f'{_c}__icontains': _gsv})
|
||||
return filter_qs
|
||||
|
||||
def except_qs(self, table_conf: dict):
|
||||
# Search
|
||||
except_qs = Q()
|
||||
for id, c in table_conf["columns"].items():
|
||||
_c = self.columns[int(id)][0]
|
||||
if c.get("searchable", False) and len(_c) > 0:
|
||||
if c.get("columnControl", False):
|
||||
_sv = str(c["columnControl"]["search"]["value"])
|
||||
"""notContains, notEqual, notEmpty"""
|
||||
_logic = str(c["columnControl"]["search"]["logic"])
|
||||
"""text, date, num"""
|
||||
_type = str(c["columnControl"]["search"]["type"])
|
||||
if _type == "text":
|
||||
if _logic == "notEmpty":
|
||||
except_qs |= Q(**{f'{_c}': ""})
|
||||
elif len(_sv) > 0:
|
||||
if _logic == "notContains":
|
||||
except_qs |= Q(**{f'{_c}__icontains': _sv})
|
||||
elif _logic == "notEqual":
|
||||
except_qs |= Q(**{f'{_c}': _sv})
|
||||
elif _type == "num":
|
||||
if _logic == "notEmpty":
|
||||
except_qs |= Q(**{f'{_c}__isnull': False})
|
||||
elif len(_sv) > 0:
|
||||
if _logic == "notEqual":
|
||||
try:
|
||||
except_qs |= Q(**{f'{_c}': float(_sv)})
|
||||
except ValueError:
|
||||
pass
|
||||
return except_qs
|
||||
|
||||
def get_table_config(self, get: dict):
|
||||
_cols = nested_param_dict()
|
||||
for c, v in get.items():
|
||||
_keys = [_k for _k in c.replace("]", "").split("[")]
|
||||
_v = v
|
||||
if v in ["true", "false"]:
|
||||
_v = _v == "true"
|
||||
else:
|
||||
try:
|
||||
_v = int(_v)
|
||||
except ValueError:
|
||||
pass # not an integer
|
||||
_cols[".".join(_keys)] = _v
|
||||
return defaultdict_to_dict(_cols)
|
||||
|
||||
def get_order(self, table_conf: dict):
|
||||
order = []
|
||||
for oc, od in table_conf.get("order", {}).items():
|
||||
_c = table_conf["columns"][od["column"]]
|
||||
if _c["orderable"]:
|
||||
if od["dir"] == "desc":
|
||||
order.append("-" + self.columns[int(od["column"])][0])
|
||||
else:
|
||||
order.append(self.columns[int(od["column"])][0])
|
||||
return order
|
||||
|
||||
def render_template(self, request: HttpRequest, template: str, ctx: dict):
|
||||
if "{{" in template:
|
||||
_template = Template(template)
|
||||
return _template.render(Context(ctx))
|
||||
else:
|
||||
return render_to_string(
|
||||
template,
|
||||
ctx,
|
||||
request
|
||||
)
|
||||
|
||||
def get(self, request: HttpRequest, *args, **kwargs):
|
||||
table_conf = self.get_table_config(request.GET)
|
||||
draw = int(table_conf["draw"])
|
||||
start = int(table_conf["start"])
|
||||
length = int(table_conf["length"])
|
||||
if length <= 0:
|
||||
logger.warning(
|
||||
"Using no pagination is not recommended for server side rendered datatables"
|
||||
)
|
||||
limit = start + length
|
||||
|
||||
|
||||
# Build response rows
|
||||
items = []
|
||||
qs = self.get_model_qs(
|
||||
request,
|
||||
*args,
|
||||
**kwargs
|
||||
).filter(
|
||||
self.filter_qs(table_conf)
|
||||
).exclude(
|
||||
self.except_qs(table_conf)
|
||||
).order_by(
|
||||
*self.get_order(table_conf)
|
||||
)
|
||||
|
||||
# Get the count after filtering
|
||||
qs_count = qs.count()
|
||||
|
||||
# build output
|
||||
if length > 0:
|
||||
qs = qs[start:limit]
|
||||
|
||||
for row in qs:
|
||||
ctx = {"row": row}
|
||||
row = []
|
||||
for t in self.columns:
|
||||
row.append(self.render_template(request, t[1], ctx))
|
||||
items.append(row)
|
||||
|
||||
# Build our output dict
|
||||
datatables_data = {}
|
||||
datatables_data['draw'] = draw
|
||||
datatables_data['recordsTotal'] = self.get_model_qs(request, *args, **kwargs).all().count()
|
||||
datatables_data['recordsFiltered'] = qs_count
|
||||
datatables_data['data'] = items
|
||||
|
||||
return JsonResponse(datatables_data)
|
||||
@@ -31,7 +31,7 @@
|
||||
------------------------------------------------------------------------------------- */
|
||||
@media all {
|
||||
.table {
|
||||
--bs-table-bg: transparent;
|
||||
--bs-table-bg: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,6 +47,12 @@
|
||||
/* Side Navigation
|
||||
------------------------------------------------------------------------------------- */
|
||||
@media all {
|
||||
.sidemenu-total-notifications-badge {
|
||||
position: absolute;
|
||||
left: 28px;
|
||||
font-size: 42.5% !important;
|
||||
}
|
||||
|
||||
#sidebar > div {
|
||||
width: 325px;
|
||||
}
|
||||
@@ -173,3 +179,34 @@
|
||||
border-left-color: var(--bs-warning);
|
||||
}
|
||||
}
|
||||
|
||||
/* DataTables 2
|
||||
------------------------------------------------------------------------------------- */
|
||||
@media all {
|
||||
/* DataTables Processing Indicator
|
||||
--------------------------------------------------------------------------------- */
|
||||
div.dt-processing {
|
||||
padding-top: 0.5rem !important;
|
||||
}
|
||||
|
||||
div.dt-processing > div {
|
||||
display: none;
|
||||
}
|
||||
|
||||
svg.aa-datatables-process-indicator {
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
}
|
||||
|
||||
/* DataTables Extension: ColumnControl
|
||||
--------------------------------------------------------------------------------- */
|
||||
table.dataTable span.dtcc div.dtcc-search > div select {
|
||||
background-color: var(--bs-body-bg);
|
||||
color: var(--bs-body-color);
|
||||
padding: 0.375rem;
|
||||
}
|
||||
|
||||
table.dataTable .dt-column-header div.dtcc-search-title {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,6 +272,49 @@ function objectDeepMerge (target, ...sources) {
|
||||
return target;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a number according to the specified locale.
|
||||
* This function uses the Intl.NumberFormat API to format the number.
|
||||
*
|
||||
* @usage
|
||||
* In your Django template get the current language code:
|
||||
* ```django
|
||||
* {% get_current_language as LANGUAGE_CODE %}
|
||||
* ```
|
||||
* Then use it in your JavaScript:
|
||||
* ```javascript
|
||||
* const userLocale = '{{ LANGUAGE_CODE }}'; // e.g., 'en-US', 'de-DE'
|
||||
* const number = 1234567.89;
|
||||
* const formattedNumber = numberFormatter({
|
||||
* value: number,
|
||||
* locales: userLocale,
|
||||
* options: {
|
||||
* style: 'currency',
|
||||
* currency: 'ISK'
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* // Output will vary based on locale
|
||||
* // e.g., '1,234,567.89' for 'en-US', '1.234.567,89' for 'de-DE'
|
||||
* console.log(formattedNumber);
|
||||
* ```
|
||||
*
|
||||
* @param {number} value The number to format
|
||||
* @param {string | string[]} locales The locale(s) to use for formatting (e.g., 'en-US', 'de-DE', ['en-US', 'de-DE']). If not provided, the browser's default locale will be used and any language settings from the user will be ignored.
|
||||
* @param {Object} [options={}] Additional options for number formatting (see `Intl.NumberFormat` documentation - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat)
|
||||
* @return {string} The formatted number as a string
|
||||
*/
|
||||
const numberFormatter = ({value, locales, options = {}}) => {
|
||||
console.log('Formatting number:', value, 'for locale(s):', locales, 'with options:', options);
|
||||
const formatter = new Intl.NumberFormat(locales, {
|
||||
maximumFractionDigits: 2,
|
||||
minimumFractionDigits: 0,
|
||||
...options
|
||||
});
|
||||
|
||||
return formatter.format(value);
|
||||
};
|
||||
|
||||
/**
|
||||
* When the document is ready …
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{% load i18n %}
|
||||
|
||||
<svg class="aa-datatables-process-indicator">
|
||||
<use href="#aa-loading-spinner"></use>
|
||||
</svg>
|
||||
|
||||
<p class="my-1">
|
||||
{% translate "Loading …" %}
|
||||
</p>
|
||||
@@ -0,0 +1,13 @@
|
||||
<li class="nav-item">
|
||||
<a href="{{ url }}" class="nav-link py-lg-0">
|
||||
<span class="btn btn-{{ btn_modifier|default:'primary' }} d-none d-lg-inline-block">
|
||||
{% if fa_icon and icon_on_desktop %}<i class="{{ fa_icon }} me-2"></i>{% endif %}
|
||||
{{ title }}
|
||||
</span>
|
||||
|
||||
<span class="d-inline-block d-lg-none">
|
||||
{% if fa_icon and icon_on_mobile %}<i class="{{ fa_icon }} fa-fw me-2"></i>{% endif %}
|
||||
{{ title }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -0,0 +1,12 @@
|
||||
<li class="nav-item">
|
||||
<a href="{{ url }}" class="nav-link">
|
||||
<span class="d-none d-lg-inline-block" title="{{ title }}">
|
||||
<i class="{{ fa_icon }}"></i>
|
||||
</span>
|
||||
|
||||
<span class="d-inline-block d-lg-none">
|
||||
{% if icon_on_mobile %}<i class="{{ fa_icon }} me-2 fa-fw"></i>{% endif %}
|
||||
{{ title }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -15,9 +15,61 @@
|
||||
<animate attributeName="stroke-dasharray" dur="1.5s" calcMode="spline" values="0 150;42 150;42 150;42 150" keyTimes="0;0.475;0.95;1" keySplines="0.42,0,0.58,1;0.42,0,0.58,1;0.42,0,0.58,1" repeatCount="indefinite" />
|
||||
<animate attributeName="stroke-dashoffset" dur="1.5s" calcMode="spline" values="0;-16;-59;-59" keyTimes="0;0.475;0.95;1" keySplines="0.42,0,0.58,1;0.42,0,0.58,1;0.42,0,0.58,1" repeatCount="indefinite" />
|
||||
</circle>
|
||||
|
||||
<animateTransform attributeName="transform" type="rotate" dur="2s" values="0 12 12;360 12 12" repeatCount="indefinite" />
|
||||
</g>
|
||||
</symbol>
|
||||
|
||||
<!-- Mumble Logo -->
|
||||
<symbol id="aa-mumble-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">
|
||||
<defs>
|
||||
<radialGradient id="c" cx="206.64" cy="214.43" r="190.25" gradientTransform="matrix(.97267 .016175 -.016656 .97474 9.2188 2.0744)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-opacity="0" offset="0" />
|
||||
<stop stop-opacity=".019608" offset=".81721" />
|
||||
<stop stop-opacity=".1451" offset=".89931" />
|
||||
<stop stop-opacity=".20784" offset=".91199" />
|
||||
<stop stop-opacity=".25098" offset=".95598" />
|
||||
<stop stop-opacity=".33333" offset="1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g transform="translate(0 -652.36)">
|
||||
<path transform="matrix(1.0811 0 0 1.1043 -22.438 617.98)" d="m385.62 214.43c0 96.124-80.133 174.05-178.98 174.05-98.849 0-178.98-77.924-178.98-174.05s80.133-174.05 178.98-174.05c98.849 0 178.98 77.924 178.98 174.05z" fill="#1a1a1a" stroke="#000" stroke-linejoin="round" stroke-width="4.576" />
|
||||
<path transform="matrix(1.0706 0 0 1.101 -22.082 583.62)" d="m385.62 214.43c0 96.124-80.133 174.05-178.98 174.05-98.849 0-178.98-77.924-178.98-174.05s80.133-174.05 178.98-174.05c98.849 0 178.98 77.924 178.98 174.05z" opacity="0" />
|
||||
<path transform="matrix(1.0423 0 0 1.0695 -13.736 622.74)" d="m385.62 214.43c0 96.124-80.133 174.05-178.98 174.05-98.849 0-178.98-77.924-178.98-174.05s80.133-174.05 178.98-174.05c98.849 0 178.98 77.924 178.98 174.05z" fill="#fff" opacity=".9" />
|
||||
<path transform="matrix(1.0641 0 0 1.0787 -20.794 620.64)" d="m385.62 214.43c0 96.124-80.133 174.05-178.98 174.05-98.849 0-178.98-77.924-178.98-174.05s80.133-174.05 178.98-174.05c98.849 0 178.98 77.924 178.98 174.05z" fill="#fff" stroke="#333" stroke-linejoin="round" stroke-width="1.4127" />
|
||||
<path transform="matrix(1.0857 0 0 1.109 -24.345 616.21)" d="m385.62 214.43c0 96.124-80.133 174.05-178.98 174.05-98.849 0-178.98-77.924-178.98-174.05s80.133-174.05 178.98-174.05c98.849 0 178.98 77.924 178.98 174.05z" fill="none" stroke="#000" stroke-linejoin="round" stroke-width="1.8304" />
|
||||
</g>
|
||||
<g>
|
||||
<path transform="matrix(1.0765 0 0 1.1009 -20.514 -34.696)" d="m385.62 214.43a178.98 174.05 0 1 1-357.96 0 178.98 174.05 0 1 1 357.96 0z" fill="url(#c)" opacity=".75" />
|
||||
</g>
|
||||
<g fill-rule="evenodd">
|
||||
<path transform="matrix(1.05 0 0 1.05 -5.3555 .50955)" d="m152.41 31.61c-24.652-0.61541-49.623 15.705-55.853 40.126-1.4511 5.9204-2.0429 11.533-2.1475 17.251v63.623h25c0.0881-22.382-0.12668-44.644 0.1701-67.072 0.76858-14.243 11.773-29.258 27.049-29.084 0.11203 22.669-0.22918 45.351 0.18004 68.011 1.3028 18.426 18.762 33.676 37.243 32.114 11.546-0.2802 23.178 0.67313 34.648-0.72475 17.466-3.2744 29.553-21.063 27.929-38.449v-60.857c15.888-1.1603 27.938 14.263 28.642 29.084 0.29501 22.427 0.0825 44.692 0.1701 67.072h25v-67.5c-0.81797-7.2761-1.9718-16.18-5.9149-23.198-10.229-20.751-34.153-31.948-56.717-30.261-6.591-0.83713-13.681 3.6197-15.487 9.8666 0.10876 26.739 0.18577 53.486-0.015 80.22-0.75343 11.2-11.79 19.764-22.805 18.342-7.7921 0.33854-16.594 0.0136-21.908-6.6817-7.1623-7.5704-4.7632-18.405-5.1836-27.812 0.0193-21.719-0.0713-43.418 0.1249-65.1-3.2593-6.5913-10.503-9.9936-17.679-8.9119l-1.1877-0.01641-1.2582-0.04042h2.5e-4z" stroke="#fff" />
|
||||
<path d="m107.27 156.26v177.84c-35.128-3.8535-62.737-42.188-62.737-88.922 0-46.734 27.609-85.068 62.737-88.922z" fill="url(#l)" opacity=".9666" />
|
||||
</g>
|
||||
<g fill-rule="evenodd" stroke="#fff">
|
||||
<path transform="matrix(1.05 0 0 1.05 -5.3555 .50955)" d="m290.42 313.16c-0.69916-7e-3 -3.3105-0.57507-3.9404-0.16697 0 0-1.0356 3.0168-4.6042 5.6725-3.1327 2.3314-6.1076 4.5662-9.2946 6.6625-2.8616 1.8823-5.9328 3.9177-8.8098 5.3024-2.264 1.0896-4.114 1.2482-4.114 1.2482h-32.22c-2.0127 0-3.6618 1.5872-3.6618 3.5625v0.875c0 1.9753 1.649 3.5938 3.6618 3.5938h33.879c0.77968 0 3.5971-0.82022 5.2725-1.5553 4.1768-1.8326 6.899-4.166 11.71-7.0274 5.1144-3.2712 14.573-10.886 14.573-10.886 1.6797-1.0883 2.1278-3.289 1.0189-4.9375l-0.47763-0.75c-0.69304-1.0303-1.8278-1.5824-2.9931-1.5938z" />
|
||||
<path transform="matrix(1.05 0 0 1.05 -5.3555 .50955)" d="m288.25 148.44v169.38c33.455-3.67 59.75-40.179 59.75-84.688s-26.295-81.018-59.75-84.688z" opacity=".9666" />
|
||||
<path transform="matrix(1.05 0 0 1.05 -5.3555 .50955)" d="m106.22 149.34v169.38c-33.455-3.67-59.75-40.179-59.75-84.688s26.295-81.018 59.75-84.688z" opacity=".9666" />
|
||||
<path transform="matrix(1.3048 0 0 1.2146 -20.461 -43.8)" d="m194.74 325.86a22.13 13.831 0 1 1-44.26 0 22.13 13.831 0 1 1 44.26 0z" opacity=".9666" />
|
||||
<rect transform="matrix(1.0433 0 0 1.05 -4.6563 .094873)" x="274.72" y="146.09" width="13.329" height="171.95" rx="3.8877" ry="3.5401" opacity=".9666" stroke-width="1.0538" />
|
||||
<rect transform="matrix(1.0433 0 0 1.05 -3.8348 .094873)" x="106.56" y="147.08" width="13.063" height="171.96" rx="3.8101" ry="3.5403" opacity=".9666" stroke-width="1.0432" />
|
||||
</g>
|
||||
<g>
|
||||
<rect x="131.64" y="188.83" width="140.83" height="111.89" fill-rule="evenodd" />
|
||||
<path transform="matrix(1.1007 0 0 2.0001 -23.812 -190.28)" d="m189.84 226.69c-4e-5 2.3125-0.43754 4.3438-1.3125 6.0938-0.87504 1.75-2.0521 3.1979-3.5312 4.3438-1.75 1.375-3.6719 2.3542-5.7656 2.9375-2.0938 0.58334-4.7552 0.875-7.9844 0.875h-18.625v-46.531h16.438c3.4166 5e-5 6.0052 0.13026 7.7656 0.39063 1.7604 0.26046 3.4114 0.80734 4.9531 1.6406 1.6666 0.89588 2.9114 2.0938 3.7344 3.5938 0.82288 1.5 1.2343 3.2292 1.2344 5.1875-4e-5 2.2709-0.56775 4.2917-1.7031 6.0625-1.1354 1.7709-2.7032 3.073-4.7031 3.9062v0.25c2.875 0.6042 5.177 1.8386 6.9062 3.7031 1.7291 1.8646 2.5937 4.3802 2.5938 7.5469zm-14.969-19.125c-3e-5 -0.74996-0.19274-1.5208-0.57813-2.3125-0.38544-0.79163-0.9844-1.3645-1.7969-1.7188-0.77086-0.33329-1.6823-0.51558-2.7344-0.54687-1.0521-0.0312-2.6198-0.0468-4.7031-0.0469h-0.8125v9.8438h1.4688c2 3e-5 3.401-0.0208 4.2031-0.0625 0.80207-0.0416 1.6302-0.26038 2.4844-0.65625 0.93747-0.43747 1.5833-1.0416 1.9375-1.8125 0.35414-0.7708 0.53122-1.6666 0.53125-2.6875zm2.9375 18.906c-3e-5 -1.4375-0.2917-2.5625-0.875-3.375-0.58336-0.81248-1.4584-1.4271-2.625-1.8438-0.70836-0.27081-1.6823-0.42185-2.9219-0.45312-1.2396-0.0312-2.9011-0.0469-4.9844-0.0469h-2.1562v11.656h0.625c3.0416 1e-5 5.1458-0.0208 6.3125-0.0625 1.1666-0.0416 2.3541-0.3229 3.5625-0.84375 1.0625-0.45832 1.8385-1.1302 2.3281-2.0156 0.48956-0.88541 0.73435-1.8906 0.73438-3.0156z" fill="url(#f)" />
|
||||
<path transform="matrix(1.1007 0 0 2.0001 -28.291 -190.6)" d="m189.84 226.69c-4e-5 2.3125-0.43754 4.3438-1.3125 6.0938-0.87504 1.75-2.0521 3.1979-3.5312 4.3438-1.75 1.375-3.6719 2.3542-5.7656 2.9375-2.0938 0.58334-4.7552 0.875-7.9844 0.875h-18.625v-46.531h16.438c3.4166 5e-5 6.0052 0.13026 7.7656 0.39063 1.7604 0.26046 3.4114 0.80734 4.9531 1.6406 1.6666 0.89588 2.9114 2.0938 3.7344 3.5938 0.82288 1.5 1.2343 3.2292 1.2344 5.1875-4e-5 2.2709-0.56775 4.2917-1.7031 6.0625-1.1354 1.7709-2.7032 3.073-4.7031 3.9062v0.25c2.875 0.6042 5.177 1.8386 6.9062 3.7031 1.7291 1.8646 2.5937 4.3802 2.5938 7.5469zm-14.969-19.125c-3e-5 -0.74996-0.19274-1.5208-0.57813-2.3125-0.38544-0.79163-0.9844-1.3645-1.7969-1.7188-0.77086-0.33329-1.6823-0.51558-2.7344-0.54687-1.0521-0.0312-2.6198-0.0468-4.7031-0.0469h-0.8125v9.8438h1.4688c2 3e-5 3.401-0.0208 4.2031-0.0625 0.80207-0.0416 1.6302-0.26038 2.4844-0.65625 0.93747-0.43747 1.5833-1.0416 1.9375-1.8125 0.35414-0.7708 0.53122-1.6666 0.53125-2.6875zm2.9375 18.906c-3e-5 -1.4375-0.2917-2.5625-0.875-3.375-0.58336-0.81248-1.4584-1.4271-2.625-1.8438-0.70836-0.27081-1.6823-0.42185-2.9219-0.45312-1.2396-0.0312-2.9011-0.0469-4.9844-0.0469h-2.1562v11.656h0.625c3.0416 1e-5 5.1458-0.0208 6.3125-0.0625 1.1666-0.0416 2.3541-0.3229 3.5625-0.84375 1.0625-0.45832 1.8385-1.1302 2.3281-2.0156 0.48956-0.88541 0.73435-1.8906 0.73438-3.0156z" fill="#fff" />
|
||||
<path transform="matrix(1.1007 0 0 2.0001 -23.812 -190.28)" d="m227.56 240.94h-31.062v-46.531h11.688v37.656h19.375z" fill="url(#e)" />
|
||||
<path d="m187.31 197.56v94.531h14.125 0.0625 21.375v-19.25h-21.375v-75.281h-14.188z" fill="#fff" />
|
||||
<path transform="matrix(1.1007 0 0 2.0001 -23.812 -190.28)" d="m233.12 240.94v-46.531h31.469v8.875h-19.844v8.1562h18.281v8.875h-18.281v11.75h19.844v8.875z" fill="url(#d)" />
|
||||
<path d="m227.81 197.5v94.531h14.188 21.375v-19.25h-21.375v-22.281h19.656v-18.656h-19.656v-15.094h21.375v-19.25h-21.375-0.0625-14.125z" fill="#fff" />
|
||||
</g>
|
||||
<g fill-rule="evenodd">
|
||||
<path d="m155.37 33.01c-25.884-0.64618-52.104 16.49-58.645 42.133-1.5237 6.2165-2.1451 12.11-2.2549 18.114v66.804h26.25c0.0925-23.501-0.13301-46.876 0.17861-70.426 0.807-14.955 12.362-30.721 28.401-30.539 0.11763 23.802-0.24064 47.619 0.18905 71.412 1.368 19.347 19.7 35.36 39.106 33.72 12.123-0.29421 24.336 0.70678 36.38-0.76099 18.339-3.4381 31.031-22.116 29.325-40.372v-63.9c16.682-1.2183 29.334 14.976 30.074 30.539 0.30976 23.549 0.0866 46.927 0.17861 70.426h26.25v-70.875c-0.85887-7.6399-2.0704-16.989-6.2106-24.358-10.74-21.789-35.861-33.545-59.553-31.774-6.9206-0.87899-14.366 3.8007-16.261 10.36 0.1142 28.075 0.19506 56.161-0.0157 84.231-0.7911 11.76-12.38 20.752-23.945 19.259-8.1817 0.35546-17.423 0.0143-23.004-7.0158-7.5204-7.949-5.0013-19.326-5.4428-29.202 0.0203-22.805-0.0749-45.589 0.13115-68.355-3.4223-6.9208-11.028-10.493-18.563-9.3575l-1.2471-0.01723-1.3211-0.04244h2.6e-4z" fill="url(#i)" />
|
||||
<path d="m154.53 34.269c-31.655 0-56.169 21.233-59.981 48.759h26.972c3.6448-12.426 13.114-21.517 24.511-22.575 0.74035-0.69976 1.772-1.1484 2.9203-1.1484h26.611l0.0984-15.619s-2.3784-3.7253-4.2984-5.4797c-2.1754-1.9877-5.1118-3.4283-8.0062-3.7406-2.4252-0.26165-5.1996-0.04115-8.8266-0.19688z" fill="url(#j)" />
|
||||
<path transform="matrix(1.3048 0 0 1.2146 -20.434 -43.907)" d="m194.74 325.86a22.13 13.831 0 1 1-44.26 0 22.13 13.831 0 1 1 44.26 0z" fill="url(#b)" opacity=".9666" />
|
||||
<path d="m298.66 157.26v177.84c35.128-3.8535 62.738-42.188 62.738-88.922 0-46.734-27.609-85.068-62.738-88.922z" fill="url(#k)" opacity=".9666" />
|
||||
<path d="m247.97 33.422c31.655 0 56.169 21.233 59.981 48.759h-26.972c-3.6448-12.426-13.114-21.517-24.511-22.575-0.74036-0.69976-1.772-1.1484-2.9203-1.1484h-26.611l-0.0984-15.619s2.3784-3.7253 4.2984-5.4797c2.1754-1.9877 5.1118-3.4283 8.0062-3.7406 2.4252-0.26165 5.1996-0.04115 8.8266-0.19688z" fill="url(#h)" />
|
||||
<path d="m107.92 156.15v177.84c-35.128-3.8535-62.737-42.188-62.737-88.922 0-46.734 27.609-85.068 62.737-88.922z" fill="url(#g)" opacity=".9666" />
|
||||
</g>
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 13 KiB |
288
allianceauth/framework/tests/test_datatables.py
Normal file
288
allianceauth/framework/tests/test_datatables.py
Normal file
@@ -0,0 +1,288 @@
|
||||
"""
|
||||
Test sentinel user
|
||||
"""
|
||||
|
||||
import json
|
||||
import re
|
||||
|
||||
# Django
|
||||
from allianceauth.tests.auth_utils import AuthUtils
|
||||
from django.test import RequestFactory, TestCase
|
||||
from django.http import HttpRequest
|
||||
# Alliance Auth
|
||||
from allianceauth.framework.datatables import DataTablesView
|
||||
from allianceauth.eveonline.models import EveCharacter
|
||||
|
||||
class TestView(DataTablesView):
|
||||
model=EveCharacter
|
||||
columns = [
|
||||
("", "{{ row.character_id }}"),
|
||||
("character_name", "{{ row.character_name }}"),
|
||||
("corporation_name", "{{ row.corporation_name }}"),
|
||||
("alliance_name", "{{ row.alliance_name }}"),
|
||||
]
|
||||
|
||||
class TestDataTables(TestCase):
|
||||
def setUp(self):
|
||||
self.get_params = {
|
||||
'draw': '1',
|
||||
'columns[0][data]': '0',
|
||||
'columns[0][name]': '',
|
||||
'columns[0][searchable]': 'false',
|
||||
'columns[0][orderable]': 'false',
|
||||
'columns[0][search][value]': '',
|
||||
'columns[0][search][regex]': 'false',
|
||||
'columns[1][data]': '1',
|
||||
'columns[1][name]': '',
|
||||
'columns[1][searchable]': 'true',
|
||||
'columns[1][orderable]': 'true',
|
||||
'columns[1][search][value]': '',
|
||||
'columns[1][search][regex]': 'false',
|
||||
'columns[2][data]': '2',
|
||||
'columns[2][name]': '',
|
||||
'columns[2][searchable]': 'true',
|
||||
'columns[2][orderable]': 'false',
|
||||
'columns[2][search][value]': '',
|
||||
'columns[2][search][regex]': 'false',
|
||||
'columns[3][data]': '3',
|
||||
'columns[3][name]': '',
|
||||
'columns[3][searchable]': 'true',
|
||||
'columns[3][orderable]': 'true',
|
||||
'columns[3][search][value]': '',
|
||||
'columns[3][search][regex]': 'false',
|
||||
'order[0][column]': '1',
|
||||
'order[0][dir]': 'asc',
|
||||
'start': '0',
|
||||
'length': '10',
|
||||
'search[value]': '',
|
||||
'search[regex]': 'false',
|
||||
'_': '123456789'
|
||||
}
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
"""
|
||||
Set up eve models
|
||||
"""
|
||||
|
||||
super().setUpClass()
|
||||
cls.factory = RequestFactory()
|
||||
|
||||
cls.user = AuthUtils.create_user("bruce_wayne")
|
||||
cls.user.is_superuser = True
|
||||
cls.user.save()
|
||||
|
||||
EveCharacter.objects.all().delete()
|
||||
for i in range(1,16):
|
||||
EveCharacter.objects.create(
|
||||
character_id=1000+i,
|
||||
character_name=f"{1000+i} - Test Character - {1000+i}",
|
||||
corporation_id=2000+i,
|
||||
corporation_name=f"{2000+i} - Test Corporation",
|
||||
)
|
||||
|
||||
for i in range(16,21):
|
||||
EveCharacter.objects.create(
|
||||
character_id=1000+i,
|
||||
character_name=f"{1000+i} - Test Character - {1000+i}",
|
||||
corporation_id=2000+i,
|
||||
corporation_name=f"{2000+i} - Test Corporation",
|
||||
alliance_id=3000+i,
|
||||
alliance_name=f"{3000+i} - Test Alliance",
|
||||
)
|
||||
|
||||
|
||||
def test_view_default(self):
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1001")
|
||||
self.assertEqual(data[9][0], "1010")
|
||||
|
||||
def test_view_reverse_sort(self):
|
||||
self.get_params["order[0][dir]"] = "desc"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1020")
|
||||
self.assertEqual(data[9][0], "1011")
|
||||
|
||||
def test_view_no_sort(self):
|
||||
self.get_params.pop("order[0][column]")
|
||||
self.get_params.pop("order[0][dir]")
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1001")
|
||||
self.assertEqual(data[9][0], "1010")
|
||||
|
||||
def test_view_non_sortable_sort(self):
|
||||
self.get_params["order[0][dir]"] = "desc"
|
||||
self.get_params["order[0][column]"] = "0"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1001")
|
||||
self.assertEqual(data[9][0], "1010")
|
||||
|
||||
def test_view_20_rows(self):
|
||||
self.get_params["length"] = "20"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1001")
|
||||
self.assertEqual(data[19][0], "1020")
|
||||
|
||||
def test_records_filtered(self):
|
||||
self.get_params["length"] = "20"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
content = json.loads(response.get(request).content)
|
||||
self.assertEqual(content["recordsFiltered"], 20)
|
||||
self.assertEqual(content["recordsTotal"], 20)
|
||||
|
||||
def test_view_global_search(self):
|
||||
self.get_params["search[value]"] = "1020"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 1)
|
||||
self.assertEqual(data[0][0], "1020")
|
||||
|
||||
def test_view_col_1_search(self):
|
||||
self.get_params["columns[1][search][value]"] = "1020"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 1)
|
||||
self.assertEqual(data[0][0], "1020")
|
||||
|
||||
def test_view_col_1_search_empty(self):
|
||||
self.get_params["columns[1][search][value]"] = "zzz"
|
||||
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 0)
|
||||
|
||||
def test_view_cc_3_search_empty(self):
|
||||
self.get_params["columns[3][columnControl][search][value]"] = ""
|
||||
self.get_params["columns[3][columnControl][search][logic]"] = "empty"
|
||||
self.get_params["columns[3][columnControl][search][type]"] = "text"
|
||||
self.get_params["length"] = "20"
|
||||
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 15)
|
||||
|
||||
def test_view_cc_3_search_not_empty(self):
|
||||
self.get_params["columns[3][columnControl][search][value]"] = ""
|
||||
self.get_params["columns[3][columnControl][search][logic]"] = "notEmpty"
|
||||
self.get_params["columns[3][columnControl][search][type]"] = "text"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 5)
|
||||
|
||||
def test_view_cc_1_search_ends_with(self):
|
||||
self.get_params["columns[1][columnControl][search][value]"] = "9"
|
||||
self.get_params["columns[1][columnControl][search][logic]"] = "ends"
|
||||
self.get_params["columns[1][columnControl][search][type]"] = "text"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 2)
|
||||
|
||||
def test_view_cc_1_search_starts_with(self):
|
||||
self.get_params["columns[1][columnControl][search][value]"] = "1009"
|
||||
self.get_params["columns[1][columnControl][search][logic]"] = "starts"
|
||||
self.get_params["columns[1][columnControl][search][type]"] = "text"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 1)
|
||||
|
||||
def test_view_cc_1_search_not_contains(self):
|
||||
self.get_params["columns[1][columnControl][search][value]"] = "100"
|
||||
self.get_params["columns[1][columnControl][search][logic]"] = "notContains"
|
||||
self.get_params["columns[1][columnControl][search][type]"] = "text"
|
||||
self.get_params["length"] = "20"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 11)
|
||||
|
||||
def test_view_cc_1_search_contains(self):
|
||||
self.get_params["columns[1][columnControl][search][value]"] = "100"
|
||||
self.get_params["columns[1][columnControl][search][logic]"] = "contains"
|
||||
self.get_params["columns[1][columnControl][search][type]"] = "text"
|
||||
self.get_params["length"] = "20"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 9)
|
||||
|
||||
def test_view_cc_1_search_equal(self):
|
||||
self.get_params["columns[1][columnControl][search][value]"] = "1001 - Test Character - 1001"
|
||||
self.get_params["columns[1][columnControl][search][logic]"] = "equal"
|
||||
self.get_params["columns[1][columnControl][search][type]"] = "text"
|
||||
self.get_params["length"] = "20"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 1)
|
||||
|
||||
def test_view_cc_1_search_not_equal(self):
|
||||
self.get_params["columns[1][columnControl][search][value]"] = "1001 - Test Character - 1001"
|
||||
self.get_params["columns[1][columnControl][search][logic]"] = "notEqual"
|
||||
self.get_params["columns[1][columnControl][search][type]"] = "text"
|
||||
self.get_params["length"] = "20"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 19)
|
||||
|
||||
def test_view_cc_no_pagination(self):
|
||||
self.get_params["length"] = "-1"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 20)
|
||||
@@ -19,7 +19,7 @@
|
||||
{% translate "Join Requests" %}
|
||||
|
||||
{% if acceptrequests %}
|
||||
<span class="badge text-bg-secondary">{{ acceptrequests|length }}</span>
|
||||
<span id="acceptRequestsCounter" class="badge text-bg-secondary">{{ acceptrequests|length }}</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
@@ -30,7 +30,7 @@
|
||||
{% translate "Leave Requests" %}
|
||||
|
||||
{% if leaverequests %}
|
||||
<span class="badge text-bg-secondary">{{ leaverequests|length }}</span>
|
||||
<span id="leaveRequestsCounter" class="badge text-bg-secondary">{{ leaverequests|length }}</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
@@ -43,19 +43,19 @@
|
||||
</li>
|
||||
{% endblock header_nav_collapse_left %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div class="tab-content">
|
||||
<div id="add" class="tab-pane active">
|
||||
{% if acceptrequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table">
|
||||
<div>
|
||||
<table id="table-add" class="table table-responsive w-100">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% translate "Character" %}</th>
|
||||
<th>{% translate "Organization" %}</th>
|
||||
<th>{% translate "Group" %}</th>
|
||||
<th></th>
|
||||
<th>{% translate "Corporation" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -89,13 +89,24 @@
|
||||
<td>{{ acceptrequest.group.name }}</td>
|
||||
|
||||
<td class="text-end">
|
||||
<a href="{% url 'groupmanagement:accept_request' acceptrequest.id %}" class="btn btn-success">
|
||||
<div class="spinner-border spinner-border-sm mt-2 btns-join-{{acceptrequest.id}} d-none" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
<a id="{{acceptrequest.id}}" class="btn btn-success join-accept btns-join-{{acceptrequest.id}}">
|
||||
{% translate "Accept" %}
|
||||
</a>
|
||||
<a href="{% url 'groupmanagement:reject_request' acceptrequest.id %}" class="btn btn-danger">
|
||||
<a id="{{acceptrequest.id}}" class="btn btn-danger join-reject btns-join-{{acceptrequest.id}}">
|
||||
{% translate "Reject" %}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{% if acceptrequest.main_char %}
|
||||
{{ acceptrequest.main_char.corporation_name }}
|
||||
{% else %}
|
||||
{% translate "(unknown)" %}
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
@@ -111,14 +122,15 @@
|
||||
{% if not show_leave_tab %}
|
||||
<div id="leave" class="tab-pane">
|
||||
{% if leaverequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table">
|
||||
<div>
|
||||
<table id="table-rem" class="table table-responsive w-100">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% translate "Character" %}</th>
|
||||
<th>{% translate "Organization" %}</th>
|
||||
<th>{% translate "Group" %}</th>
|
||||
<th></th>
|
||||
<th>{% translate "Corporation" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -152,14 +164,23 @@
|
||||
<td>{{ leaverequest.group.name }}</td>
|
||||
|
||||
<td class="text-end">
|
||||
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
|
||||
<div class="spinner-border spinner-border-sm mt-2 btns-leave-{{leaverequest.id}} d-none" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
<a id="{{leaverequest.id}}" class="btn btn-success accept leave-accept btns-leave-{{leaverequest.id}}">
|
||||
{% translate "Accept" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
|
||||
<a id="{{leaverequest.id}}" class="btn btn-danger reject leave-reject btns-leave-{{leaverequest.id}}">
|
||||
{% translate "Reject" %}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{% if leaverequest.main_char %}
|
||||
{{ leaverequest.main_char.corporation_name }}
|
||||
{% else %}
|
||||
{% translate "(unknown)" %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
@@ -172,3 +193,189 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
{% block extra_javascript %}
|
||||
{% include 'bundles/datatables-js-bs5.html' %}
|
||||
{% include "bundles/filterdropdown-js.html" %}
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
let tableAdd = $("#table-add").DataTable({
|
||||
filterDropDown: {
|
||||
columns: [
|
||||
{
|
||||
idx: 4,
|
||||
},
|
||||
{
|
||||
idx: 2,
|
||||
}
|
||||
],
|
||||
bootstrap: true,
|
||||
bootstrap_version: 5
|
||||
},
|
||||
columnDefs: [
|
||||
{
|
||||
target: 4,
|
||||
visible: false,
|
||||
},
|
||||
],
|
||||
paging: false,
|
||||
responsive: true,
|
||||
pageLength: -1
|
||||
});
|
||||
let tableRem = $("#table-rem").DataTable({
|
||||
filterDropDown: {
|
||||
columns: [
|
||||
{
|
||||
idx: 4,
|
||||
},
|
||||
{
|
||||
idx: 2,
|
||||
}
|
||||
],
|
||||
bootstrap: true,
|
||||
bootstrap_version: 5
|
||||
},
|
||||
columnDefs: [
|
||||
{
|
||||
target: 4,
|
||||
visible: false,
|
||||
},
|
||||
],
|
||||
paging: false,
|
||||
responsive: true,
|
||||
pageLength: -1
|
||||
});
|
||||
|
||||
// URL's for fetch requests
|
||||
let acceptJoinURL = "{% url 'groupmanagement:accept_request' 0 %}";
|
||||
acceptJoinURL = acceptJoinURL.substring(0, acceptJoinURL.length-2);
|
||||
let rejectJoinURL = "{% url 'groupmanagement:reject_request' 0 %}";
|
||||
rejectJoinURL = rejectJoinURL.substring(0, rejectJoinURL.length-2);
|
||||
let acceptLeaveURL = "{% url 'groupmanagement:leave_accept_request' 0 %}";
|
||||
acceptLeaveURL = acceptLeaveURL.substring(0, acceptLeaveURL.length-2);
|
||||
let rejectLeaveURL = "{% url 'groupmanagement:leave_reject_request' 0 %}";
|
||||
rejectLeaveURL = rejectLeaveURL.substring(0, rejectLeaveURL.length-2);
|
||||
|
||||
function removeRow(table, classLookup){
|
||||
let btn = $(classLookup);
|
||||
table.row($(btn[0]).parents('tr')).remove().draw();
|
||||
}
|
||||
|
||||
function toggleButtons(classLookup){
|
||||
let elems = document.querySelectorAll(classLookup);
|
||||
elems.forEach(
|
||||
function(e) {
|
||||
e.classList.toggle('d-none');
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function hitAuth(classLookup, table, URL){
|
||||
toggleButtons(classLookup);
|
||||
let output = fetch(URL)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
toggleButtons(classLookup);
|
||||
return true;
|
||||
}
|
||||
removeRow(table, classLookup)
|
||||
})
|
||||
.catch(error => {
|
||||
toggleButtons(classLookup);
|
||||
return false;
|
||||
});
|
||||
toggleButtons(classLookup);
|
||||
return output;
|
||||
}
|
||||
|
||||
function decreaseCounterElement(elem){
|
||||
count = Number(elem.innerText);
|
||||
count -= 1;
|
||||
if (!count){
|
||||
elem.classList.add("d-none");
|
||||
} else {
|
||||
elem.innerText = count;
|
||||
}
|
||||
}
|
||||
|
||||
function decreaseCounter(id){
|
||||
elem = document.getElementById(id);
|
||||
if (elem){decreaseCounterElement(elem)}
|
||||
}
|
||||
|
||||
function decreaseMenuCounter(){
|
||||
decreaseCounter("globalNotificationCount");
|
||||
let elem = document.querySelector("a[href='{% url "groupmanagement:management" %}']");
|
||||
if (elem) {
|
||||
let badge = elem.parentElement.querySelector("span");
|
||||
if (badge){decreaseCounterElement(badge)}
|
||||
if (elem.parentElement.parentElement.parentElement.tagName === "LI"){
|
||||
let folderBadge = elem.parentElement.parentElement.parentElement.querySelector("span");
|
||||
if (folderBadge){decreaseCounterElement(folderBadge)}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let acceptJoinButtons = document.querySelectorAll(".join-accept");
|
||||
acceptJoinButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${acceptJoinURL}${event.target.id}/`
|
||||
let elemClass = `.btns-join-${event.target.id}`
|
||||
if (hitAuth(elemClass, tableAdd, url)){
|
||||
decreaseCounter("acceptRequestsCounter")
|
||||
decreaseMenuCounter()
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let rejectJoinButtons = document.querySelectorAll(".join-reject");
|
||||
rejectJoinButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${rejectJoinURL}${event.target.id}/`
|
||||
let elemClass = `.btns-join-${event.target.id}`
|
||||
if (hitAuth(elemClass, tableAdd, url)){
|
||||
decreaseCounter("acceptRequestsCounter")
|
||||
decreaseMenuCounter()
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let acceptLeaveButtons = document.querySelectorAll(".leave-accept");
|
||||
acceptLeaveButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${acceptLeaveURL}${event.target.id}/`
|
||||
let elemClass = `.btns-leave-${event.target.id}`
|
||||
if (hitAuth(elemClass, tableRem, url)){
|
||||
decreaseCounter("leaveRequestsCounter")
|
||||
decreaseMenuCounter()
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let rejectLeaveButtons = document.querySelectorAll(".leave-reject");
|
||||
rejectLeaveButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${rejectLeaveURL}${event.target.id}/`
|
||||
let elemClass = `.btns-leave-${event.target.id}`
|
||||
if (hitAuth(elemClass, tableRem, url)){
|
||||
decreaseCounter("leaveRequestsCounter")
|
||||
decreaseMenuCounter()
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Filter Dropdown sets widths so lets remove them when we tab change so they actually show.
|
||||
$('a[data-bs-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||
let elems = document.querySelectorAll(".form-select");
|
||||
elems.forEach(
|
||||
function(e) {
|
||||
e.style.maxWidth = "";
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
{% endblock extra_javascript %}
|
||||
{% block extra_css %}
|
||||
{% include 'bundles/datatables-css-bs5.html' %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-06-19 20:23+1000\n"
|
||||
"POT-Creation-Date: 2025-09-21 13:44+1000\n"
|
||||
"PO-Revision-Date: 2023-11-08 13:50+0000\n"
|
||||
"Last-Translator: Tomas Skarecky <t.skarecky@gmail.com>, 2024\n"
|
||||
"Language-Team: Czech (Czech Republic) (https://app.transifex.com/alliance-auth/teams/107430/cs_CZ/)\n"
|
||||
@@ -62,7 +62,7 @@ msgstr ""
|
||||
"přístupem:%s"
|
||||
|
||||
#: allianceauth/authentication/models.py:72
|
||||
#: allianceauth/project_template/project_name/settings/base.py:106
|
||||
#: allianceauth/project_template/project_name/settings/base.py:104
|
||||
msgid "English"
|
||||
msgstr "Angličtina"
|
||||
|
||||
@@ -71,57 +71,57 @@ msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:74
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
#: allianceauth/project_template/project_name/settings/base.py:106
|
||||
msgid "German"
|
||||
msgstr "Němčina"
|
||||
|
||||
#: allianceauth/authentication/models.py:75
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
#: allianceauth/project_template/project_name/settings/base.py:107
|
||||
msgid "Spanish"
|
||||
msgstr "Španělština"
|
||||
|
||||
#: allianceauth/authentication/models.py:76
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
msgid "Italian"
|
||||
msgstr "Italština"
|
||||
|
||||
#: allianceauth/authentication/models.py:77
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
msgid "Japanese"
|
||||
msgstr "Japonština"
|
||||
|
||||
#: allianceauth/authentication/models.py:78
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
msgid "Korean"
|
||||
msgstr "Korejština"
|
||||
|
||||
#: allianceauth/authentication/models.py:79
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
msgid "French"
|
||||
msgstr "Francouzština"
|
||||
|
||||
#: allianceauth/authentication/models.py:80
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
msgid "Russian"
|
||||
msgstr "Ruština"
|
||||
|
||||
#: allianceauth/authentication/models.py:81
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:82
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:83
|
||||
#: allianceauth/project_template/project_name/settings/base.py:117
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrajinština"
|
||||
|
||||
#: allianceauth/authentication/models.py:84
|
||||
#: allianceauth/project_template/project_name/settings/base.py:118
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
msgid "Simplified Chinese"
|
||||
msgstr ""
|
||||
|
||||
@@ -166,14 +166,12 @@ msgstr "Postavy"
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:11
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:4
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:6
|
||||
msgid "Add Character"
|
||||
msgstr "Přidat postavu"
|
||||
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:14
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:15
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:10
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:8
|
||||
msgid "Change Main"
|
||||
msgstr "Změnit postavu"
|
||||
|
||||
@@ -230,8 +228,8 @@ msgstr ""
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:168
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:35
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:94
|
||||
#: allianceauth/srp/templates/srp/data.html:83
|
||||
#: allianceauth/srp/templates/srp/management.html:53
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
msgid "Actions"
|
||||
msgstr "Akce"
|
||||
|
||||
@@ -282,7 +280,7 @@ msgstr "Registrace"
|
||||
msgid "Invalid or expired activation link."
|
||||
msgstr "Nevalidní, nebo expirovaný aktivační odkaz."
|
||||
|
||||
#: allianceauth/authentication/views.py:158
|
||||
#: allianceauth/authentication/views.py:159
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Cannot change main character to %(char)s: character owned by a different "
|
||||
@@ -290,22 +288,22 @@ msgid ""
|
||||
msgstr ""
|
||||
"Není možné změnit hlavní postavu na %(char)s: postava patří pod jiný účet."
|
||||
|
||||
#: allianceauth/authentication/views.py:165
|
||||
#: allianceauth/authentication/views.py:166
|
||||
#, python-format
|
||||
msgid "Changed main character to %s"
|
||||
msgstr "Hlavní postava změněna na %s"
|
||||
|
||||
#: allianceauth/authentication/views.py:179
|
||||
#: allianceauth/authentication/views.py:180
|
||||
#, python-format
|
||||
msgid "Added %(name)s to your account."
|
||||
msgstr "%(name)spřidána k vačenu účtu"
|
||||
|
||||
#: allianceauth/authentication/views.py:181
|
||||
#: allianceauth/authentication/views.py:182
|
||||
#, python-format
|
||||
msgid "Failed to add %(name)s to your account: they already have an account."
|
||||
msgstr "Přidání %(name)sk vašemu účtu se nezdařilo: již mají účet"
|
||||
|
||||
#: allianceauth/authentication/views.py:226
|
||||
#: allianceauth/authentication/views.py:227
|
||||
msgid ""
|
||||
"Unable to authenticate as the selected character. Please log in with the "
|
||||
"main character associated with this account."
|
||||
@@ -313,11 +311,11 @@ msgstr ""
|
||||
"Není možné váš ověřit pomocí vybrané postavu. Prosím přihlaste se pomocí "
|
||||
"hlavní postavy spojené s tímto účtem."
|
||||
|
||||
#: allianceauth/authentication/views.py:293
|
||||
#: allianceauth/authentication/views.py:294
|
||||
msgid "Registration token has expired."
|
||||
msgstr "Registrační token expiroval"
|
||||
|
||||
#: allianceauth/authentication/views.py:354
|
||||
#: allianceauth/authentication/views.py:355
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
@@ -325,11 +323,11 @@ msgstr ""
|
||||
"Byl vám odeslán potvrzovací email. Otevřete prosím odkaz pro potvrzení "
|
||||
"emailové adresy. "
|
||||
|
||||
#: allianceauth/authentication/views.py:360
|
||||
#: allianceauth/authentication/views.py:361
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr "Emailová adresa potvrzena. Přihlaste se prosím."
|
||||
|
||||
#: allianceauth/authentication/views.py:366
|
||||
#: allianceauth/authentication/views.py:367
|
||||
msgid "Registration of new accounts is not allowed at this time."
|
||||
msgstr "Momentálně není povolena registrace nových účtů."
|
||||
|
||||
@@ -346,11 +344,11 @@ msgstr ""
|
||||
msgid "Corporations"
|
||||
msgstr "Korporace"
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:35
|
||||
#: allianceauth/corputils/templates/corputils/base.html:31
|
||||
msgid "Add corporation"
|
||||
msgstr "Přidat korporaci"
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:51
|
||||
#: allianceauth/corputils/templates/corputils/base.html:47
|
||||
msgid "Search all corporations..."
|
||||
msgstr "Vyhledat všechny korporace"
|
||||
|
||||
@@ -498,7 +496,7 @@ msgid "Fleet Activity Tracking"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/fleetactivitytracking/forms.py:6 allianceauth/srp/form.py:8
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
#: allianceauth/srp/templates/srp/management.html:42
|
||||
msgid "Fleet Name"
|
||||
msgstr "Jméno flotily"
|
||||
|
||||
@@ -988,7 +986,7 @@ msgstr ""
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:123
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:167
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:34
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/data.html:79
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
@@ -1001,7 +999,7 @@ msgid "Hidden"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembership.html:45
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
@@ -1046,17 +1044,9 @@ msgstr ""
|
||||
msgid "Leave"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:74
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:89
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/management.html:87
|
||||
msgid "Pending"
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:73
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:88
|
||||
msgid "Request pending"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:80
|
||||
@@ -1067,7 +1057,11 @@ msgstr ""
|
||||
msgid "Request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:99
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:93
|
||||
msgid "Retract"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:103
|
||||
msgid "No groups available."
|
||||
msgstr ""
|
||||
|
||||
@@ -1196,6 +1190,19 @@ msgstr ""
|
||||
msgid "Applied to leave group %(group)s."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:438
|
||||
msgid "You cannot retract that request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:450
|
||||
#, python-format
|
||||
msgid "Retracted application to group %(group)s."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:458
|
||||
msgid "You have no open request for that group."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/apps.py:8
|
||||
msgid "HR Applications"
|
||||
msgstr ""
|
||||
@@ -1266,12 +1273,23 @@ msgstr ""
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:118
|
||||
#: allianceauth/srp/templates/srp/management.html:85
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:141
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:185
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:21
|
||||
#: allianceauth/srp/templates/srp/data.html:112
|
||||
#: allianceauth/srp/templates/srp/data.html:110
|
||||
msgid "Approved"
|
||||
msgstr ""
|
||||
|
||||
@@ -1279,7 +1297,7 @@ msgstr ""
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:143
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:187
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:50
|
||||
#: allianceauth/srp/templates/srp/data.html:116
|
||||
#: allianceauth/srp/templates/srp/data.html:114
|
||||
msgid "Rejected"
|
||||
msgstr ""
|
||||
|
||||
@@ -1514,8 +1532,8 @@ msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:155
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:158
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:17
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:18
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:13
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:14
|
||||
msgid "Sign In"
|
||||
msgstr ""
|
||||
|
||||
@@ -1543,11 +1561,11 @@ msgstr ""
|
||||
msgid "Read"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:32
|
||||
#: allianceauth/notifications/templates/notifications/list.html:31
|
||||
msgid "Mark all notifications as read"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:38
|
||||
#: allianceauth/notifications/templates/notifications/list.html:35
|
||||
msgid "Delete all read notifications"
|
||||
msgstr ""
|
||||
|
||||
@@ -1612,12 +1630,12 @@ msgid "Operation Type"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/form.py:17
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
#: allianceauth/srp/templates/srp/management.html:45
|
||||
msgid "Fleet Commander"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/form.py:22 allianceauth/srp/form.py:14
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
msgid "Additional Info"
|
||||
msgstr ""
|
||||
|
||||
@@ -1626,7 +1644,7 @@ msgid "(Optional) Describe the operation with a couple of short words."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/add.html:8
|
||||
#: allianceauth/optimer/templates/optimer/management.html:18
|
||||
#: allianceauth/optimer/templates/optimer/management.html:16
|
||||
msgid "Create Operation"
|
||||
msgstr ""
|
||||
|
||||
@@ -1675,26 +1693,26 @@ msgstr ""
|
||||
msgid "Fleet Operation Management"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:28
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:32
|
||||
#: allianceauth/optimer/templates/optimer/management.html:26
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:30
|
||||
msgid "Current EVE time:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:36
|
||||
#: allianceauth/optimer/templates/optimer/management.html:34
|
||||
msgid "Next Fleet Operations"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:44
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:63
|
||||
#: allianceauth/optimer/templates/optimer/management.html:42
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:61
|
||||
msgid "No upcoming timers."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:52
|
||||
#: allianceauth/optimer/templates/optimer/management.html:50
|
||||
msgid "Past Fleet Operations"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:60
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:81
|
||||
#: allianceauth/optimer/templates/optimer/management.html:58
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:79
|
||||
msgid "No past timers."
|
||||
msgstr ""
|
||||
|
||||
@@ -2262,7 +2280,7 @@ msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/templates/services/service_status.html:7
|
||||
#: allianceauth/srp/templates/srp/management.html:78
|
||||
#: allianceauth/srp/templates/srp/management.html:76
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
@@ -2300,12 +2318,12 @@ msgid "Ship Replacement"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:9
|
||||
#: allianceauth/srp/templates/srp/management.html:45
|
||||
#: allianceauth/srp/templates/srp/management.html:43
|
||||
msgid "Fleet Time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:10
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
msgid "Fleet Doctrine"
|
||||
msgstr ""
|
||||
|
||||
@@ -2354,7 +2372,7 @@ msgid "Give this link to the line members."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:8
|
||||
#: allianceauth/srp/templates/srp/data.html:39
|
||||
#: allianceauth/srp/templates/srp/data.html:37
|
||||
msgid "SRP Fleet Data"
|
||||
msgstr ""
|
||||
|
||||
@@ -2362,64 +2380,64 @@ msgstr ""
|
||||
msgid "View Fleets"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:26
|
||||
#: allianceauth/srp/templates/srp/data.html:24
|
||||
msgid "Mark Incomplete"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:30
|
||||
#: allianceauth/srp/templates/srp/data.html:28
|
||||
msgid "Mark Completed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:48
|
||||
#: allianceauth/srp/templates/srp/data.html:142
|
||||
#: allianceauth/srp/templates/srp/data.html:46
|
||||
#: allianceauth/srp/templates/srp/data.html:140
|
||||
msgid "Total Losses:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:49
|
||||
#: allianceauth/srp/templates/srp/data.html:143
|
||||
#: allianceauth/srp/templates/srp/management.html:36
|
||||
#: allianceauth/srp/templates/srp/data.html:47
|
||||
#: allianceauth/srp/templates/srp/data.html:141
|
||||
#: allianceauth/srp/templates/srp/management.html:34
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:60
|
||||
#: allianceauth/srp/templates/srp/data.html:154
|
||||
#: allianceauth/srp/templates/srp/data.html:58
|
||||
#: allianceauth/srp/templates/srp/data.html:152
|
||||
msgid "Are you sure you want to delete SRP requests?"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:68
|
||||
msgid "Pilot Name"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
#: allianceauth/srp/templates/srp/data.html:69
|
||||
msgid "Killboard Link"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:73
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
msgid "Ship Type"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
msgid "Killboard Loss Amt"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:76
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
msgid "SRP ISK Cost"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:77
|
||||
#: allianceauth/srp/templates/srp/data.html:75
|
||||
msgid "Click value to edit Enter to save & next ESC to cancel"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:80
|
||||
#: allianceauth/srp/templates/srp/data.html:78
|
||||
msgid "Post Time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:102
|
||||
#: allianceauth/srp/templates/srp/management.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:100
|
||||
#: allianceauth/srp/templates/srp/management.html:68
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:163
|
||||
#: allianceauth/srp/templates/srp/data.html:161
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr ""
|
||||
|
||||
@@ -2431,39 +2449,39 @@ msgstr ""
|
||||
msgid "View All"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:27
|
||||
#: allianceauth/srp/templates/srp/management.html:25
|
||||
msgid "Add SRP Fleet"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
msgid "Fleet AAR"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
msgid "Fleet SRP Code"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
msgid "Fleet ISK Cost"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
msgid "SRP Status"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:52
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
msgid "Pending Requests"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:91
|
||||
#: allianceauth/srp/templates/srp/management.html:89
|
||||
msgid "Completed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:108
|
||||
#: allianceauth/srp/templates/srp/management.html:106
|
||||
msgid "Are you sure you want to delete this SRP code and its contents?"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:129
|
||||
#: allianceauth/srp/templates/srp/management.html:127
|
||||
msgid "No SRP fleets created."
|
||||
msgstr ""
|
||||
|
||||
@@ -2599,67 +2617,120 @@ msgstr ""
|
||||
msgid "Your Server received an ESI error response code of "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:8
|
||||
msgid "Alliance Auth Notifications"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:11
|
||||
msgid "second"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "No notifications at this time"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:12
|
||||
msgid "seconds"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Powered by GitLab"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:13
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:35
|
||||
msgid "Support Discord"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:14
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:49
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Software Version"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:56
|
||||
msgid "Current"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:16
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:63
|
||||
msgid "Latest Stable"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:17
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:68
|
||||
msgid "Update available"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:18
|
||||
msgid "ERROR"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:76
|
||||
msgid "Latest Pre-Release"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:81
|
||||
msgid "Pre-Release available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Task Queue"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:96
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of %(total)s processed tasks • last %(latest)s\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:112
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:19
|
||||
msgid "running"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:113
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "queued"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:21
|
||||
msgid "succeeded"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:22
|
||||
msgid "retried"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:23
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Debug mode"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:34
|
||||
msgid ""
|
||||
"Debug mode is currently turned on!<br>Make sure to turn it off as soon as "
|
||||
"you are finished testing."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:46
|
||||
msgid "Alliance Auth Notifications"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:58
|
||||
msgid "No notifications at this time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:67
|
||||
msgid "Powered by GitLab"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:73
|
||||
msgid "Support Discord"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:87
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Software Version"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:94
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:101
|
||||
msgid "Latest Stable"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:106
|
||||
msgid "Update available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:114
|
||||
msgid "Latest Pre-Release"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:119
|
||||
msgid "Pre-Release available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:129
|
||||
msgid "Task Queue"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:134
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of <span id=\"total-task-count\">?</span> processed tasks • last <span id=\"celery-uptime\">?</span>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/top-menu-admin.html:19
|
||||
msgid "AA Documentation"
|
||||
msgstr ""
|
||||
@@ -2883,7 +2954,7 @@ msgid "Theft"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:7
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:54
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:52
|
||||
msgid "Upcoming Timers"
|
||||
msgstr ""
|
||||
|
||||
@@ -2911,7 +2982,7 @@ msgid "Create Timer"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/timer_create_form.html:9
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:22
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:20
|
||||
msgid "Create Structure Timer"
|
||||
msgstr ""
|
||||
|
||||
@@ -2929,11 +3000,11 @@ msgstr ""
|
||||
msgid "Structure Timer Management"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:41
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:39
|
||||
msgid "Corporation Timers"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:72
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:70
|
||||
msgid "Past Timers"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-07-03 09:07+1000\n"
|
||||
"POT-Creation-Date: 2026-01-21 15:33+1000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -57,7 +57,7 @@ msgid "You are not allowed to add or remove these restricted groups: %s"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:72
|
||||
#: allianceauth/project_template/project_name/settings/base.py:104
|
||||
#: allianceauth/project_template/project_name/settings/base.py:105
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
@@ -66,57 +66,57 @@ msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:74
|
||||
#: allianceauth/project_template/project_name/settings/base.py:106
|
||||
#: allianceauth/project_template/project_name/settings/base.py:107
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:75
|
||||
#: allianceauth/project_template/project_name/settings/base.py:107
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:76
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:77
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:78
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:79
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:80
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:81
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:82
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:83
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:84
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
#: allianceauth/project_template/project_name/settings/base.py:117
|
||||
msgid "Simplified Chinese"
|
||||
msgstr ""
|
||||
|
||||
@@ -125,22 +125,30 @@ msgstr ""
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:105
|
||||
#: allianceauth/authentication/models.py:106
|
||||
#: allianceauth/templates/allianceauth/night-toggle.html:6
|
||||
msgid "Night Mode"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:109
|
||||
#: allianceauth/authentication/models.py:110
|
||||
#: allianceauth/theme/templates/theme/theme_select.html:4
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:126
|
||||
#: allianceauth/authentication/models.py:117
|
||||
msgid "Minimize Sidebar Menu"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:119
|
||||
msgid "Keep the sidebar menu minimized"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:133
|
||||
#, python-format
|
||||
msgid "State changed to: %s"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:127
|
||||
#: allianceauth/authentication/models.py:134
|
||||
#, python-format
|
||||
msgid "Your user's state is now: %(state)s"
|
||||
msgstr ""
|
||||
@@ -161,14 +169,12 @@ msgstr ""
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:11
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:4
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:6
|
||||
msgid "Add Character"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:14
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:15
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:10
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:8
|
||||
msgid "Change Main"
|
||||
msgstr ""
|
||||
|
||||
@@ -202,8 +208,8 @@ msgstr ""
|
||||
|
||||
#: allianceauth/authentication/templates/authentication/tokens.html:7
|
||||
#: allianceauth/authentication/templates/authentication/tokens.html:11
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:133
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:136
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:158
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:161
|
||||
#: allianceauth/templates/allianceauth/top-menu-user-dropdown.html:62
|
||||
msgid "Token Management"
|
||||
msgstr ""
|
||||
@@ -225,8 +231,8 @@ msgstr ""
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:168
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:35
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:94
|
||||
#: allianceauth/srp/templates/srp/data.html:83
|
||||
#: allianceauth/srp/templates/srp/management.html:53
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
@@ -239,8 +245,8 @@ msgstr ""
|
||||
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:41
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/audit.html:30
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembers.html:29
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:55
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:118
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:54
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:129
|
||||
msgid "Character"
|
||||
msgstr ""
|
||||
|
||||
@@ -277,49 +283,49 @@ msgstr ""
|
||||
msgid "Invalid or expired activation link."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:158
|
||||
#: allianceauth/authentication/views.py:159
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Cannot change main character to %(char)s: character owned by a different "
|
||||
"account."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:165
|
||||
#: allianceauth/authentication/views.py:166
|
||||
#, python-format
|
||||
msgid "Changed main character to %s"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:179
|
||||
#: allianceauth/authentication/views.py:180
|
||||
#, python-format
|
||||
msgid "Added %(name)s to your account."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:181
|
||||
#: allianceauth/authentication/views.py:182
|
||||
#, python-format
|
||||
msgid "Failed to add %(name)s to your account: they already have an account."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:226
|
||||
#: allianceauth/authentication/views.py:227
|
||||
msgid ""
|
||||
"Unable to authenticate as the selected character. Please log in with the "
|
||||
"main character associated with this account."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:293
|
||||
#: allianceauth/authentication/views.py:294
|
||||
msgid "Registration token has expired."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:354
|
||||
#: allianceauth/authentication/views.py:355
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:360
|
||||
#: allianceauth/authentication/views.py:361
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:366
|
||||
#: allianceauth/authentication/views.py:367
|
||||
msgid "Registration of new accounts is not allowed at this time."
|
||||
msgstr ""
|
||||
|
||||
@@ -336,11 +342,11 @@ msgstr ""
|
||||
msgid "Corporations"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:35
|
||||
#: allianceauth/corputils/templates/corputils/base.html:31
|
||||
msgid "Add corporation"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:51
|
||||
#: allianceauth/corputils/templates/corputils/base.html:47
|
||||
msgid "Search all corporations..."
|
||||
msgstr ""
|
||||
|
||||
@@ -377,6 +383,8 @@ msgstr ""
|
||||
#: allianceauth/corputils/templates/corputils/corpstats.html:125
|
||||
#: allianceauth/corputils/templates/corputils/search.html:18
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/audit.html:31
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:58
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:133
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:35
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:122
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:166
|
||||
@@ -488,7 +496,7 @@ msgid "Fleet Activity Tracking"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/fleetactivitytracking/forms.py:6 allianceauth/srp/form.py:8
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
#: allianceauth/srp/templates/srp/management.html:42
|
||||
msgid "Fleet Name"
|
||||
msgstr ""
|
||||
|
||||
@@ -749,14 +757,18 @@ msgstr ""
|
||||
#: allianceauth/fleetactivitytracking/views.py:323
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Cannot register the fleet participation for {character.character_name}. The "
|
||||
"character needs to be online."
|
||||
"Cannot register the fleet participation for {character_name}. The character "
|
||||
"needs to be online."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/framework/apps.py:16
|
||||
msgid "Framework"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/framework/templates/framework/datatables/process-indicator.html:8
|
||||
msgid "Loading …"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/apps.py:8
|
||||
#: allianceauth/groupmanagement/auth_hooks.py:18
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:18
|
||||
@@ -818,8 +830,9 @@ msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/models.py:143
|
||||
msgid ""
|
||||
"Group leaders can process requests for this group. Use the <code>auth."
|
||||
"group_management</code> permission to allow a user to manage all groups.<br>"
|
||||
"Group leaders can process requests for this group. Use the "
|
||||
"<code>auth.group_management</code> permission to allow a user to manage all "
|
||||
"groups.<br>"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/models.py:153
|
||||
@@ -927,8 +940,8 @@ msgid "Group Members"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembers.html:30
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:56
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:119
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:55
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:130
|
||||
#: allianceauth/permissions_tool/templates/permissions_tool/audit.html:33
|
||||
msgid "Organization"
|
||||
msgstr ""
|
||||
@@ -940,7 +953,9 @@ msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembers.html:61
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:85
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:148
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:106
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:160
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:181
|
||||
#: allianceauth/permissions_tool/templates/permissions_tool/audit_row.html:18
|
||||
msgid "(unknown)"
|
||||
msgstr ""
|
||||
@@ -973,7 +988,7 @@ msgstr ""
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:123
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:167
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:34
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/data.html:79
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
@@ -986,7 +1001,7 @@ msgid "Hidden"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembership.html:45
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
@@ -1020,8 +1035,8 @@ msgid "Leaders"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:37
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:57
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:120
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:56
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:131
|
||||
#: allianceauth/permissions_tool/templates/permissions_tool/audit.html:30
|
||||
#: allianceauth/services/modules/openfire/forms.py:6
|
||||
msgid "Group"
|
||||
@@ -1031,17 +1046,9 @@ msgstr ""
|
||||
msgid "Leave"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:74
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:89
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/management.html:87
|
||||
msgid "Pending"
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:73
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:88
|
||||
msgid "Request pending"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:80
|
||||
@@ -1052,7 +1059,11 @@ msgstr ""
|
||||
msgid "Request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:99
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:93
|
||||
msgid "Retract"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:103
|
||||
msgid "No groups available."
|
||||
msgstr ""
|
||||
|
||||
@@ -1074,22 +1085,22 @@ msgstr ""
|
||||
msgid "Group Membership"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:93
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:156
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:96
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:171
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:96
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:160
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:99
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:174
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:104
|
||||
msgid "Reject"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:106
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:117
|
||||
msgid "No group add requests."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:169
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:190
|
||||
msgid "No group leave requests."
|
||||
msgstr ""
|
||||
|
||||
@@ -1181,6 +1192,19 @@ msgstr ""
|
||||
msgid "Applied to leave group %(group)s."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:438
|
||||
msgid "You cannot retract that request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:450
|
||||
#, python-format
|
||||
msgid "Retracted application to group %(group)s."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:458
|
||||
msgid "You have no open request for that group."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/apps.py:8
|
||||
msgid "HR Applications"
|
||||
msgstr ""
|
||||
@@ -1251,12 +1275,23 @@ msgstr ""
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:118
|
||||
#: allianceauth/srp/templates/srp/management.html:85
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:141
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:185
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:21
|
||||
#: allianceauth/srp/templates/srp/data.html:112
|
||||
#: allianceauth/srp/templates/srp/data.html:110
|
||||
msgid "Approved"
|
||||
msgstr ""
|
||||
|
||||
@@ -1264,7 +1299,7 @@ msgstr ""
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:143
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:187
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:50
|
||||
#: allianceauth/srp/templates/srp/data.html:116
|
||||
#: allianceauth/srp/templates/srp/data.html:114
|
||||
msgid "Rejected"
|
||||
msgstr ""
|
||||
|
||||
@@ -1468,39 +1503,47 @@ msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:77
|
||||
msgid "Sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:93
|
||||
msgid "Minimize Sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:102
|
||||
msgid "Super User"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:83
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:86
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:108
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:111
|
||||
msgid "Alliance Auth Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:94
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:97
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:119
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:122
|
||||
msgid "Alliance Auth Discord"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:105
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:108
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:130
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:133
|
||||
msgid "Alliance Auth Git"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:118
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:121
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:143
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:146
|
||||
#: allianceauth/templates/allianceauth/top-menu-admin.html:9
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:144
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:147
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:169
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:172
|
||||
msgid "Sign Out"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:155
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:158
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:17
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:18
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:180
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:183
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:13
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:14
|
||||
msgid "Sign In"
|
||||
msgstr ""
|
||||
|
||||
@@ -1528,11 +1571,11 @@ msgstr ""
|
||||
msgid "Read"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:32
|
||||
#: allianceauth/notifications/templates/notifications/list.html:31
|
||||
msgid "Mark all notifications as read"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:38
|
||||
#: allianceauth/notifications/templates/notifications/list.html:35
|
||||
msgid "Delete all read notifications"
|
||||
msgstr ""
|
||||
|
||||
@@ -1597,12 +1640,12 @@ msgid "Operation Type"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/form.py:17
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
#: allianceauth/srp/templates/srp/management.html:45
|
||||
msgid "Fleet Commander"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/form.py:22 allianceauth/srp/form.py:14
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
msgid "Additional Info"
|
||||
msgstr ""
|
||||
|
||||
@@ -1611,7 +1654,7 @@ msgid "(Optional) Describe the operation with a couple of short words."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/add.html:8
|
||||
#: allianceauth/optimer/templates/optimer/management.html:18
|
||||
#: allianceauth/optimer/templates/optimer/management.html:16
|
||||
msgid "Create Operation"
|
||||
msgstr ""
|
||||
|
||||
@@ -1660,26 +1703,26 @@ msgstr ""
|
||||
msgid "Fleet Operation Management"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:28
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:32
|
||||
#: allianceauth/optimer/templates/optimer/management.html:26
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:30
|
||||
msgid "Current EVE time:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:36
|
||||
#: allianceauth/optimer/templates/optimer/management.html:34
|
||||
msgid "Next Fleet Operations"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:44
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:63
|
||||
#: allianceauth/optimer/templates/optimer/management.html:42
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:61
|
||||
msgid "No upcoming timers."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:52
|
||||
#: allianceauth/optimer/templates/optimer/management.html:50
|
||||
msgid "Past Fleet Operations"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:60
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:81
|
||||
#: allianceauth/optimer/templates/optimer/management.html:58
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:79
|
||||
msgid "No past timers."
|
||||
msgstr ""
|
||||
|
||||
@@ -1759,9 +1802,9 @@ msgstr ""
|
||||
msgid "That service account already exists"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/abstract.py:103
|
||||
#: allianceauth/services/abstract.py:105
|
||||
#, python-brace-format
|
||||
msgid "Successfully set your {self.service_name} password"
|
||||
msgid "Successfully set your {service_name} password"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/apps.py:8 allianceauth/services/auth_hooks.py:12
|
||||
@@ -2246,7 +2289,7 @@ msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/templates/services/service_status.html:7
|
||||
#: allianceauth/srp/templates/srp/management.html:78
|
||||
#: allianceauth/srp/templates/srp/management.html:76
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
@@ -2283,12 +2326,12 @@ msgstr ""
|
||||
msgid "Ship Replacement"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:9 allianceauth/srp/templates/srp/management.html:45
|
||||
#: allianceauth/srp/form.py:9 allianceauth/srp/templates/srp/management.html:43
|
||||
msgid "Fleet Time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:10
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
msgid "Fleet Doctrine"
|
||||
msgstr ""
|
||||
|
||||
@@ -2300,11 +2343,11 @@ msgstr ""
|
||||
msgid "Invalid Link. Please use zkillboard.com or kb.evetools.org"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:46
|
||||
#: allianceauth/srp/form.py:49
|
||||
msgid "Invalid Link. Please post a direct link to a killmail."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:53
|
||||
#: allianceauth/srp/form.py:56
|
||||
msgid "After Action Report Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -2337,7 +2380,7 @@ msgid "Give this link to the line members."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:8
|
||||
#: allianceauth/srp/templates/srp/data.html:39
|
||||
#: allianceauth/srp/templates/srp/data.html:37
|
||||
msgid "SRP Fleet Data"
|
||||
msgstr ""
|
||||
|
||||
@@ -2345,64 +2388,64 @@ msgstr ""
|
||||
msgid "View Fleets"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:26
|
||||
#: allianceauth/srp/templates/srp/data.html:24
|
||||
msgid "Mark Incomplete"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:30
|
||||
#: allianceauth/srp/templates/srp/data.html:28
|
||||
msgid "Mark Completed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:48
|
||||
#: allianceauth/srp/templates/srp/data.html:142
|
||||
#: allianceauth/srp/templates/srp/data.html:46
|
||||
#: allianceauth/srp/templates/srp/data.html:140
|
||||
msgid "Total Losses:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:49
|
||||
#: allianceauth/srp/templates/srp/data.html:143
|
||||
#: allianceauth/srp/templates/srp/management.html:36
|
||||
#: allianceauth/srp/templates/srp/data.html:47
|
||||
#: allianceauth/srp/templates/srp/data.html:141
|
||||
#: allianceauth/srp/templates/srp/management.html:34
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:60
|
||||
#: allianceauth/srp/templates/srp/data.html:154
|
||||
#: allianceauth/srp/templates/srp/data.html:58
|
||||
#: allianceauth/srp/templates/srp/data.html:152
|
||||
msgid "Are you sure you want to delete SRP requests?"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:68
|
||||
msgid "Pilot Name"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
#: allianceauth/srp/templates/srp/data.html:69
|
||||
msgid "Killboard Link"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:73
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
msgid "Ship Type"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
msgid "Killboard Loss Amt"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:76
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
msgid "SRP ISK Cost"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:77
|
||||
#: allianceauth/srp/templates/srp/data.html:75
|
||||
msgid "Click value to edit Enter to save & next ESC to cancel"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:80
|
||||
#: allianceauth/srp/templates/srp/data.html:78
|
||||
msgid "Post Time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:102
|
||||
#: allianceauth/srp/templates/srp/management.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:100
|
||||
#: allianceauth/srp/templates/srp/management.html:68
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:163
|
||||
#: allianceauth/srp/templates/srp/data.html:161
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr ""
|
||||
|
||||
@@ -2414,39 +2457,39 @@ msgstr ""
|
||||
msgid "View All"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:27
|
||||
#: allianceauth/srp/templates/srp/management.html:25
|
||||
msgid "Add SRP Fleet"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
msgid "Fleet AAR"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
msgid "Fleet SRP Code"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
msgid "Fleet ISK Cost"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
msgid "SRP Status"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:52
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
msgid "Pending Requests"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:91
|
||||
#: allianceauth/srp/templates/srp/management.html:89
|
||||
msgid "Completed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:108
|
||||
#: allianceauth/srp/templates/srp/management.html:106
|
||||
msgid "Are you sure you want to delete this SRP code and its contents?"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:129
|
||||
#: allianceauth/srp/templates/srp/management.html:127
|
||||
msgid "No SRP fleets created."
|
||||
msgstr ""
|
||||
|
||||
@@ -2578,72 +2621,125 @@ msgstr ""
|
||||
msgid "Saved changes to SRP fleet %(fleetname)s"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/esi_check.html:4
|
||||
#: allianceauth/templates/allianceauth/admin-status/esi_check.html:5
|
||||
msgid "Your Server received an ESI error response code of "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:8
|
||||
msgid "Alliance Auth Notifications"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:11
|
||||
msgid "second"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "No notifications at this time"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:12
|
||||
msgid "seconds"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Powered by GitLab"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:13
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:35
|
||||
msgid "Support Discord"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:14
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:49
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Software Version"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:56
|
||||
msgid "Current"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:16
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:63
|
||||
msgid "Latest Stable"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:17
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:68
|
||||
msgid "Update available"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:18
|
||||
msgid "ERROR"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:76
|
||||
msgid "Latest Pre-Release"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:81
|
||||
msgid "Pre-Release available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Task Queue"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:96
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of %(total)s processed tasks • last "
|
||||
"%(latest)s\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:112
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:19
|
||||
msgid "running"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:113
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "queued"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:21
|
||||
msgid "succeeded"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:22
|
||||
msgid "retried"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:23
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Debug mode"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:34
|
||||
msgid ""
|
||||
"Debug mode is currently turned on!<br>Make sure to turn it off as soon as "
|
||||
"you are finished testing."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:46
|
||||
msgid "Alliance Auth Notifications"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:58
|
||||
msgid "No notifications at this time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:67
|
||||
msgid "Powered by GitLab"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:73
|
||||
msgid "Support Discord"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:87
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Software Version"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:94
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:101
|
||||
msgid "Latest Stable"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:106
|
||||
msgid "Update available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:114
|
||||
msgid "Latest Pre-Release"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:119
|
||||
msgid "Pre-Release available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:129
|
||||
msgid "Task Queue"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:134
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of <span id=\"total-task-count\">?</span> "
|
||||
"processed tasks • last <span id=\"celery-uptime\">?</span>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/top-menu-admin.html:19
|
||||
msgid "AA Documentation"
|
||||
msgstr ""
|
||||
@@ -2867,7 +2963,7 @@ msgid "Theft"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:7
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:54
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:52
|
||||
msgid "Upcoming Timers"
|
||||
msgstr ""
|
||||
|
||||
@@ -2895,7 +2991,7 @@ msgid "Create Timer"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/timer_create_form.html:9
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:22
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:20
|
||||
msgid "Create Structure Timer"
|
||||
msgstr ""
|
||||
|
||||
@@ -2913,11 +3009,11 @@ msgstr ""
|
||||
msgid "Structure Timer Management"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:41
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:39
|
||||
msgid "Corporation Timers"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:72
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:70
|
||||
msgid "Past Timers"
|
||||
msgstr ""
|
||||
|
||||
@@ -2930,36 +3026,36 @@ msgstr ""
|
||||
msgid "Saved changes to the timer."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:55
|
||||
#: allianceauth/views.py:78
|
||||
msgid "Bad Request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:57 allianceauth/views.py:87
|
||||
#: allianceauth/views.py:80 allianceauth/views.py:110
|
||||
msgid ""
|
||||
"Auth encountered an error processing your request, please try again. If the "
|
||||
"error persists, please contact the administrators."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:65
|
||||
#: allianceauth/views.py:88
|
||||
msgid "Permission Denied"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:67
|
||||
#: allianceauth/views.py:90
|
||||
msgid ""
|
||||
"You do not have permission to access the requested page. If you believe this "
|
||||
"is in error please contact the administrators."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:75
|
||||
#: allianceauth/views.py:98
|
||||
msgid "Page Not Found"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:77
|
||||
#: allianceauth/views.py:100
|
||||
msgid ""
|
||||
"Page does not exist. If you believe this is in error please contact the "
|
||||
"administrators. "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:85
|
||||
#: allianceauth/views.py:108
|
||||
msgid "Internal Server Error"
|
||||
msgstr ""
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -13,7 +13,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-06-19 20:23+1000\n"
|
||||
"POT-Creation-Date: 2025-09-21 13:44+1000\n"
|
||||
"PO-Revision-Date: 2023-11-08 13:50+0000\n"
|
||||
"Last-Translator: Machiel Broekman, 2025\n"
|
||||
"Language-Team: Dutch (Netherlands) (https://app.transifex.com/alliance-auth/teams/107430/nl_NL/)\n"
|
||||
@@ -71,7 +71,7 @@ msgstr ""
|
||||
"Je bent niet gemachtigd om de volgende beperkte groepen te verwijderen: %s"
|
||||
|
||||
#: allianceauth/authentication/models.py:72
|
||||
#: allianceauth/project_template/project_name/settings/base.py:106
|
||||
#: allianceauth/project_template/project_name/settings/base.py:104
|
||||
msgid "English"
|
||||
msgstr "Engels"
|
||||
|
||||
@@ -80,57 +80,57 @@ msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:74
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
#: allianceauth/project_template/project_name/settings/base.py:106
|
||||
msgid "German"
|
||||
msgstr "Duits"
|
||||
|
||||
#: allianceauth/authentication/models.py:75
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
#: allianceauth/project_template/project_name/settings/base.py:107
|
||||
msgid "Spanish"
|
||||
msgstr "Spaans"
|
||||
|
||||
#: allianceauth/authentication/models.py:76
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
msgid "Italian"
|
||||
msgstr "Italiaans"
|
||||
|
||||
#: allianceauth/authentication/models.py:77
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
msgid "Japanese"
|
||||
msgstr "Japans"
|
||||
|
||||
#: allianceauth/authentication/models.py:78
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
msgid "Korean"
|
||||
msgstr "Koreaans"
|
||||
|
||||
#: allianceauth/authentication/models.py:79
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
msgid "French"
|
||||
msgstr "Frans"
|
||||
|
||||
#: allianceauth/authentication/models.py:80
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
msgid "Russian"
|
||||
msgstr "Russisch"
|
||||
|
||||
#: allianceauth/authentication/models.py:81
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
msgid "Dutch"
|
||||
msgstr "Nederlands"
|
||||
|
||||
#: allianceauth/authentication/models.py:82
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
msgid "Polish"
|
||||
msgstr "Pools"
|
||||
|
||||
#: allianceauth/authentication/models.py:83
|
||||
#: allianceauth/project_template/project_name/settings/base.py:117
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
msgid "Ukrainian"
|
||||
msgstr "Oekraïens"
|
||||
|
||||
#: allianceauth/authentication/models.py:84
|
||||
#: allianceauth/project_template/project_name/settings/base.py:118
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
msgid "Simplified Chinese"
|
||||
msgstr "Eenvoudig Chinees"
|
||||
|
||||
@@ -175,14 +175,12 @@ msgstr "Karakter"
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:11
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:4
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:6
|
||||
msgid "Add Character"
|
||||
msgstr "Personages toevoegen"
|
||||
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:14
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:15
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:10
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:8
|
||||
msgid "Change Main"
|
||||
msgstr "Verander Main"
|
||||
|
||||
@@ -242,8 +240,8 @@ msgstr "Scopes"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:168
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:35
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:94
|
||||
#: allianceauth/srp/templates/srp/data.html:83
|
||||
#: allianceauth/srp/templates/srp/management.html:53
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
msgid "Actions"
|
||||
msgstr "Acties"
|
||||
|
||||
@@ -294,7 +292,7 @@ msgstr "Registreer"
|
||||
msgid "Invalid or expired activation link."
|
||||
msgstr "Ongeldige of verlopen activeringslink."
|
||||
|
||||
#: allianceauth/authentication/views.py:158
|
||||
#: allianceauth/authentication/views.py:159
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Cannot change main character to %(char)s: character owned by a different "
|
||||
@@ -303,23 +301,23 @@ msgstr ""
|
||||
"Het hoofdkarakter kan niet worden gewijzigd naar %(char)s: Karakter is "
|
||||
"eigendom van een ander account."
|
||||
|
||||
#: allianceauth/authentication/views.py:165
|
||||
#: allianceauth/authentication/views.py:166
|
||||
#, python-format
|
||||
msgid "Changed main character to %s"
|
||||
msgstr "Hoofdkarakter veranderd naar %s"
|
||||
|
||||
#: allianceauth/authentication/views.py:179
|
||||
#: allianceauth/authentication/views.py:180
|
||||
#, python-format
|
||||
msgid "Added %(name)s to your account."
|
||||
msgstr "%(name)s aan uw account toegevoegd."
|
||||
|
||||
#: allianceauth/authentication/views.py:181
|
||||
#: allianceauth/authentication/views.py:182
|
||||
#, python-format
|
||||
msgid "Failed to add %(name)s to your account: they already have an account."
|
||||
msgstr ""
|
||||
"Toevoegen van %(name)s aan uw account is mislukt: ze hebben al een account."
|
||||
|
||||
#: allianceauth/authentication/views.py:226
|
||||
#: allianceauth/authentication/views.py:227
|
||||
msgid ""
|
||||
"Unable to authenticate as the selected character. Please log in with the "
|
||||
"main character associated with this account."
|
||||
@@ -327,11 +325,11 @@ msgstr ""
|
||||
"Niet mogelijk om te authenticeren als de geselecteerde karakter. Log "
|
||||
"alstublieft in met het hoofdkarakter dat aan dit account is gekoppeld."
|
||||
|
||||
#: allianceauth/authentication/views.py:293
|
||||
#: allianceauth/authentication/views.py:294
|
||||
msgid "Registration token has expired."
|
||||
msgstr "Registratietoken is verlopen."
|
||||
|
||||
#: allianceauth/authentication/views.py:354
|
||||
#: allianceauth/authentication/views.py:355
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
@@ -339,11 +337,11 @@ msgstr ""
|
||||
"E-mail met bevestiging verzonden. Volg de link om uw e-mailadres te "
|
||||
"bevestigen."
|
||||
|
||||
#: allianceauth/authentication/views.py:360
|
||||
#: allianceauth/authentication/views.py:361
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr "Uw e-mailadres is bevestigd. Gelieve in te loggen om verder te gaan."
|
||||
|
||||
#: allianceauth/authentication/views.py:366
|
||||
#: allianceauth/authentication/views.py:367
|
||||
msgid "Registration of new accounts is not allowed at this time."
|
||||
msgstr "Registratie van nieuwe accounts in momenteel niet toegestaan."
|
||||
|
||||
@@ -360,11 +358,11 @@ msgstr "Gegevens van bedrijfsleden"
|
||||
msgid "Corporations"
|
||||
msgstr "Bedrijven"
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:35
|
||||
#: allianceauth/corputils/templates/corputils/base.html:31
|
||||
msgid "Add corporation"
|
||||
msgstr "Voeg bedrijf toe"
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:51
|
||||
#: allianceauth/corputils/templates/corputils/base.html:47
|
||||
msgid "Search all corporations..."
|
||||
msgstr "Zoek in alle bedrijven..."
|
||||
|
||||
@@ -514,7 +512,7 @@ msgid "Fleet Activity Tracking"
|
||||
msgstr "Fleetactiviteit Tracking"
|
||||
|
||||
#: allianceauth/fleetactivitytracking/forms.py:6 allianceauth/srp/form.py:8
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
#: allianceauth/srp/templates/srp/management.html:42
|
||||
msgid "Fleet Name"
|
||||
msgstr "Fleet naam"
|
||||
|
||||
@@ -1002,7 +1000,7 @@ msgstr "Beschrijving"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:123
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:167
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:34
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/data.html:79
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
@@ -1015,7 +1013,7 @@ msgid "Hidden"
|
||||
msgstr "verborgen"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembership.html:45
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
@@ -1060,18 +1058,10 @@ msgstr "Groep"
|
||||
msgid "Leave"
|
||||
msgstr "Verlaat"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:74
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:89
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/management.html:87
|
||||
msgid "Pending"
|
||||
msgstr "In behandeling"
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:73
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:88
|
||||
msgid "Request pending"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:80
|
||||
msgid "Join"
|
||||
@@ -1081,7 +1071,11 @@ msgstr "Toetreden"
|
||||
msgid "Request"
|
||||
msgstr "Aanvraag"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:99
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:93
|
||||
msgid "Retract"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:103
|
||||
msgid "No groups available."
|
||||
msgstr ""
|
||||
|
||||
@@ -1210,6 +1204,19 @@ msgstr ""
|
||||
msgid "Applied to leave group %(group)s."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:438
|
||||
msgid "You cannot retract that request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:450
|
||||
#, python-format
|
||||
msgid "Retracted application to group %(group)s."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:458
|
||||
msgid "You have no open request for that group."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/apps.py:8
|
||||
msgid "HR Applications"
|
||||
msgstr ""
|
||||
@@ -1280,12 +1287,23 @@ msgstr ""
|
||||
msgid "Username"
|
||||
msgstr "Gebruikersnaam"
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:118
|
||||
#: allianceauth/srp/templates/srp/management.html:85
|
||||
msgid "Pending"
|
||||
msgstr "In behandeling"
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:141
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:185
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:21
|
||||
#: allianceauth/srp/templates/srp/data.html:112
|
||||
#: allianceauth/srp/templates/srp/data.html:110
|
||||
msgid "Approved"
|
||||
msgstr "Aanvaard"
|
||||
|
||||
@@ -1293,7 +1311,7 @@ msgstr "Aanvaard"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:143
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:187
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:50
|
||||
#: allianceauth/srp/templates/srp/data.html:116
|
||||
#: allianceauth/srp/templates/srp/data.html:114
|
||||
msgid "Rejected"
|
||||
msgstr "Afgewezen"
|
||||
|
||||
@@ -1528,8 +1546,8 @@ msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:155
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:158
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:17
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:18
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:13
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:14
|
||||
msgid "Sign In"
|
||||
msgstr ""
|
||||
|
||||
@@ -1557,11 +1575,11 @@ msgstr "Ongelezen"
|
||||
msgid "Read"
|
||||
msgstr "Gelezen"
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:32
|
||||
#: allianceauth/notifications/templates/notifications/list.html:31
|
||||
msgid "Mark all notifications as read"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:38
|
||||
#: allianceauth/notifications/templates/notifications/list.html:35
|
||||
msgid "Delete all read notifications"
|
||||
msgstr ""
|
||||
|
||||
@@ -1626,12 +1644,12 @@ msgid "Operation Type"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/form.py:17
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
#: allianceauth/srp/templates/srp/management.html:45
|
||||
msgid "Fleet Commander"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/form.py:22 allianceauth/srp/form.py:14
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
msgid "Additional Info"
|
||||
msgstr ""
|
||||
|
||||
@@ -1640,7 +1658,7 @@ msgid "(Optional) Describe the operation with a couple of short words."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/add.html:8
|
||||
#: allianceauth/optimer/templates/optimer/management.html:18
|
||||
#: allianceauth/optimer/templates/optimer/management.html:16
|
||||
msgid "Create Operation"
|
||||
msgstr ""
|
||||
|
||||
@@ -1689,26 +1707,26 @@ msgstr "Vloot Commandant"
|
||||
msgid "Fleet Operation Management"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:28
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:32
|
||||
#: allianceauth/optimer/templates/optimer/management.html:26
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:30
|
||||
msgid "Current EVE time:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:36
|
||||
#: allianceauth/optimer/templates/optimer/management.html:34
|
||||
msgid "Next Fleet Operations"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:44
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:63
|
||||
#: allianceauth/optimer/templates/optimer/management.html:42
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:61
|
||||
msgid "No upcoming timers."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:52
|
||||
#: allianceauth/optimer/templates/optimer/management.html:50
|
||||
msgid "Past Fleet Operations"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:60
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:81
|
||||
#: allianceauth/optimer/templates/optimer/management.html:58
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:79
|
||||
msgid "No past timers."
|
||||
msgstr ""
|
||||
|
||||
@@ -2276,7 +2294,7 @@ msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/templates/services/service_status.html:7
|
||||
#: allianceauth/srp/templates/srp/management.html:78
|
||||
#: allianceauth/srp/templates/srp/management.html:76
|
||||
msgid "Disabled"
|
||||
msgstr "Uitgeschakeld"
|
||||
|
||||
@@ -2314,12 +2332,12 @@ msgid "Ship Replacement"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:9
|
||||
#: allianceauth/srp/templates/srp/management.html:45
|
||||
#: allianceauth/srp/templates/srp/management.html:43
|
||||
msgid "Fleet Time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:10
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
msgid "Fleet Doctrine"
|
||||
msgstr ""
|
||||
|
||||
@@ -2368,7 +2386,7 @@ msgid "Give this link to the line members."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:8
|
||||
#: allianceauth/srp/templates/srp/data.html:39
|
||||
#: allianceauth/srp/templates/srp/data.html:37
|
||||
msgid "SRP Fleet Data"
|
||||
msgstr ""
|
||||
|
||||
@@ -2376,64 +2394,64 @@ msgstr ""
|
||||
msgid "View Fleets"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:26
|
||||
#: allianceauth/srp/templates/srp/data.html:24
|
||||
msgid "Mark Incomplete"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:30
|
||||
#: allianceauth/srp/templates/srp/data.html:28
|
||||
msgid "Mark Completed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:48
|
||||
#: allianceauth/srp/templates/srp/data.html:142
|
||||
#: allianceauth/srp/templates/srp/data.html:46
|
||||
#: allianceauth/srp/templates/srp/data.html:140
|
||||
msgid "Total Losses:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:49
|
||||
#: allianceauth/srp/templates/srp/data.html:143
|
||||
#: allianceauth/srp/templates/srp/management.html:36
|
||||
#: allianceauth/srp/templates/srp/data.html:47
|
||||
#: allianceauth/srp/templates/srp/data.html:141
|
||||
#: allianceauth/srp/templates/srp/management.html:34
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:60
|
||||
#: allianceauth/srp/templates/srp/data.html:154
|
||||
#: allianceauth/srp/templates/srp/data.html:58
|
||||
#: allianceauth/srp/templates/srp/data.html:152
|
||||
msgid "Are you sure you want to delete SRP requests?"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:68
|
||||
msgid "Pilot Name"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
#: allianceauth/srp/templates/srp/data.html:69
|
||||
msgid "Killboard Link"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:73
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
msgid "Ship Type"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
msgid "Killboard Loss Amt"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:76
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
msgid "SRP ISK Cost"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:77
|
||||
#: allianceauth/srp/templates/srp/data.html:75
|
||||
msgid "Click value to edit Enter to save & next ESC to cancel"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:80
|
||||
#: allianceauth/srp/templates/srp/data.html:78
|
||||
msgid "Post Time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:102
|
||||
#: allianceauth/srp/templates/srp/management.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:100
|
||||
#: allianceauth/srp/templates/srp/management.html:68
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:163
|
||||
#: allianceauth/srp/templates/srp/data.html:161
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr ""
|
||||
|
||||
@@ -2445,39 +2463,39 @@ msgstr ""
|
||||
msgid "View All"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:27
|
||||
#: allianceauth/srp/templates/srp/management.html:25
|
||||
msgid "Add SRP Fleet"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
msgid "Fleet AAR"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
msgid "Fleet SRP Code"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
msgid "Fleet ISK Cost"
|
||||
msgstr "Vloot ISK Kost"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
msgid "SRP Status"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:52
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
msgid "Pending Requests"
|
||||
msgstr "Lopende Aanvragen"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:91
|
||||
#: allianceauth/srp/templates/srp/management.html:89
|
||||
msgid "Completed"
|
||||
msgstr "Voltooid"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:108
|
||||
#: allianceauth/srp/templates/srp/management.html:106
|
||||
msgid "Are you sure you want to delete this SRP code and its contents?"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:129
|
||||
#: allianceauth/srp/templates/srp/management.html:127
|
||||
msgid "No SRP fleets created."
|
||||
msgstr ""
|
||||
|
||||
@@ -2613,67 +2631,120 @@ msgstr ""
|
||||
msgid "Your Server received an ESI error response code of "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:8
|
||||
msgid "Alliance Auth Notifications"
|
||||
msgstr "Alliantie Authenticatie Notificaties"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "No notifications at this time"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:11
|
||||
msgid "second"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Powered by GitLab"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:12
|
||||
msgid "seconds"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:35
|
||||
msgid "Support Discord"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:13
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:49
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Software Version"
|
||||
msgstr "Software Versie"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:56
|
||||
msgid "Current"
|
||||
msgstr "Huidige"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:63
|
||||
msgid "Latest Stable"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:14
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:68
|
||||
msgid "Update available"
|
||||
msgstr "Update Beschikbaar"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:76
|
||||
msgid "Latest Pre-Release"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:81
|
||||
msgid "Pre-Release available"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:16
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Task Queue"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:17
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:96
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of %(total)s processed tasks • last %(latest)s\n"
|
||||
" "
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:18
|
||||
msgid "ERROR"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:112
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:19
|
||||
msgid "running"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:113
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "queued"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:21
|
||||
msgid "succeeded"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:22
|
||||
msgid "retried"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:23
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Debug mode"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:34
|
||||
msgid ""
|
||||
"Debug mode is currently turned on!<br>Make sure to turn it off as soon as "
|
||||
"you are finished testing."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:46
|
||||
msgid "Alliance Auth Notifications"
|
||||
msgstr "Alliantie Authenticatie Notificaties"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:58
|
||||
msgid "No notifications at this time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:67
|
||||
msgid "Powered by GitLab"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:73
|
||||
msgid "Support Discord"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:87
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Software Version"
|
||||
msgstr "Software Versie"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:94
|
||||
msgid "Current"
|
||||
msgstr "Huidige"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:101
|
||||
msgid "Latest Stable"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:106
|
||||
msgid "Update available"
|
||||
msgstr "Update Beschikbaar"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:114
|
||||
msgid "Latest Pre-Release"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:119
|
||||
msgid "Pre-Release available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:129
|
||||
msgid "Task Queue"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:134
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of <span id=\"total-task-count\">?</span> processed tasks • last <span id=\"celery-uptime\">?</span>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/top-menu-admin.html:19
|
||||
msgid "AA Documentation"
|
||||
msgstr "AA Documentatie"
|
||||
@@ -2897,7 +2968,7 @@ msgid "Theft"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:7
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:54
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:52
|
||||
msgid "Upcoming Timers"
|
||||
msgstr ""
|
||||
|
||||
@@ -2925,7 +2996,7 @@ msgid "Create Timer"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/timer_create_form.html:9
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:22
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:20
|
||||
msgid "Create Structure Timer"
|
||||
msgstr ""
|
||||
|
||||
@@ -2943,11 +3014,11 @@ msgstr "Constructie"
|
||||
msgid "Structure Timer Management"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:41
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:39
|
||||
msgid "Corporation Timers"
|
||||
msgstr "Corporatie Timers"
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:72
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:70
|
||||
msgid "Past Timers"
|
||||
msgstr "Verlopen Timers."
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -7,17 +7,17 @@
|
||||
# Shen Yang, 2023
|
||||
# 85b931f94c2441449e78b527e0a313ae_baf2e99 <639a60f913241ffb1c9bd90bc93a541f_869335>, 2023
|
||||
# Aaron BuBu <351793078@qq.com>, 2023
|
||||
# Joel Falknau <ozirascal@gmail.com>, 2023
|
||||
# Aika Yu, 2025
|
||||
# Joel Falknau <ozirascal@gmail.com>, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-06-19 20:23+1000\n"
|
||||
"POT-Creation-Date: 2026-01-21 15:33+1000\n"
|
||||
"PO-Revision-Date: 2023-11-08 13:50+0000\n"
|
||||
"Last-Translator: Aika Yu, 2025\n"
|
||||
"Last-Translator: Joel Falknau <ozirascal@gmail.com>, 2025\n"
|
||||
"Language-Team: Chinese Simplified (https://app.transifex.com/alliance-auth/teams/107430/zh-Hans/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -64,7 +64,7 @@ msgid "You are not allowed to add or remove these restricted groups: %s"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:72
|
||||
#: allianceauth/project_template/project_name/settings/base.py:106
|
||||
#: allianceauth/project_template/project_name/settings/base.py:105
|
||||
msgid "English"
|
||||
msgstr "英语"
|
||||
|
||||
@@ -73,57 +73,57 @@ msgid "Czech"
|
||||
msgstr "捷克语"
|
||||
|
||||
#: allianceauth/authentication/models.py:74
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
#: allianceauth/project_template/project_name/settings/base.py:107
|
||||
msgid "German"
|
||||
msgstr "德语"
|
||||
|
||||
#: allianceauth/authentication/models.py:75
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
#: allianceauth/project_template/project_name/settings/base.py:108
|
||||
msgid "Spanish"
|
||||
msgstr "西班牙语"
|
||||
|
||||
#: allianceauth/authentication/models.py:76
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
#: allianceauth/project_template/project_name/settings/base.py:109
|
||||
msgid "Italian"
|
||||
msgstr "意大利语"
|
||||
|
||||
#: allianceauth/authentication/models.py:77
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
#: allianceauth/project_template/project_name/settings/base.py:110
|
||||
msgid "Japanese"
|
||||
msgstr "日语"
|
||||
|
||||
#: allianceauth/authentication/models.py:78
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
#: allianceauth/project_template/project_name/settings/base.py:111
|
||||
msgid "Korean"
|
||||
msgstr "韩语"
|
||||
|
||||
#: allianceauth/authentication/models.py:79
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
#: allianceauth/project_template/project_name/settings/base.py:112
|
||||
msgid "French"
|
||||
msgstr "法语"
|
||||
|
||||
#: allianceauth/authentication/models.py:80
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
msgid "Russian"
|
||||
msgstr "俄语"
|
||||
|
||||
#: allianceauth/authentication/models.py:81
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
#: allianceauth/project_template/project_name/settings/base.py:113
|
||||
msgid "Dutch"
|
||||
msgstr "荷兰语"
|
||||
|
||||
#: allianceauth/authentication/models.py:82
|
||||
#: allianceauth/project_template/project_name/settings/base.py:115
|
||||
#: allianceauth/project_template/project_name/settings/base.py:114
|
||||
msgid "Polish"
|
||||
msgstr "波兰语"
|
||||
|
||||
#: allianceauth/authentication/models.py:83
|
||||
#: allianceauth/project_template/project_name/settings/base.py:117
|
||||
#: allianceauth/project_template/project_name/settings/base.py:116
|
||||
msgid "Ukrainian"
|
||||
msgstr "乌克兰语"
|
||||
|
||||
#: allianceauth/authentication/models.py:84
|
||||
#: allianceauth/project_template/project_name/settings/base.py:118
|
||||
#: allianceauth/project_template/project_name/settings/base.py:117
|
||||
msgid "Simplified Chinese"
|
||||
msgstr "简体中文"
|
||||
|
||||
@@ -132,22 +132,30 @@ msgstr "简体中文"
|
||||
msgid "Language"
|
||||
msgstr "语言"
|
||||
|
||||
#: allianceauth/authentication/models.py:105
|
||||
#: allianceauth/authentication/models.py:106
|
||||
#: allianceauth/templates/allianceauth/night-toggle.html:6
|
||||
msgid "Night Mode"
|
||||
msgstr "夜间模式"
|
||||
|
||||
#: allianceauth/authentication/models.py:109
|
||||
#: allianceauth/authentication/models.py:110
|
||||
#: allianceauth/theme/templates/theme/theme_select.html:4
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:126
|
||||
#: allianceauth/authentication/models.py:117
|
||||
msgid "Minimize Sidebar Menu"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:119
|
||||
msgid "Keep the sidebar menu minimized"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:133
|
||||
#, python-format
|
||||
msgid "State changed to: %s"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/models.py:127
|
||||
#: allianceauth/authentication/models.py:134
|
||||
#, python-format
|
||||
msgid "Your user's state is now: %(state)s"
|
||||
msgstr ""
|
||||
@@ -168,14 +176,12 @@ msgstr "角色"
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:11
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:4
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:6
|
||||
msgid "Add Character"
|
||||
msgstr "添加角色"
|
||||
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:14
|
||||
#: allianceauth/authentication/templates/authentication/dashboard_characters.html:15
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:10
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:12
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:8
|
||||
msgid "Change Main"
|
||||
msgstr "修改主要角色"
|
||||
|
||||
@@ -209,8 +215,8 @@ msgstr ""
|
||||
|
||||
#: allianceauth/authentication/templates/authentication/tokens.html:7
|
||||
#: allianceauth/authentication/templates/authentication/tokens.html:11
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:133
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:136
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:158
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:161
|
||||
#: allianceauth/templates/allianceauth/top-menu-user-dropdown.html:62
|
||||
msgid "Token Management"
|
||||
msgstr ""
|
||||
@@ -232,8 +238,8 @@ msgstr ""
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:168
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:35
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:94
|
||||
#: allianceauth/srp/templates/srp/data.html:83
|
||||
#: allianceauth/srp/templates/srp/management.html:53
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
msgid "Actions"
|
||||
msgstr "操作"
|
||||
|
||||
@@ -246,8 +252,8 @@ msgstr "操作"
|
||||
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:41
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/audit.html:30
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembers.html:29
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:55
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:118
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:54
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:129
|
||||
msgid "Character"
|
||||
msgstr "角色"
|
||||
|
||||
@@ -284,49 +290,49 @@ msgstr "注册"
|
||||
msgid "Invalid or expired activation link."
|
||||
msgstr "激活链接无效或过期"
|
||||
|
||||
#: allianceauth/authentication/views.py:158
|
||||
#: allianceauth/authentication/views.py:159
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Cannot change main character to %(char)s: character owned by a different "
|
||||
"account."
|
||||
msgstr "不能修改主角色为%(char)s:这个角色被另一个账户所拥有"
|
||||
|
||||
#: allianceauth/authentication/views.py:165
|
||||
#: allianceauth/authentication/views.py:166
|
||||
#, python-format
|
||||
msgid "Changed main character to %s"
|
||||
msgstr "修改主角色为%s"
|
||||
|
||||
#: allianceauth/authentication/views.py:179
|
||||
#: allianceauth/authentication/views.py:180
|
||||
#, python-format
|
||||
msgid "Added %(name)s to your account."
|
||||
msgstr "添加%(name)s到您的账户"
|
||||
|
||||
#: allianceauth/authentication/views.py:181
|
||||
#: allianceauth/authentication/views.py:182
|
||||
#, python-format
|
||||
msgid "Failed to add %(name)s to your account: they already have an account."
|
||||
msgstr "添加%(name)s到您的账户失败:他们已经在一个账户中了"
|
||||
|
||||
#: allianceauth/authentication/views.py:226
|
||||
#: allianceauth/authentication/views.py:227
|
||||
msgid ""
|
||||
"Unable to authenticate as the selected character. Please log in with the "
|
||||
"main character associated with this account."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:293
|
||||
#: allianceauth/authentication/views.py:294
|
||||
msgid "Registration token has expired."
|
||||
msgstr "注册令牌过期。"
|
||||
|
||||
#: allianceauth/authentication/views.py:354
|
||||
#: allianceauth/authentication/views.py:355
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
msgstr "已经发送了确认邮件。请按照链接确定您的电邮地址"
|
||||
|
||||
#: allianceauth/authentication/views.py:360
|
||||
#: allianceauth/authentication/views.py:361
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr "已确认您的电邮地址。请登录以继续"
|
||||
|
||||
#: allianceauth/authentication/views.py:366
|
||||
#: allianceauth/authentication/views.py:367
|
||||
msgid "Registration of new accounts is not allowed at this time."
|
||||
msgstr ""
|
||||
|
||||
@@ -343,11 +349,11 @@ msgstr "军团成员数据"
|
||||
msgid "Corporations"
|
||||
msgstr "所有公司"
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:35
|
||||
#: allianceauth/corputils/templates/corputils/base.html:31
|
||||
msgid "Add corporation"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/corputils/templates/corputils/base.html:51
|
||||
#: allianceauth/corputils/templates/corputils/base.html:47
|
||||
msgid "Search all corporations..."
|
||||
msgstr "搜索所有公司"
|
||||
|
||||
@@ -384,6 +390,8 @@ msgstr "注册过的角色"
|
||||
#: allianceauth/corputils/templates/corputils/corpstats.html:125
|
||||
#: allianceauth/corputils/templates/corputils/search.html:18
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/audit.html:31
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:58
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:133
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:35
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:122
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:166
|
||||
@@ -495,7 +503,7 @@ msgid "Fleet Activity Tracking"
|
||||
msgstr "舰队活动历史"
|
||||
|
||||
#: allianceauth/fleetactivitytracking/forms.py:6 allianceauth/srp/form.py:8
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
#: allianceauth/srp/templates/srp/management.html:42
|
||||
msgid "Fleet Name"
|
||||
msgstr "舰队名"
|
||||
|
||||
@@ -754,14 +762,18 @@ msgstr "PAP链接已过期"
|
||||
#: allianceauth/fleetactivitytracking/views.py:323
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Cannot register the fleet participation for {character.character_name}. The "
|
||||
"character needs to be online."
|
||||
"Cannot register the fleet participation for {character_name}. The character "
|
||||
"needs to be online."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/framework/apps.py:16
|
||||
msgid "Framework"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/framework/templates/framework/datatables/process-indicator.html:8
|
||||
msgid "Loading …"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/apps.py:8
|
||||
#: allianceauth/groupmanagement/auth_hooks.py:18
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:18
|
||||
@@ -933,8 +945,8 @@ msgid "Group Members"
|
||||
msgstr "群组成员"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembers.html:30
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:56
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:119
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:55
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:130
|
||||
#: allianceauth/permissions_tool/templates/permissions_tool/audit.html:33
|
||||
msgid "Organization"
|
||||
msgstr "组织"
|
||||
@@ -946,7 +958,9 @@ msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembers.html:61
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:85
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:148
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:106
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:160
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:181
|
||||
#: allianceauth/permissions_tool/templates/permissions_tool/audit_row.html:18
|
||||
msgid "(unknown)"
|
||||
msgstr ""
|
||||
@@ -979,7 +993,7 @@ msgstr "描述"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:123
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:167
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:34
|
||||
#: allianceauth/srp/templates/srp/data.html:81
|
||||
#: allianceauth/srp/templates/srp/data.html:79
|
||||
msgid "Status"
|
||||
msgstr "状态"
|
||||
|
||||
@@ -992,7 +1006,7 @@ msgid "Hidden"
|
||||
msgstr "已隐藏"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembership.html:45
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Open"
|
||||
msgstr "公开"
|
||||
|
||||
@@ -1026,8 +1040,8 @@ msgid "Leaders"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:37
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:57
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:120
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:56
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:131
|
||||
#: allianceauth/permissions_tool/templates/permissions_tool/audit.html:30
|
||||
#: allianceauth/services/modules/openfire/forms.py:6
|
||||
msgid "Group"
|
||||
@@ -1037,18 +1051,10 @@ msgstr "用户组"
|
||||
msgid "Leave"
|
||||
msgstr "离开"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:74
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:89
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/management.html:87
|
||||
msgid "Pending"
|
||||
msgstr "待定"
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:73
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:88
|
||||
msgid "Request pending"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:80
|
||||
msgid "Join"
|
||||
@@ -1058,7 +1064,11 @@ msgstr "加入"
|
||||
msgid "Request"
|
||||
msgstr "申请"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:99
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:93
|
||||
msgid "Retract"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:103
|
||||
msgid "No groups available."
|
||||
msgstr "没有可用用户组"
|
||||
|
||||
@@ -1080,22 +1090,22 @@ msgstr "离组的请求"
|
||||
msgid "Group Membership"
|
||||
msgstr "用户组成员"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:93
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:156
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:96
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:171
|
||||
msgid "Accept"
|
||||
msgstr "接受"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:96
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:160
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:99
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:174
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:104
|
||||
msgid "Reject"
|
||||
msgstr "拒绝"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:106
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:117
|
||||
msgid "No group add requests."
|
||||
msgstr "没有加入用户组的请求,小老弟你是不是摇不到人"
|
||||
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:169
|
||||
#: allianceauth/groupmanagement/templates/groupmanagement/index.html:190
|
||||
msgid "No group leave requests."
|
||||
msgstr "没有离开用户组的请求,小老弟你人缘可以啊?"
|
||||
|
||||
@@ -1187,6 +1197,19 @@ msgstr "你已经有了该组的未决离开请求"
|
||||
msgid "Applied to leave group %(group)s."
|
||||
msgstr "已经离开群组%(group)s"
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:438
|
||||
msgid "You cannot retract that request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:450
|
||||
#, python-format
|
||||
msgid "Retracted application to group %(group)s."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/groupmanagement/views.py:458
|
||||
msgid "You have no open request for that group."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/hrapplications/apps.py:8
|
||||
msgid "HR Applications"
|
||||
msgstr ""
|
||||
@@ -1257,12 +1280,23 @@ msgstr "创建申请"
|
||||
msgid "Username"
|
||||
msgstr "用户名"
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:95
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:138
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
|
||||
#: allianceauth/srp/templates/srp/data.html:118
|
||||
#: allianceauth/srp/templates/srp/management.html:85
|
||||
msgid "Pending"
|
||||
msgstr "待定"
|
||||
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:141
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:185
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:48
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:21
|
||||
#: allianceauth/srp/templates/srp/data.html:112
|
||||
#: allianceauth/srp/templates/srp/data.html:110
|
||||
msgid "Approved"
|
||||
msgstr "通过"
|
||||
|
||||
@@ -1270,7 +1304,7 @@ msgstr "通过"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:143
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:187
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:50
|
||||
#: allianceauth/srp/templates/srp/data.html:116
|
||||
#: allianceauth/srp/templates/srp/data.html:114
|
||||
msgid "Rejected"
|
||||
msgstr "拒绝"
|
||||
|
||||
@@ -1474,39 +1508,47 @@ msgid "Notifications"
|
||||
msgstr "通知"
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:77
|
||||
msgid "Sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:93
|
||||
msgid "Minimize Sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:102
|
||||
msgid "Super User"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:83
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:86
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:108
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:111
|
||||
msgid "Alliance Auth Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:94
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:97
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:119
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:122
|
||||
msgid "Alliance Auth Discord"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:105
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:108
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:130
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:133
|
||||
msgid "Alliance Auth Git"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:118
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:121
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:143
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:146
|
||||
#: allianceauth/templates/allianceauth/top-menu-admin.html:9
|
||||
msgid "Admin"
|
||||
msgstr "管理员"
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:144
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:147
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:169
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:172
|
||||
msgid "Sign Out"
|
||||
msgstr "登出"
|
||||
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:155
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:158
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:17
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:18
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:180
|
||||
#: allianceauth/menu/templates/menu/menu-user.html:183
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:13
|
||||
#: allianceauth/templates/allianceauth/top-menu-rh-default.html:14
|
||||
msgid "Sign In"
|
||||
msgstr "登入"
|
||||
|
||||
@@ -1534,11 +1576,11 @@ msgstr "未读"
|
||||
msgid "Read"
|
||||
msgstr "已读"
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:32
|
||||
#: allianceauth/notifications/templates/notifications/list.html:31
|
||||
msgid "Mark all notifications as read"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/notifications/templates/notifications/list.html:38
|
||||
#: allianceauth/notifications/templates/notifications/list.html:35
|
||||
msgid "Delete all read notifications"
|
||||
msgstr ""
|
||||
|
||||
@@ -1603,12 +1645,12 @@ msgid "Operation Type"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/form.py:17
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
#: allianceauth/srp/templates/srp/management.html:45
|
||||
msgid "Fleet Commander"
|
||||
msgstr "FC"
|
||||
|
||||
#: allianceauth/optimer/form.py:22 allianceauth/srp/form.py:14
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
msgid "Additional Info"
|
||||
msgstr "其他信息"
|
||||
|
||||
@@ -1617,7 +1659,7 @@ msgid "(Optional) Describe the operation with a couple of short words."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/add.html:8
|
||||
#: allianceauth/optimer/templates/optimer/management.html:18
|
||||
#: allianceauth/optimer/templates/optimer/management.html:16
|
||||
msgid "Create Operation"
|
||||
msgstr "起一个队"
|
||||
|
||||
@@ -1666,26 +1708,26 @@ msgstr "FC"
|
||||
msgid "Fleet Operation Management"
|
||||
msgstr "管理搞事队"
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:28
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:32
|
||||
#: allianceauth/optimer/templates/optimer/management.html:26
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:30
|
||||
msgid "Current EVE time:"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:36
|
||||
#: allianceauth/optimer/templates/optimer/management.html:34
|
||||
msgid "Next Fleet Operations"
|
||||
msgstr "下一个舰队任务"
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:44
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:63
|
||||
#: allianceauth/optimer/templates/optimer/management.html:42
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:61
|
||||
msgid "No upcoming timers."
|
||||
msgstr "没有快到的时间节点,歇一会吧"
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:52
|
||||
#: allianceauth/optimer/templates/optimer/management.html:50
|
||||
msgid "Past Fleet Operations"
|
||||
msgstr "过去的舰队任务"
|
||||
|
||||
#: allianceauth/optimer/templates/optimer/management.html:60
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:81
|
||||
#: allianceauth/optimer/templates/optimer/management.html:58
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:79
|
||||
msgid "No past timers."
|
||||
msgstr "没有已经结束的时间节点啦"
|
||||
|
||||
@@ -1765,9 +1807,9 @@ msgstr "声望"
|
||||
msgid "That service account already exists"
|
||||
msgstr "该服务账户仍然存在"
|
||||
|
||||
#: allianceauth/services/abstract.py:103
|
||||
#: allianceauth/services/abstract.py:105
|
||||
#, python-brace-format
|
||||
msgid "Successfully set your {self.service_name} password"
|
||||
msgid "Successfully set your {service_name} password"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/apps.py:8 allianceauth/services/auth_hooks.py:12
|
||||
@@ -2253,7 +2295,7 @@ msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/templates/services/service_status.html:7
|
||||
#: allianceauth/srp/templates/srp/management.html:78
|
||||
#: allianceauth/srp/templates/srp/management.html:76
|
||||
msgid "Disabled"
|
||||
msgstr "失效了"
|
||||
|
||||
@@ -2291,12 +2333,12 @@ msgid "Ship Replacement"
|
||||
msgstr "补损"
|
||||
|
||||
#: allianceauth/srp/form.py:9
|
||||
#: allianceauth/srp/templates/srp/management.html:45
|
||||
#: allianceauth/srp/templates/srp/management.html:43
|
||||
msgid "Fleet Time"
|
||||
msgstr "集结时间"
|
||||
|
||||
#: allianceauth/srp/form.py:10
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
#: allianceauth/srp/templates/srp/management.html:44
|
||||
msgid "Fleet Doctrine"
|
||||
msgstr "舰队船型"
|
||||
|
||||
@@ -2308,11 +2350,11 @@ msgstr ""
|
||||
msgid "Invalid Link. Please use zkillboard.com or kb.evetools.org"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:46
|
||||
#: allianceauth/srp/form.py:49
|
||||
msgid "Invalid Link. Please post a direct link to a killmail."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/form.py:53
|
||||
#: allianceauth/srp/form.py:56
|
||||
msgid "After Action Report Link"
|
||||
msgstr "战报链接"
|
||||
|
||||
@@ -2345,7 +2387,7 @@ msgid "Give this link to the line members."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:8
|
||||
#: allianceauth/srp/templates/srp/data.html:39
|
||||
#: allianceauth/srp/templates/srp/data.html:37
|
||||
msgid "SRP Fleet Data"
|
||||
msgstr "舰队补损信息"
|
||||
|
||||
@@ -2353,64 +2395,64 @@ msgstr "舰队补损信息"
|
||||
msgid "View Fleets"
|
||||
msgstr "查看舰队"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:26
|
||||
#: allianceauth/srp/templates/srp/data.html:24
|
||||
msgid "Mark Incomplete"
|
||||
msgstr "标记为未完成"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:30
|
||||
#: allianceauth/srp/templates/srp/data.html:28
|
||||
msgid "Mark Completed"
|
||||
msgstr "标记为已完成"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:48
|
||||
#: allianceauth/srp/templates/srp/data.html:142
|
||||
#: allianceauth/srp/templates/srp/data.html:46
|
||||
#: allianceauth/srp/templates/srp/data.html:140
|
||||
msgid "Total Losses:"
|
||||
msgstr "损失总额:"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:49
|
||||
#: allianceauth/srp/templates/srp/data.html:143
|
||||
#: allianceauth/srp/templates/srp/management.html:36
|
||||
#: allianceauth/srp/templates/srp/data.html:47
|
||||
#: allianceauth/srp/templates/srp/data.html:141
|
||||
#: allianceauth/srp/templates/srp/management.html:34
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr "ISK花费总额:"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:60
|
||||
#: allianceauth/srp/templates/srp/data.html:154
|
||||
#: allianceauth/srp/templates/srp/data.html:58
|
||||
#: allianceauth/srp/templates/srp/data.html:152
|
||||
msgid "Are you sure you want to delete SRP requests?"
|
||||
msgstr "老哥,你确定要删了补损请求么?"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:68
|
||||
msgid "Pilot Name"
|
||||
msgstr "玩家ID"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
#: allianceauth/srp/templates/srp/data.html:69
|
||||
msgid "Killboard Link"
|
||||
msgstr "KB网链接"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:73
|
||||
#: allianceauth/srp/templates/srp/data.html:71
|
||||
msgid "Ship Type"
|
||||
msgstr "船型"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
#: allianceauth/srp/templates/srp/data.html:72
|
||||
msgid "Killboard Loss Amt"
|
||||
msgstr "KB网总损失"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:76
|
||||
#: allianceauth/srp/templates/srp/data.html:74
|
||||
msgid "SRP ISK Cost"
|
||||
msgstr "补损ISK花费"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:77
|
||||
#: allianceauth/srp/templates/srp/data.html:75
|
||||
msgid "Click value to edit Enter to save & next ESC to cancel"
|
||||
msgstr "点击数值就可以编辑啦,按回车确认,按ESC取消"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:80
|
||||
#: allianceauth/srp/templates/srp/data.html:78
|
||||
msgid "Post Time"
|
||||
msgstr "发布时间"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:102
|
||||
#: allianceauth/srp/templates/srp/management.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:100
|
||||
#: allianceauth/srp/templates/srp/management.html:68
|
||||
msgid "Link"
|
||||
msgstr "链接"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:163
|
||||
#: allianceauth/srp/templates/srp/data.html:161
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr "这次起队没有补损请求!大捷"
|
||||
|
||||
@@ -2422,39 +2464,39 @@ msgstr "补损管理"
|
||||
msgid "View All"
|
||||
msgstr "查看全部"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:27
|
||||
#: allianceauth/srp/templates/srp/management.html:25
|
||||
msgid "Add SRP Fleet"
|
||||
msgstr "添加补损舰队"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
#: allianceauth/srp/templates/srp/management.html:46
|
||||
msgid "Fleet AAR"
|
||||
msgstr "舰队战报"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
#: allianceauth/srp/templates/srp/management.html:47
|
||||
msgid "Fleet SRP Code"
|
||||
msgstr "补损编号"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
#: allianceauth/srp/templates/srp/management.html:48
|
||||
msgid "Fleet ISK Cost"
|
||||
msgstr "舰队ISK花费"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:51
|
||||
#: allianceauth/srp/templates/srp/management.html:49
|
||||
msgid "SRP Status"
|
||||
msgstr "补损状态"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:52
|
||||
#: allianceauth/srp/templates/srp/management.html:50
|
||||
msgid "Pending Requests"
|
||||
msgstr "待处理请求"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:91
|
||||
#: allianceauth/srp/templates/srp/management.html:89
|
||||
msgid "Completed"
|
||||
msgstr "已完成"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:108
|
||||
#: allianceauth/srp/templates/srp/management.html:106
|
||||
msgid "Are you sure you want to delete this SRP code and its contents?"
|
||||
msgstr "老哥,你确认要把这次补损的编号和内容都删了?"
|
||||
|
||||
#: allianceauth/srp/templates/srp/management.html:129
|
||||
#: allianceauth/srp/templates/srp/management.html:127
|
||||
msgid "No SRP fleets created."
|
||||
msgstr "没有创建任何补损舰队,你快灭灯了吧?"
|
||||
|
||||
@@ -2586,71 +2628,124 @@ msgstr "找不到ID是%(requestid)s的补损申请呀,老哥眼花了?"
|
||||
msgid "Saved changes to SRP fleet %(fleetname)s"
|
||||
msgstr "你做的修改已经保存到%(fleetname)s这个补损舰队啦,尽情白给吧!"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/esi_check.html:4
|
||||
#: allianceauth/templates/allianceauth/admin-status/esi_check.html:5
|
||||
msgid "Your Server received an ESI error response code of "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:8
|
||||
msgid "Alliance Auth Notifications"
|
||||
msgstr "系统通知"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "No notifications at this time"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:11
|
||||
msgid "second"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Powered by GitLab"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:12
|
||||
msgid "seconds"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:35
|
||||
msgid "Support Discord"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:13
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:49
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
|
||||
msgid "Software Version"
|
||||
msgstr "软件版本"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:14
|
||||
msgid "minutes"
|
||||
msgstr "分钟数"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:56
|
||||
msgid "Current"
|
||||
msgstr "当前版本"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:63
|
||||
msgid "Latest Stable"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:68
|
||||
msgid "Update available"
|
||||
msgstr "有更新!"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:76
|
||||
msgid "Latest Pre-Release"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:16
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:81
|
||||
msgid "Pre-Release available"
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:17
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Task Queue"
|
||||
msgstr "任务队列"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:96
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of %(total)s processed tasks • last %(latest)s\n"
|
||||
" "
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:18
|
||||
msgid "ERROR"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:112
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:19
|
||||
msgid "running"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:113
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
|
||||
msgid "queued"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:21
|
||||
msgid "succeeded"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:22
|
||||
msgid "retried"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:23
|
||||
msgid "failed"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
|
||||
msgid "Debug mode"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:34
|
||||
msgid ""
|
||||
"Debug mode is currently turned on!<br>Make sure to turn it off as soon as "
|
||||
"you are finished testing."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:46
|
||||
msgid "Alliance Auth Notifications"
|
||||
msgstr "系统通知"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:58
|
||||
msgid "No notifications at this time"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:67
|
||||
msgid "Powered by GitLab"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:73
|
||||
msgid "Support Discord"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:87
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
|
||||
msgid "Software Version"
|
||||
msgstr "软件版本"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:94
|
||||
msgid "Current"
|
||||
msgstr "当前版本"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:101
|
||||
msgid "Latest Stable"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:106
|
||||
msgid "Update available"
|
||||
msgstr "有更新!"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:114
|
||||
msgid "Latest Pre-Release"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:119
|
||||
msgid "Pre-Release available"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:129
|
||||
msgid "Task Queue"
|
||||
msgstr "任务队列"
|
||||
|
||||
#: allianceauth/templates/allianceauth/admin-status/overview.html:134
|
||||
msgid ""
|
||||
"\n"
|
||||
" Status of <span id=\"total-task-count\">?</span> processed tasks • last <span id=\"celery-uptime\">?</span>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/templates/allianceauth/top-menu-admin.html:19
|
||||
msgid "AA Documentation"
|
||||
msgstr ""
|
||||
@@ -2874,7 +2969,7 @@ msgid "Theft"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:7
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:54
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:52
|
||||
msgid "Upcoming Timers"
|
||||
msgstr ""
|
||||
|
||||
@@ -2902,7 +2997,7 @@ msgid "Create Timer"
|
||||
msgstr "创建时间计划表"
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/timer_create_form.html:9
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:22
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:20
|
||||
msgid "Create Structure Timer"
|
||||
msgstr "创建建筑时间表"
|
||||
|
||||
@@ -2920,11 +3015,11 @@ msgstr "建筑"
|
||||
msgid "Structure Timer Management"
|
||||
msgstr "管理建筑时间表"
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:41
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:39
|
||||
msgid "Corporation Timers"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:72
|
||||
#: allianceauth/timerboard/templates/timerboard/view.html:70
|
||||
msgid "Past Timers"
|
||||
msgstr "已经过去的时间节点"
|
||||
|
||||
@@ -2937,36 +3032,36 @@ msgstr "已经把%(system)s星系里%(time)s的时间节点设置好了!CTA!
|
||||
msgid "Saved changes to the timer."
|
||||
msgstr "保存至新的计划表"
|
||||
|
||||
#: allianceauth/views.py:55
|
||||
#: allianceauth/views.py:78
|
||||
msgid "Bad Request"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:57 allianceauth/views.py:87
|
||||
#: allianceauth/views.py:80 allianceauth/views.py:110
|
||||
msgid ""
|
||||
"Auth encountered an error processing your request, please try again. If the "
|
||||
"error persists, please contact the administrators."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:65
|
||||
#: allianceauth/views.py:88
|
||||
msgid "Permission Denied"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:67
|
||||
#: allianceauth/views.py:90
|
||||
msgid ""
|
||||
"You do not have permission to access the requested page. If you believe this"
|
||||
" is in error please contact the administrators."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:75
|
||||
#: allianceauth/views.py:98
|
||||
msgid "Page Not Found"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:77
|
||||
#: allianceauth/views.py:100
|
||||
msgid ""
|
||||
"Page does not exist. If you believe this is in error please contact the "
|
||||
"administrators. "
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/views.py:85
|
||||
#: allianceauth/views.py:108
|
||||
msgid "Internal Server Error"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from __future__ import annotations
|
||||
from __future__ import annotations # Still needed for Python 3.8, replaced with better implementations in Py39+
|
||||
|
||||
import logging
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
<li class="nav-item" id="menu_item_notifications">
|
||||
<a class="nav-link {% navactive request 'notifications:' %}" href="{% url 'notifications:list' %}">
|
||||
{% with unread_count=request.user|user_unread_notification_count %}
|
||||
<i class="fa-solid fa-bell{% if unread_count %} text-danger{% endif %}"></i>
|
||||
<i class="fa-solid fa-bell me-2 fa-fw{% if unread_count %} text-danger{% endif %}"></i>
|
||||
{% endwith %}
|
||||
|
||||
<span class="d-lg-none d-md-inline m-2">
|
||||
<span class="d-lg-none d-md-inline">
|
||||
{% translate "Notifications" %}
|
||||
</span>
|
||||
</a>
|
||||
|
||||
@@ -72,6 +72,31 @@
|
||||
|
||||
{% theme_select %}
|
||||
|
||||
{% if user.is_authenticated and not request.is_mobile_device %}
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><h6 class="dropdown-header">{% translate "Sidebar" %}</h6></li>
|
||||
|
||||
<li>
|
||||
<form class="dropdown-item" action="{% url 'minimize_sidebar' %}?next={{ request.path|urlencode }}" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="checkbox"
|
||||
role="switch"
|
||||
id="toggle-sidebar"
|
||||
onchange="this.form.submit()"
|
||||
{% if request.session.MINIMIZE_SIDEBAR %}checked{% endif %}
|
||||
>
|
||||
<label class="form-check-label" for="toggle-sidebar">
|
||||
{% translate "Minimize Sidebar" %}
|
||||
</label>
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user.is_superuser %}
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><h6 class="dropdown-header">{% translate "Super User" %}</h6></li>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{% load menu_menu_items %}
|
||||
|
||||
<div class="col-auto px-0">
|
||||
<div class="collapse collapse-horizontal" tabindex="-1" id="sidebar">
|
||||
<div class="collapse collapse-horizontal {% if user.is_authenticated and not request.is_mobile_device and not request.session.MINIMIZE_SIDEBAR %}show{% endif %}" tabindex="-1" id="sidebar">
|
||||
<div>
|
||||
<div class="nav-padding navbar-dark text-bg-dark px-0 d-flex flex-column overflow-hidden vh-100 {% if not user.is_authenticated %}position-relative{% endif %}">
|
||||
{% if user.is_authenticated %}
|
||||
|
||||
65
allianceauth/middleware.py
Normal file
65
allianceauth/middleware.py
Normal file
@@ -0,0 +1,65 @@
|
||||
"""
|
||||
Alliance Auth Middleware
|
||||
"""
|
||||
|
||||
from user_agents import parse
|
||||
|
||||
|
||||
class DeviceDetectionMiddleware:
|
||||
"""
|
||||
Middleware to detect the type of device making the request.
|
||||
Sets flags on the request object for easy access in views and templates.
|
||||
|
||||
Flags include:
|
||||
- is_mobile: True if the device is a mobile phone.
|
||||
- is_tablet: True if the device is a tablet.
|
||||
- is_mobile_device: True if the device is either a mobile phone or a tablet.
|
||||
- is_touch_capable: True if the device has touch capabilities.
|
||||
- is_pc: True if the device is a desktop or laptop computer.
|
||||
- is_bot: True if the device is identified as a bot or crawler.
|
||||
"""
|
||||
|
||||
def __init__(self, get_response):
|
||||
"""
|
||||
Initialize the middleware with the get_response callable.
|
||||
|
||||
:param get_response:
|
||||
:type get_response:
|
||||
"""
|
||||
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
"""
|
||||
Process the incoming request to determine if it's from a mobile device.
|
||||
|
||||
This method is called when the middleware is invoked. It inspects the
|
||||
`user-agent` header of the incoming HTTP request to determine the type
|
||||
of client making the request (e.g., mobile, tablet, PC, bot, etc.).
|
||||
Flags are set on the `request` object to indicate the client type.
|
||||
|
||||
:param request: The HTTP request object.
|
||||
:type request: HttpRequest
|
||||
:return: The HTTP response object after processing the request.
|
||||
:rtype: HttpResponse
|
||||
"""
|
||||
|
||||
# Retrieve the user-agent string from the request headers
|
||||
user_agent_string = request.headers.get("user-agent", "")
|
||||
|
||||
# Parse the user-agent string to extract client information
|
||||
user_agent = parse(user_agent_string)
|
||||
|
||||
# Set flags on the request object based on the client type
|
||||
request.is_mobile = user_agent.is_mobile # True if the client is a mobile phone
|
||||
request.is_tablet = user_agent.is_tablet # True if the client is a tablet
|
||||
request.is_mobile_device = user_agent.is_mobile or user_agent.is_tablet # True if mobile phone or tablet
|
||||
request.is_touch_capable = user_agent.is_touch_capable # True if the client supports touch input
|
||||
request.is_pc = user_agent.is_pc # True if the client is a PC
|
||||
request.is_bot = user_agent.is_bot # True if the client is a bot
|
||||
|
||||
# Pass the request to the next middleware or view and get the response
|
||||
response = self.get_response(request)
|
||||
|
||||
# Return the processed response
|
||||
return response
|
||||
@@ -28,17 +28,13 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block header_nav_collapse_right %}
|
||||
<li class="nav-item">
|
||||
<a href="{% url 'notifications:mark_all_read' %}" class="nav-link" title="{% translate 'Mark all notifications as read' %}">
|
||||
<i class="fa-solid fa-check-double"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% translate "Mark all notifications as read" as nav_item_title %}
|
||||
{% url "notifications:mark_all_read" as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-icon.html" with fa_icon="fa-solid fa-check-double" url=nav_item_link title=nav_item_title icon_on_mobile=True %}
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{% url 'notifications:delete_all_read' %}" class="nav-link" title="{% translate 'Delete all read notifications' %}">
|
||||
<i class="fa-solid fa-trash-can"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% translate "Delete all read notifications" as nav_item_title %}
|
||||
{% url "notifications:delete_all_read" as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-icon.html" with fa_icon="fa-solid fa-trash-can" url=nav_item_link title=nav_item_title icon_on_mobile=True %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
{% for ops in timers %}
|
||||
<tbody>
|
||||
<tbody>
|
||||
{% for ops in timers %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ ops.operation_name }}
|
||||
@@ -55,8 +55,8 @@
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</tbody>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
||||
@@ -13,11 +13,9 @@
|
||||
|
||||
{% block header_nav_collapse_right %}
|
||||
{% if perms.auth.optimer_management %}
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-success" href="{% url 'optimer:add' %}">
|
||||
{% translate "Create Operation" %}
|
||||
</a>
|
||||
</li>
|
||||
{% translate "Create Operation" as nav_item_title %}
|
||||
{% url "optimer:add" as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-button.html" with btn_modifier="success" url=nav_item_link title=nav_item_title fa_icon="fa-solid fa-plus" icon_on_mobile=True %}
|
||||
{% endif %}
|
||||
{% endblock header_nav_collapse_right %}
|
||||
|
||||
@@ -67,83 +65,85 @@
|
||||
{% include 'bundles/timers-js.html' %}
|
||||
|
||||
<script>
|
||||
// Data
|
||||
const timers = [
|
||||
{% for op in optimer %}
|
||||
{
|
||||
'id': {{ op.id }},
|
||||
'start': moment("{{ op.start | date:"c" }}"),
|
||||
'expired': false
|
||||
},
|
||||
{% endfor %}
|
||||
];
|
||||
$(document).ready(() => {
|
||||
// Data
|
||||
const timers = [
|
||||
{% for op in optimer %}
|
||||
{
|
||||
'id': {{ op.id }},
|
||||
'start': moment("{{ op.start | date:"c" }}"),
|
||||
'expired': false
|
||||
},
|
||||
{% endfor %}
|
||||
];
|
||||
|
||||
/**
|
||||
* Update a timer
|
||||
* @param timer Timer information
|
||||
*/
|
||||
const updateTimer = (timer) => {
|
||||
if (timer.start.isAfter(Date.now())) {
|
||||
const duration = moment.duration(timer.start - moment(), 'milliseconds');
|
||||
/**
|
||||
* Update a timer
|
||||
* @param timer Timer information
|
||||
*/
|
||||
const updateTimer = (timer) => {
|
||||
if (timer.start.isAfter(Date.now())) {
|
||||
const duration = moment.duration(timer.start - moment(), 'milliseconds');
|
||||
|
||||
document.getElementById("countdown" + timer.id).innerHTML = getDurationString(duration);
|
||||
} else {
|
||||
timer.expired = true;
|
||||
document.getElementById("countdown" + timer.id).innerHTML = getDurationString(duration);
|
||||
} else {
|
||||
timer.expired = true;
|
||||
|
||||
document.getElementById("countdown" + timer.id).innerHTML = "";
|
||||
}
|
||||
};
|
||||
document.getElementById("countdown" + timer.id).innerHTML = "";
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Update all timers
|
||||
*/
|
||||
const updateAllTimers = () => {
|
||||
const l = timers.length;
|
||||
/**
|
||||
* Update all timers
|
||||
*/
|
||||
const updateAllTimers = () => {
|
||||
const l = timers.length;
|
||||
|
||||
for (let i=0; i < l; ++i) {
|
||||
if (timers[i].expired) continue;
|
||||
for (let i=0; i < l; ++i) {
|
||||
if (timers[i].expired) continue;
|
||||
|
||||
updateTimer(timers[i]);
|
||||
}
|
||||
};
|
||||
updateTimer(timers[i]);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the local time info for the timer
|
||||
* @param timer Timer information
|
||||
*/
|
||||
const setLocalTime = (timer) => {
|
||||
document.getElementById("localtime" + timer.id).innerHTML = timer.start.format("ddd @ LT");
|
||||
};
|
||||
/**
|
||||
* Set the local time info for the timer
|
||||
* @param timer Timer information
|
||||
*/
|
||||
const setLocalTime = (timer) => {
|
||||
document.getElementById("localtime" + timer.id).innerHTML = timer.start.format("ddd @ LT");
|
||||
};
|
||||
|
||||
/**
|
||||
* Set all local time fields
|
||||
*/
|
||||
const setAllLocalTimes = () => {
|
||||
const l = timers.length;
|
||||
/**
|
||||
* Set all local time fields
|
||||
*/
|
||||
const setAllLocalTimes = () => {
|
||||
const l = timers.length;
|
||||
|
||||
for (let i=0; i < l; ++i) {
|
||||
setLocalTime(timers[i]);
|
||||
}
|
||||
};
|
||||
for (let i=0; i < l; ++i) {
|
||||
setLocalTime(timers[i]);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the current EVE time as a string
|
||||
* @returns {string} EVE time string
|
||||
*/
|
||||
const updateClock = () => {
|
||||
document.getElementById("current-time").innerHTML = getCurrentEveTimeString();
|
||||
};
|
||||
/**
|
||||
* Get the current EVE time as a string
|
||||
* @returns {string} EVE time string
|
||||
*/
|
||||
const updateClock = () => {
|
||||
document.getElementById("current-time").innerHTML = getCurrentEveTimeString();
|
||||
};
|
||||
|
||||
const timedUpdate = () => {
|
||||
updateClock();
|
||||
updateAllTimers();
|
||||
};
|
||||
const timedUpdate = () => {
|
||||
updateClock();
|
||||
updateAllTimers();
|
||||
};
|
||||
|
||||
// Set initial values
|
||||
setAllLocalTimes();
|
||||
timedUpdate();
|
||||
// Set initial values
|
||||
setAllLocalTimes();
|
||||
timedUpdate();
|
||||
|
||||
// Start timed updates
|
||||
setInterval(timedUpdate, 1000);
|
||||
// Start timed updates
|
||||
setInterval(timedUpdate, 1000);
|
||||
});
|
||||
</script>
|
||||
{% endblock content %}
|
||||
|
||||
@@ -88,6 +88,7 @@ MIDDLEWARE = [
|
||||
"django.middleware.security.SecurityMiddleware",
|
||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||
"allianceauth.authentication.middleware.UserSettingsMiddleware",
|
||||
"allianceauth.middleware.DeviceDetectionMiddleware",
|
||||
"django.middleware.locale.LocaleMiddleware",
|
||||
"django.middleware.common.CommonMiddleware",
|
||||
"django.middleware.csrf.CsrfViewMiddleware",
|
||||
|
||||
@@ -57,10 +57,10 @@ DATABASES['default'] = {
|
||||
# CCP's developer portal
|
||||
# Logging in to auth requires the publicData scope (can be overridden through the
|
||||
# LOGIN_TOKEN_SCOPES setting). Other apps may require more (see their docs).
|
||||
ESI_SSO_CALLBACK_URL = f"{SITE_URL}/sso/callback" # Do NOT change this line!
|
||||
ESI_SSO_CLIENT_ID = ''
|
||||
ESI_SSO_CLIENT_SECRET = ''
|
||||
ESI_SSO_CALLBACK_URL = f"{SITE_URL}/sso/callback"
|
||||
ESI_USER_CONTACT_EMAIL = '' # A server maintainer that CCP can contact in case of issues.
|
||||
ESI_USER_CONTACT_EMAIL = '' # A server maintainer that CCP can contact in case of issues.
|
||||
|
||||
# By default, emails are validated before new users can log in.
|
||||
# It's recommended to use a free service like SparkPost or Elastic Email to send email.
|
||||
|
||||
@@ -1,22 +1,37 @@
|
||||
[supervisord]
|
||||
environment =
|
||||
AA_USER = allianceserver, ; The user under which the processes will run
|
||||
AA_PROJECT_NAME = {{ project_name }}, ; The name of the project
|
||||
AA_PROJECT_DIRECTORY = {{ project_directory }}, ; The directory of the project
|
||||
AA_VENV_DIRECTORY = {{ venv_directory }}, ; The directory of the virtual environment
|
||||
AA_COMMAND_CELERY = {{ celery }}, ; The command to run Celery
|
||||
AA_COMMAND_GUNICORN = {{ gunicorn }}, ; The command to run Gunicorn
|
||||
AA_COMMAND_MEMMON = {{ memmon }} ; The command to run Memmon
|
||||
|
||||
[program:beat]
|
||||
command = {{ celery }} -A {{ project_name }} beat
|
||||
directory = {{ project_directory }}
|
||||
user = allianceserver
|
||||
stdout_logfile = {{ project_directory }}/log/%(program_name)s.log
|
||||
stderr_logfile = {{ project_directory }}/log/%(program_name)s.log
|
||||
command = %(ENV_AA_COMMAND_CELERY)s
|
||||
-A %(ENV_AA_PROJECT_NAME)s beat
|
||||
directory = %(ENV_AA_PROJECT_DIRECTORY)s
|
||||
user = %(ENV_AA_USER)s
|
||||
stdout_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/%(program_name)s.log
|
||||
stderr_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/%(program_name)s.log
|
||||
autostart = true
|
||||
autorestart = true
|
||||
startsecs = 10
|
||||
priority = 998
|
||||
|
||||
[program:worker]
|
||||
command = {{ celery }} -A {{ project_name }} worker --pool=threads --concurrency=5 -n %(program_name)s_%(process_num)02d
|
||||
directory = {{ project_directory }}
|
||||
user = allianceserver
|
||||
command = %(ENV_AA_COMMAND_CELERY)s
|
||||
-A %(ENV_AA_PROJECT_NAME)s worker
|
||||
--pool=threads
|
||||
--concurrency=5
|
||||
-n %(program_name)s_%(process_num)02d
|
||||
directory = %(ENV_AA_PROJECT_DIRECTORY)s
|
||||
user = %(ENV_AA_USER)s
|
||||
numprocs = 1
|
||||
process_name = %(program_name)s_%(process_num)02d
|
||||
stdout_logfile = {{ project_directory }}/log/%(program_name)s.log
|
||||
stderr_logfile = {{ project_directory }}/log/%(program_name)s.log
|
||||
stdout_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/%(program_name)s.log
|
||||
stderr_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/%(program_name)s.log
|
||||
autostart = true
|
||||
autorestart = true
|
||||
startsecs = 10
|
||||
@@ -26,22 +41,26 @@ priority = 998
|
||||
|
||||
{% if gunicorn %}
|
||||
[program:gunicorn]
|
||||
user = allianceserver
|
||||
directory = {{ project_directory }}
|
||||
command = {{ gunicorn }} {{ project_name }}.wsgi --workers=3 --timeout 120
|
||||
stdout_logfile = {{ project_directory }}/log/%(program_name)s.log
|
||||
stderr_logfile = {{ project_directory }}/log/%(program_name)s.log
|
||||
user = %(ENV_AA_USER)s
|
||||
directory = %(ENV_AA_PROJECT_DIRECTORY)s
|
||||
command = %(ENV_AA_COMMAND_GUNICORN)s %(ENV_AA_PROJECT_NAME)s.wsgi
|
||||
--workers=3
|
||||
--timeout 120
|
||||
stdout_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/%(program_name)s.log
|
||||
stderr_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/%(program_name)s.log
|
||||
autostart = true
|
||||
autorestart = true
|
||||
stopsignal = INT
|
||||
{% endif %}
|
||||
|
||||
[eventlistener:memmon]
|
||||
command = {{ memmon }} -p worker_00=256MB -p gunicorn=256MB
|
||||
directory = {{ project_directory }}
|
||||
command = %(ENV_AA_COMMAND_MEMMON)s
|
||||
-p worker_00=256MB
|
||||
-p gunicorn=256MB
|
||||
directory = %(ENV_AA_PROJECT_DIRECTORY)s
|
||||
events = TICK_60
|
||||
stdout_logfile = {{ project_directory }}/log/memmon.log
|
||||
stderr_logfile = {{ project_directory }}/log/memmon.log
|
||||
stdout_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/memmon.log
|
||||
stderr_logfile = %(ENV_AA_PROJECT_DIRECTORY)s/log/memmon.log
|
||||
|
||||
[group:{{ project_name }}]
|
||||
programs = beat,worker{% if gunicorn %},gunicorn{% endif %}
|
||||
|
||||
@@ -100,7 +100,10 @@ class BaseSetPasswordServiceAccountView(ServicesCRUDMixin, BaseServiceView, Upda
|
||||
def post(self, request, *args, **kwargs):
|
||||
result = super().post(request, *args, **kwargs)
|
||||
if self.get_form().is_valid():
|
||||
messages.success(request, _(f"Successfully set your {self.service_name} password"))
|
||||
messages.success(
|
||||
request,
|
||||
_("Successfully set your {service_name} password").format(service_name=self.service_name)
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
|
||||
@@ -16,8 +16,7 @@ from redis import Redis
|
||||
|
||||
from allianceauth.utils.cache import get_redis_client
|
||||
|
||||
from allianceauth import __title__ as AUTH_TITLE
|
||||
from allianceauth import __url__, __version__
|
||||
from allianceauth import __title_useragent__, __url__, __version__
|
||||
|
||||
from .. import __title__
|
||||
from ..utils import LoggerAddTag
|
||||
@@ -647,7 +646,7 @@ class DiscordClient:
|
||||
if self.is_rate_limited:
|
||||
self._ensure_rate_limed_not_exhausted(uid)
|
||||
headers = {
|
||||
'User-Agent': f'{AUTH_TITLE} ({__url__}, {__version__})',
|
||||
'User-Agent': f'{__title_useragent__}/{__version__} (+{__url__})',
|
||||
'accept': 'application/json',
|
||||
'X-RateLimit-Precision': 'millisecond',
|
||||
'authorization': str(authorization)
|
||||
@@ -675,10 +674,12 @@ class DiscordClient:
|
||||
)
|
||||
logger.debug('%s: response:\n%s', uid, r.text)
|
||||
if not r.ok:
|
||||
member_id = url.split("/")[-1]
|
||||
logger.error(
|
||||
'%s: Discord API returned error code %d and this response: %s',
|
||||
'%s: Discord API returned error code %d for member ID %s with this response: %s.',
|
||||
uid,
|
||||
r.status_code,
|
||||
member_id,
|
||||
r.text
|
||||
)
|
||||
|
||||
|
||||
@@ -7,8 +7,7 @@ import requests_mock
|
||||
from redis import Redis
|
||||
from requests.exceptions import HTTPError
|
||||
|
||||
from allianceauth import __title__ as AUTH_TITLE
|
||||
from allianceauth import __url__, __version__
|
||||
from allianceauth import __title_useragent__, __url__, __version__
|
||||
from allianceauth.utils.testing import NoSocketsTestCase
|
||||
|
||||
from ...utils import set_logger_to_file
|
||||
@@ -46,7 +45,7 @@ API_BASE_URL = 'https://discord.com/api/'
|
||||
TEST_RETRY_AFTER = 3000
|
||||
|
||||
DEFAULT_REQUEST_HEADERS = {
|
||||
'User-Agent': f'{AUTH_TITLE} ({__url__}, {__version__})',
|
||||
'User-Agent': f'{__title_useragent__}/{__version__} (+{__url__})',
|
||||
'accept': 'application/json',
|
||||
'authorization': 'Bot ' + TEST_BOT_TOKEN
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ def jabber_broadcast_view(request):
|
||||
if main_char is not None:
|
||||
message_to_send = form.cleaned_data['message'] + "\n##### SENT BY: " + "[" + main_char.corporation_ticker + "]" + \
|
||||
main_char.character_name + " TO: " + \
|
||||
form.cleaned_data['group'] + " WHEN: " + datetime.datetime.utcnow().strftime(
|
||||
form.cleaned_data['group'] + " WHEN: " + datetime.datetime.now(datetime.timezone.utc).strftime(
|
||||
"%Y-%m-%d %H:%M:%S") + " #####\n##### Replies are NOT monitored #####\n"
|
||||
group_to_send = form.cleaned_data['group']
|
||||
|
||||
else:
|
||||
message_to_send = form.cleaned_data['message'] + "\n##### SENT BY: " + "No character but can send pings?" + " TO: " + \
|
||||
form.cleaned_data['group'] + " WHEN: " + datetime.datetime.utcnow().strftime(
|
||||
form.cleaned_data['group'] + " WHEN: " + datetime.datetime.now(datetime.timezone.utc).strftime(
|
||||
"%Y-%m-%d %H:%M:%S") + " #####\n##### Replies are NOT monitored #####\n"
|
||||
group_to_send = form.cleaned_data['group']
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import random
|
||||
import string
|
||||
import calendar
|
||||
import re
|
||||
from datetime import datetime
|
||||
import datetime as dt
|
||||
|
||||
from passlib.apps import phpbb3_context
|
||||
from django.db import connections
|
||||
@@ -128,7 +128,7 @@ class Phpbb3Manager:
|
||||
|
||||
@staticmethod
|
||||
def __get_current_utc_date():
|
||||
d = datetime.utcnow()
|
||||
d = dt.datetime.now(dt.timezone.utc)
|
||||
unixtime = calendar.timegm(d.utctimetuple())
|
||||
return unixtime
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import random
|
||||
import string
|
||||
import calendar
|
||||
from datetime import datetime
|
||||
import datetime as dt
|
||||
import hashlib
|
||||
import logging
|
||||
import re
|
||||
@@ -105,7 +105,7 @@ class SmfManager:
|
||||
|
||||
@staticmethod
|
||||
def get_current_utc_date():
|
||||
d = datetime.utcnow()
|
||||
d = dt.datetime.now(dt.timezone.utc)
|
||||
unixtime = calendar.timegm(d.utctimetuple())
|
||||
return unixtime
|
||||
|
||||
|
||||
@@ -111,11 +111,11 @@ class Teamspeak3Manager:
|
||||
outlist = {}
|
||||
|
||||
if type(groups) == list:
|
||||
logger.debug("Recieved multiple groups. Iterating.")
|
||||
logger.debug("Received multiple groups. Iterating.")
|
||||
for group in groups:
|
||||
outlist[group['keys']['name']] = group['keys']['sgid']
|
||||
elif type(groups) == dict:
|
||||
logger.debug("Recieved single group.")
|
||||
logger.debug("Received single group.")
|
||||
outlist[groups['keys']['name']] = groups['keys']['sgid']
|
||||
logger.debug("Returning name/id pairing: %s" % outlist)
|
||||
return outlist
|
||||
|
||||
@@ -34,6 +34,9 @@ class SrpFleetUserRequestForm(forms.Form):
|
||||
_("Invalid Link. Please use zkillboard.com or kb.evetools.org")
|
||||
)
|
||||
|
||||
if re.match(r"^http[s]?:\/\/zkillboard\.com\/", data) and not data.endswith("/"):
|
||||
data += "/"
|
||||
|
||||
# Check if it's an actual kill mail
|
||||
if not any(
|
||||
re.match(regex, data)
|
||||
|
||||
@@ -4,7 +4,7 @@ import requests
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from allianceauth import NAME
|
||||
from allianceauth import __title_useragent__, __url__, __version__
|
||||
from allianceauth.srp.providers import esi
|
||||
|
||||
from .models import SrpUserRequest
|
||||
@@ -24,7 +24,7 @@ class SRPManager:
|
||||
def get_kill_data(kill_id):
|
||||
url = ("https://zkillboard.com/api/killID/%s/" % kill_id)
|
||||
headers = {
|
||||
'User-Agent': NAME,
|
||||
'User-Agent': f'{__title_useragent__}/{__version__} (+{__url__})',
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
r = requests.get(url, headers=headers)
|
||||
|
||||
@@ -20,17 +20,15 @@
|
||||
|
||||
{% block header_nav_collapse_right %}
|
||||
{% if perms.auth.srp_management %}
|
||||
<li class="nav-item">
|
||||
{% if fleet_status == "Completed" %}
|
||||
<a class="btn btn-warning" href="{% url 'srp:mark_uncompleted' fleet_id %}">
|
||||
{% translate "Mark Incomplete" %}
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="btn btn-success" href="{% url 'srp:mark_completed' fleet_id %}">
|
||||
{% translate "Mark Completed" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% if fleet_status == "Completed" %}
|
||||
{% translate "Mark Incomplete" as nav_item_title %}
|
||||
{% url "srp:mark_uncompleted" fleet_id as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-button.html" with btn_modifier="warning" url=nav_item_link title=nav_item_title %}
|
||||
{% else %}
|
||||
{% translate "Mark Completed" as nav_item_title %}
|
||||
{% url "srp:mark_completed" fleet_id as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-button.html" with btn_modifier="warning" url=nav_item_link title=nav_item_title %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endblock header_nav_collapse_right %}
|
||||
|
||||
|
||||
@@ -22,11 +22,9 @@
|
||||
{% endblock header_nav_collapse_left %}
|
||||
{% block header_nav_collapse_right %}
|
||||
{% if perms.srp.add_srpfleetmain or perms.auth.srp_management %}
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-success" href="{% url 'srp:add' %}">
|
||||
{% translate "Add SRP Fleet" %}
|
||||
</a>
|
||||
</li>
|
||||
{% translate "Add SRP Fleet" as nav_item_title %}
|
||||
{% url "srp:add" as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-button.html" with btn_modifier="success" url=nav_item_link title=nav_item_title fa_icon="fa-solid fa-plus" icon_on_mobile=True %}
|
||||
{% endif %}
|
||||
{% endblock header_nav_collapse_right %}
|
||||
{% block content %}
|
||||
|
||||
27
allianceauth/srp/tests/test_form.py
Normal file
27
allianceauth/srp/tests/test_form.py
Normal file
@@ -0,0 +1,27 @@
|
||||
from django.test import TestCase
|
||||
|
||||
from allianceauth.srp.form import SrpFleetUserRequestForm
|
||||
|
||||
|
||||
class TestForms(TestCase):
|
||||
|
||||
def test_allow_missing_trailing_slash_zkillboard(self):
|
||||
form = SrpFleetUserRequestForm(
|
||||
data = {
|
||||
"killboard_link": "https://zkillboard.com/kill/130429493",
|
||||
"additional_info": "Details",
|
||||
}
|
||||
)
|
||||
form.cleaned_data = {"killboard_link": "https://zkillboard.com/kill/130429493"}
|
||||
|
||||
self.assertEqual("https://zkillboard.com/kill/130429493/", form.clean_killboard_link())
|
||||
|
||||
def test_not_add_trailling_slash_kb_evetools(self):
|
||||
form = SrpFleetUserRequestForm(
|
||||
data = {
|
||||
"killboard_link": "https://kb.evetools.org/kill/130429493",
|
||||
}
|
||||
)
|
||||
form.cleaned_data = {"killboard_link": "https://kb.evetools.org/kill/130429493"}
|
||||
|
||||
self.assertEqual("https://kb.evetools.org/kill/130429493", form.clean_killboard_link())
|
||||
@@ -0,0 +1,207 @@
|
||||
/* global fetchGet, numberFormatter, taskQueueSettings */
|
||||
|
||||
$(document).ready(() => {
|
||||
'use strict';
|
||||
|
||||
const elements = {
|
||||
total: document.getElementById('total-task-count'),
|
||||
uptime: document.getElementById('celery-uptime'),
|
||||
running: document.getElementById('running-task-count'),
|
||||
queued: document.getElementById('queued-tasks-count'),
|
||||
succeeded: document.getElementById('succeeded-tasks-count'),
|
||||
retried: document.getElementById('retried-tasks-count'),
|
||||
failed: document.getElementById('failed-tasks-count')
|
||||
};
|
||||
|
||||
/**
|
||||
* Fetches the task queue status and updates the UI elements accordingly.
|
||||
* It retrieves the total number of tasks, running tasks, queued tasks,
|
||||
* succeeded tasks, retried tasks, and failed tasks, and updates the
|
||||
* corresponding HTML elements with the fetched data.
|
||||
* It also updates the progress bars for succeeded, retried, and failed tasks.
|
||||
* The function is called immediately and then every 30 seconds to keep the
|
||||
* task queue status up to date.
|
||||
*/
|
||||
const updateTaskCount = () => {
|
||||
fetchGet({url: taskQueueSettings.url})
|
||||
.then((data) => {
|
||||
const elemProgressBar = document.getElementById('celery-tasks-progress-bar');
|
||||
const progressElements = {
|
||||
succeeded: {
|
||||
bar: document.getElementById('celery-progress-bar-succeeded'),
|
||||
text: document.getElementById('celery-progress-bar-succeeded-progress')
|
||||
},
|
||||
retried: {
|
||||
bar: document.getElementById('celery-progress-bar-retried'),
|
||||
text: document.getElementById('celery-progress-bar-retried-progress')
|
||||
},
|
||||
failed: {
|
||||
bar: document.getElementById('celery-progress-bar-failed'),
|
||||
text: document.getElementById('celery-progress-bar-failed-progress')
|
||||
}
|
||||
};
|
||||
|
||||
// Assign progress data from the fetched data to variables
|
||||
const {
|
||||
earliest_task: earliestTask,
|
||||
tasks_total: tasksTotal,
|
||||
tasks_running: tasksRunning,
|
||||
tasks_queued: tasksQueued,
|
||||
tasks_succeeded: tasksSucceeded,
|
||||
tasks_retried: tasksRetried,
|
||||
tasks_failed: tasksFailed
|
||||
} = data;
|
||||
|
||||
/**
|
||||
* Updates the text content of the specified HTML element with the given value.
|
||||
* If the value is null, it sets the text to 'N/A'.
|
||||
* Otherwise, it formats the number using the locale-specific format.
|
||||
*
|
||||
* @param {HTMLElement} element The HTML element to update.
|
||||
* @param {number|null} value The value to set in the element.
|
||||
*/
|
||||
const updateTaskCount = (element, value) => {
|
||||
element.textContent = value === null ? taskQueueSettings.l10n.na : numberFormatter({value: value, locales: taskQueueSettings.l10n.language});
|
||||
};
|
||||
|
||||
/**
|
||||
* Calculates the time since the given timestamp and returns a formatted string.
|
||||
* If the timestamp is null or undefined, it returns 'N/A'.
|
||||
* The returned string is in the format of "X hours, Y minutes" or "X minutes, Y seconds".
|
||||
*
|
||||
* @param {string|null} timestamp The timestamp to calculate the time since.
|
||||
* @returns {string} A formatted string representing the time since the timestamp.
|
||||
*/
|
||||
const timeSince = (timestamp) => {
|
||||
if (!timestamp) {
|
||||
return taskQueueSettings.l10n.na;
|
||||
}
|
||||
|
||||
const diffSecs = Math.floor((Date.now() - new Date(timestamp)) / 1000);
|
||||
|
||||
if (diffSecs >= 3600) {
|
||||
const hours = Math.floor(diffSecs / 3600);
|
||||
const minutes = Math.floor((diffSecs % 3600) / 60);
|
||||
|
||||
if (minutes > 0) {
|
||||
const hourText = hours === 1 ? taskQueueSettings.l10n.hour_singular : taskQueueSettings.l10n.hour_plural;
|
||||
const minuteText = minutes === 1 ? taskQueueSettings.l10n.minute_singular : taskQueueSettings.l10n.minute_plural;
|
||||
|
||||
return `${hours} ${hourText}, ${minutes} ${minuteText}`;
|
||||
}
|
||||
|
||||
const hourText = hours === 1 ? taskQueueSettings.l10n.hour_singular : taskQueueSettings.l10n.hour_plural;
|
||||
|
||||
return `${hours} ${hourText}`;
|
||||
}
|
||||
|
||||
const units = [
|
||||
[
|
||||
60,
|
||||
taskQueueSettings.l10n.minute_singular,
|
||||
taskQueueSettings.l10n.minute_plural
|
||||
],
|
||||
[
|
||||
1,
|
||||
taskQueueSettings.l10n.second_singular,
|
||||
taskQueueSettings.l10n.second_plural
|
||||
]
|
||||
];
|
||||
|
||||
for (const [seconds, singular, plural] of units) {
|
||||
const value = Math.floor(diffSecs / seconds);
|
||||
|
||||
if (value > 0) {
|
||||
return `${value} ${value > 1 ? plural : singular}`;
|
||||
}
|
||||
}
|
||||
|
||||
return `0 ${taskQueueSettings.l10n.second_plural}`;
|
||||
};
|
||||
|
||||
/**
|
||||
* Updates the progress bar element and its text content based on the given value and total.
|
||||
* It calculates the percentage of completion and updates the aria attributes and styles accordingly.
|
||||
*
|
||||
* @param {HTMLElement} element The progress bar element to update.
|
||||
* @param {HTMLElement} textElement The text element to update with the percentage.
|
||||
* @param {number} value The current value to set in the progress bar.
|
||||
* @param {number} total The total value for calculating the percentage.
|
||||
*/
|
||||
const updateProgressBar = (element, textElement, value, total) => {
|
||||
const percentage = total ? (value / total) * 100 : 0;
|
||||
|
||||
element.setAttribute('aria-valuenow', percentage.toString());
|
||||
textElement.textContent = `${numberFormatter({value: percentage.toFixed(0), locales: taskQueueSettings.l10n.language})}%`;
|
||||
element.style.width = `${percentage}%`;
|
||||
};
|
||||
|
||||
// Update task counts
|
||||
[
|
||||
[elements.total, tasksTotal],
|
||||
[elements.running, tasksRunning],
|
||||
[elements.queued, tasksQueued],
|
||||
[elements.succeeded, tasksSucceeded],
|
||||
[elements.retried, tasksRetried],
|
||||
[elements.failed, tasksFailed]
|
||||
].forEach(([element, value]) => {
|
||||
updateTaskCount(element, value);
|
||||
});
|
||||
|
||||
// Update uptime
|
||||
elements.uptime.textContent = timeSince(earliestTask);
|
||||
|
||||
// Update progress bar title
|
||||
const [
|
||||
titleTextSucceeded,
|
||||
titleTextRetried,
|
||||
titleTextFailed
|
||||
] = [
|
||||
[tasksSucceeded, taskQueueSettings.l10n.succeeded],
|
||||
[tasksRetried, taskQueueSettings.l10n.retried],
|
||||
[tasksFailed, taskQueueSettings.l10n.failed]
|
||||
].map(([count, label]) => {
|
||||
return `${numberFormatter({value: count, locales: taskQueueSettings.l10n.language})} ${label}`;
|
||||
});
|
||||
|
||||
// Set the title attribute for the progress bar
|
||||
elemProgressBar.setAttribute(
|
||||
'title',
|
||||
`${titleTextSucceeded}, ${titleTextRetried}, ${titleTextFailed}`
|
||||
);
|
||||
|
||||
// Update progress bars
|
||||
[
|
||||
tasksSucceeded,
|
||||
tasksRetried,
|
||||
tasksFailed
|
||||
].forEach((count, index) => {
|
||||
const type = ['succeeded', 'retried', 'failed'][index];
|
||||
|
||||
updateProgressBar(
|
||||
progressElements[type].bar,
|
||||
progressElements[type].text,
|
||||
count,
|
||||
tasksTotal
|
||||
);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error fetching task queue:', error);
|
||||
|
||||
// If there is an error fetching the task queue, set all elements to 'ERROR'
|
||||
[
|
||||
elements.running,
|
||||
elements.queued,
|
||||
elements.succeeded,
|
||||
elements.retried,
|
||||
elements.failed
|
||||
].forEach((elem) => {
|
||||
elem.textContent = taskQueueSettings.l10n.error;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
updateTaskCount();
|
||||
setInterval(updateTaskCount, 30000);
|
||||
});
|
||||
57
allianceauth/static/allianceauth/js/sidebar.js
Normal file
57
allianceauth/static/allianceauth/js/sidebar.js
Normal file
@@ -0,0 +1,57 @@
|
||||
$(document).ready(() => {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Collect all badges in the sidebar menu that are not part of a collapsible submenu, and calculate the total notification count.
|
||||
* Show a total notification badge in the navbar if there are any notifications.
|
||||
*/
|
||||
const totalNotificationsBadge = () => {
|
||||
const badges = [];
|
||||
let notificationCount = 0;
|
||||
|
||||
document.querySelectorAll('#sidebar-menu .badge').forEach(b => {
|
||||
const li = b.closest('li');
|
||||
|
||||
if (!li || !li.querySelector('ul.collapse')) {
|
||||
badges.push(b);
|
||||
notificationCount += parseInt(b.textContent);
|
||||
}
|
||||
});
|
||||
|
||||
if (badges.length > 0 && notificationCount > 0) {
|
||||
const notificationBadge = document.createElement('span');
|
||||
notificationBadge.id = "globalNotificationCount";
|
||||
notificationBadge.classList.add(
|
||||
'badge',
|
||||
'text-bg-danger',
|
||||
'align-self-center',
|
||||
'sidemenu-notification-badge',
|
||||
'sidemenu-total-notifications-badge'
|
||||
);
|
||||
notificationBadge.textContent = String(notificationCount);
|
||||
|
||||
document.querySelector('a.navbar-brand i.fa-solid').prepend(notificationBadge);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Find the active child menu item in the sidebar menu, if any, and ensure its parent submenu is expanded.
|
||||
*/
|
||||
const expandChildMenu = () => {
|
||||
const activeChildMenuItem = document.querySelector('ul#sidebar-menu ul.collapse a.active');
|
||||
|
||||
if (activeChildMenuItem) {
|
||||
const activeChildMenuUl = activeChildMenuItem.closest('ul');
|
||||
activeChildMenuUl.classList.add('show');
|
||||
|
||||
document.querySelectorAll(`[data-bs-target^="#${activeChildMenuUl.id}"]`)
|
||||
.forEach(element => element.setAttribute('aria-expanded', 'true'));
|
||||
}
|
||||
};
|
||||
|
||||
// Execute functions on document ready
|
||||
[
|
||||
totalNotificationsBadge,
|
||||
expandChildMenu
|
||||
].forEach(fn => fn());
|
||||
});
|
||||
5
allianceauth/static/allianceauth/libs/DataTables/2.3.6/css/dataTables.bootstrap5.min.css
vendored
Normal file
5
allianceauth/static/allianceauth/libs/DataTables/2.3.6/css/dataTables.bootstrap5.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
allianceauth/static/allianceauth/libs/DataTables/2.3.6/js/dataTables.bootstrap5.min.js
vendored
Normal file
4
allianceauth/static/allianceauth/libs/DataTables/2.3.6/js/dataTables.bootstrap5.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/*! DataTables Bootstrap 5 integration
|
||||
* © SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(n=>{var o,a;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(t){return n(t,window,document)}):"object"==typeof exports?(o=require("jquery"),a=function(t,e){e.fn.dataTable||require("datatables.net")(t,e)},"undefined"==typeof window?module.exports=function(t,e){return t=t||window,e=e||o(t),a(t,e),n(e,0,t.document)}:(a(window,o),module.exports=n(o,window,window.document))):n(jQuery,window,document)})(function(d,t,e){var n=d.fn.dataTable;return d.extend(!0,n.defaults,{renderer:"bootstrap"}),d.extend(!0,n.ext.classes,{container:"dt-container dt-bootstrap5",search:{input:"form-control form-control-sm"},length:{select:"form-select form-select-sm"},processing:{container:"dt-processing card"},layout:{row:"row mt-2 justify-content-between",cell:"d-md-flex justify-content-between align-items-center",tableCell:"col-12",start:"dt-layout-start col-md-auto me-auto",end:"dt-layout-end col-md-auto ms-auto",full:"dt-layout-full col-md"}}),n.ext.renderer.pagingButton.bootstrap=function(t,e,n,o,a){var r=["dt-paging-button","page-item"],o=(o&&r.push("active"),a&&r.push("disabled"),d("<li>").addClass(r.join(" ")));return{display:o,clicker:d("<button>",{class:"page-link",role:"link",type:"button"}).html(n).appendTo(o)}},n.ext.renderer.pagingContainer.bootstrap=function(t,e){return d("<ul/>").addClass("pagination").append(e)},n});
|
||||
4
allianceauth/static/allianceauth/libs/DataTables/2.3.6/js/dataTables.min.js
vendored
Normal file
4
allianceauth/static/allianceauth/libs/DataTables/2.3.6/js/dataTables.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
|
||||
/*! Bootstrap 5 styling wrapper for ColumnControl
|
||||
* © SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(e=>{var t,r;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bs5","datatables.net-columncontrol"],function(o){return e(o,window,document)}):"object"==typeof exports?(t=require("jquery"),r=function(o,n){n.fn.dataTable||require("datatables.net-bs5")(o,n),n.fn.dataTable.ColumnControl||require("datatables.net-columncontrol")(o,n)},"undefined"==typeof window?module.exports=function(o,n){return o=o||window,n=n||t(o),r(o,n),e(n,0,o.document)}:(r(window,t),module.exports=e(t,window,window.document))):e(jQuery,window,document)})(function(o,n,e){o=o.fn.dataTable;return o.ColumnControl.content.dropdown.classes.container=["dtcc-dropdown","dropdown-menu","show"],o.ColumnControl.CheckList.classes.input=["dtcc-list-search","form-control","form-control-sm"],o.ColumnControl.SearchInput.classes.input=["form-control","form-control-sm"],o.ColumnControl.SearchInput.classes.select=["form-select","form-select-sm"],o});
|
||||
File diff suppressed because one or more lines are too long
@@ -1,84 +0,0 @@
|
||||
{
|
||||
"emptyTable": "テーブルにデータがありません",
|
||||
"info": " _TOTAL_ 件中 _START_ から _END_ まで表示",
|
||||
"infoEmpty": " 0 件中 0 から 0 まで表示",
|
||||
"infoFiltered": "(全 _MAX_ 件より抽出)",
|
||||
"infoThousands": ",",
|
||||
"lengthMenu": "_MENU_ 件表示",
|
||||
"loadingRecords": "読み込み中...",
|
||||
"processing": "処理中...",
|
||||
"search": "検索:",
|
||||
"zeroRecords": "一致するレコードがありません",
|
||||
"paginate": {
|
||||
"first": "先頭",
|
||||
"last": "最終",
|
||||
"next": "次",
|
||||
"previous": "前"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": 列を昇順に並べ替えるにはアクティブにする",
|
||||
"sortDescending": ": 列を降順に並べ替えるにはアクティブにする"
|
||||
},
|
||||
"thousands": ",",
|
||||
"buttons": {
|
||||
"colvis": "項目の表示\/非表示",
|
||||
"csv": "CSVをダウンロード",
|
||||
"collection": "コレクション"
|
||||
},
|
||||
"searchBuilder": {
|
||||
"add": "条件を追加",
|
||||
"button": {
|
||||
"0": "カスタムサーチ",
|
||||
"_": "カスタムサーチ (%d)"
|
||||
},
|
||||
"clearAll": "すべての条件をクリア",
|
||||
"condition": "条件",
|
||||
"conditions": {
|
||||
"date": {
|
||||
"after": "次の日付以降",
|
||||
"before": "次の日付以前",
|
||||
"between": "次の期間に含まれる",
|
||||
"empty": "空白",
|
||||
"equals": "次の日付と等しい",
|
||||
"not": "次の日付と等しくない",
|
||||
"notBetween": "次の期間に含まれない",
|
||||
"notEmpty": "空白ではない"
|
||||
},
|
||||
"number": {
|
||||
"between": "次の値の間に含まれる",
|
||||
"empty": "空白",
|
||||
"equals": "次の値と等しい",
|
||||
"gt": "次の値よりも大きい",
|
||||
"gte": "次の値以上",
|
||||
"lt": "次の値未満",
|
||||
"lte": "次の値以下",
|
||||
"not": "次の値と等しくない",
|
||||
"notBetween": "次の値の間に含まれない",
|
||||
"notEmpty": "空白ではない"
|
||||
},
|
||||
"string": {
|
||||
"contains": "次の文字を含む",
|
||||
"empty": "空白",
|
||||
"endsWith": "次の文字で終わる",
|
||||
"equals": "次の文字と等しい",
|
||||
"not": "次の文字と等しくない",
|
||||
"notEmpty": "空白ではない",
|
||||
"startsWith": "次の文字から始まる",
|
||||
"notContains": "次の文字を含まない",
|
||||
"notStartsWith": "次の文字で始まらない",
|
||||
"notEndsWith": "次の文字で終わらない"
|
||||
}
|
||||
},
|
||||
"data": "項目",
|
||||
"title": {
|
||||
"0": "カスタムサーチ",
|
||||
"_": "カスタムサーチ (%d)"
|
||||
},
|
||||
"value": "値"
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "キャンセル",
|
||||
"fillHorizontal": "横でセルを書き込む",
|
||||
"fillVertical": "縦でセルを書き込む"
|
||||
}
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
{
|
||||
"emptyTable": "데이터가 없습니다",
|
||||
"info": "_START_ - _END_ \/ _TOTAL_",
|
||||
"infoEmpty": "0 - 0 \/ 0",
|
||||
"infoFiltered": "(총 _MAX_ 개)",
|
||||
"infoThousands": ",",
|
||||
"lengthMenu": "페이지당 줄수 _MENU_",
|
||||
"loadingRecords": "읽는중...",
|
||||
"processing": "처리중...",
|
||||
"search": "검색:",
|
||||
"zeroRecords": "검색 결과가 없습니다",
|
||||
"paginate": {
|
||||
"first": "처음",
|
||||
"last": "마지막",
|
||||
"next": "다음",
|
||||
"previous": "이전"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": 오름차순 정렬",
|
||||
"sortDescending": ": 내림차순 정렬"
|
||||
},
|
||||
"buttons": {
|
||||
"copyKeys": "ctrl키 나 u2318 + C키로 테이블 데이터를 시스텝 복사판에서 복사하고 취소하려면 이 메시지를 클릭하거나 ESC키를 누르면됩니다. to copy the table data to your system clipboard. To cancel, click this message or press escape.",
|
||||
"copySuccess": {
|
||||
"_": "%d행을 복사판에서 복사됨",
|
||||
"1": "1행을 복사판에서 복사됨"
|
||||
},
|
||||
"copyTitle": "복사판에서 복사",
|
||||
"csv": "CSV",
|
||||
"pageLength": {
|
||||
"-1": "모든 행 보기",
|
||||
"_": "%d행 보기"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "인쇄",
|
||||
"collection": "집합 <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "컬럼 보기",
|
||||
"colvisRestore": "보기 복원",
|
||||
"copy": "복사",
|
||||
"excel": "엑셀"
|
||||
},
|
||||
"searchBuilder": {
|
||||
"add": "조건 추가",
|
||||
"button": {
|
||||
"0": "빌더 조회",
|
||||
"_": "빌더 조회(%d)"
|
||||
},
|
||||
"clearAll": "모두 지우기",
|
||||
"condition": "조건",
|
||||
"data": "데이터",
|
||||
"deleteTitle": "필터 규칙을 삭제",
|
||||
"logicAnd": "And",
|
||||
"logicOr": "Or",
|
||||
"title": {
|
||||
"0": "빌더 조회",
|
||||
"_": "빌더 조회(%d)"
|
||||
},
|
||||
"value": "값"
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "취소",
|
||||
"fill": "모든 셀에서 <i>%d<i>을(를) 삽입<\/i><\/i>",
|
||||
"fillHorizontal": "수평 셀에서 값을 삽입",
|
||||
"fillVertical": "수직 설에서 값을 삽입"
|
||||
},
|
||||
"datetime": {
|
||||
"previous": "이전",
|
||||
"next": "다음",
|
||||
"hours": "시",
|
||||
"minutes": "분",
|
||||
"seconds": "초",
|
||||
"unknown": "-",
|
||||
"amPm": [
|
||||
"오전",
|
||||
"오후"
|
||||
],
|
||||
"weekdays": [
|
||||
"일",
|
||||
"월",
|
||||
"화",
|
||||
"수",
|
||||
"목",
|
||||
"금",
|
||||
"토"
|
||||
],
|
||||
"months": [
|
||||
"1월",
|
||||
"2월",
|
||||
"3월",
|
||||
"4월",
|
||||
"5월",
|
||||
"6월",
|
||||
"7월",
|
||||
"8월",
|
||||
"9월",
|
||||
"10월",
|
||||
"11월",
|
||||
"12월"
|
||||
]
|
||||
},
|
||||
"editor": {
|
||||
"close": "닫기",
|
||||
"create": {
|
||||
"button": "추가",
|
||||
"title": "항목 추가",
|
||||
"submit": "완료"
|
||||
},
|
||||
"edit": {
|
||||
"button": "수정",
|
||||
"title": "항목 수정",
|
||||
"submit": "완료"
|
||||
},
|
||||
"remove": {
|
||||
"button": "삭제",
|
||||
"title": "항목 삭제",
|
||||
"submit": "완료"
|
||||
},
|
||||
"error": {
|
||||
"system": "에러가 발생하였습니다 (<a target=\"\\\" rel=\"nofollow\" href=\"\\\">자세한 정보<\/a>)."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
{
|
||||
"lengthMenu": "Показати _MENU_ записів",
|
||||
"infoFiltered": "(відфільтровано з _MAX_ записів)",
|
||||
"search": "Пошук:",
|
||||
"paginate": {
|
||||
"first": "Перша",
|
||||
"previous": "Попередня",
|
||||
"next": "Наступна",
|
||||
"last": "Остання"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": активуйте, щоб сортувати колонку за зростанням",
|
||||
"sortDescending": ": активуйте, щоб сортувати колонку за спаданням"
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Відміна",
|
||||
"fill": "Заповнити всі клітинки з <i>%d<\/i>",
|
||||
"fillHorizontal": "Заповнити клітинки горизонтально",
|
||||
"fillVertical": "Заповнити клітинки вертикально"
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Список <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "Видимість колонки",
|
||||
"colvisRestore": "Відновити видимість",
|
||||
"copy": "Копіювати",
|
||||
"copyKeys": "Нажміть ctrl або u2318 + C щоб копіювати інформацію з таблиці до вашого буферу обміну.<br \/><br \/>Щоб відмінити нажміть на це повідомлення або Esc",
|
||||
"copySuccess": {
|
||||
"1": "Скопійовано 1 рядок в буфер обміну",
|
||||
"_": "Скопійовано %d рядків в буфер обміну"
|
||||
},
|
||||
"copyTitle": "Копіювати в буфер обміну",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Показати усі рядки",
|
||||
"_": "Показати %d рядки"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Друкувати"
|
||||
},
|
||||
"emptyTable": "Ця таблиця не містить даних",
|
||||
"info": "Показано від _START_ по _END_ з _TOTAL_ записів",
|
||||
"infoEmpty": "Показано від 0 по 0 з 0 записів",
|
||||
"infoThousands": ",",
|
||||
"loadingRecords": "Завантаження",
|
||||
"processing": "Опрацювання...",
|
||||
"searchBuilder": {
|
||||
"add": "Додати умову",
|
||||
"button": {
|
||||
"0": "Розширений пошук",
|
||||
"_": "Розширений пошук (%d)"
|
||||
},
|
||||
"clearAll": "Очистити все",
|
||||
"condition": "Умова",
|
||||
"conditions": {
|
||||
"date": {
|
||||
"after": "Після",
|
||||
"before": "До",
|
||||
"between": "Між",
|
||||
"empty": "Пусто",
|
||||
"equals": "Дорівнює",
|
||||
"not": "Не",
|
||||
"notBetween": "Не між",
|
||||
"notEmpty": "Не пусто"
|
||||
},
|
||||
"number": {
|
||||
"between": "Між",
|
||||
"empty": "Пусто",
|
||||
"equals": "Дорівнює",
|
||||
"gt": "Більше ніж",
|
||||
"gte": "Більше або дорівнює",
|
||||
"lt": "Менше ніж",
|
||||
"lte": "Менше або дорівнює",
|
||||
"not": "Не",
|
||||
"notBetween": "Не між",
|
||||
"notEmpty": "Не пусто"
|
||||
},
|
||||
"string": {
|
||||
"contains": "Містить",
|
||||
"empty": "Пусто",
|
||||
"endsWith": "Закінчується з",
|
||||
"equals": "Дорівнює",
|
||||
"not": "Не",
|
||||
"notEmpty": "Не пусто",
|
||||
"startsWith": "Починається з",
|
||||
"notContains": "Не містить",
|
||||
"notStartsWith": "Не починається з",
|
||||
"notEndsWith": "Не закінчується на"
|
||||
},
|
||||
"array": {
|
||||
"equals": "Дорівнює",
|
||||
"empty": "Пустий",
|
||||
"contains": "Містить",
|
||||
"not": "Не",
|
||||
"notEmpty": "Не пустий",
|
||||
"without": "Без"
|
||||
}
|
||||
},
|
||||
"data": "Дата",
|
||||
"deleteTitle": "Видалити правило фільтрування",
|
||||
"leftTitle": "Відступні критерії",
|
||||
"logicAnd": "I",
|
||||
"logicOr": "Або",
|
||||
"rightTitle": "Відступні критерії",
|
||||
"title": {
|
||||
"0": "Розширений пошук",
|
||||
"_": "Розширений пошук (%d)"
|
||||
},
|
||||
"value": "Значення"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Очистити все",
|
||||
"collapse": {
|
||||
"0": "Пошукові Панелі",
|
||||
"_": "Пошукові Панелі (%d)"
|
||||
},
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Немає Пошукових Панелей",
|
||||
"loadMessage": "Завантаження Пошукових Панелей",
|
||||
"title": "Активній фільтри - %d",
|
||||
"showMessage": "Показати всі",
|
||||
"collapseMessage": "Приховати всі"
|
||||
},
|
||||
"select": {
|
||||
"cells": {
|
||||
"1": "1 клітинку вибрано",
|
||||
"_": "%d клітинок вибрано"
|
||||
},
|
||||
"columns": {
|
||||
"1": "1 колонку вибрано",
|
||||
"_": "%d колонок вибрано"
|
||||
}
|
||||
},
|
||||
"thousands": ",",
|
||||
"zeroRecords": "Не знайдено жодних записів",
|
||||
"editor": {
|
||||
"close": "Закрити",
|
||||
"create": {
|
||||
"button": "Cтворити нову",
|
||||
"title": "Cтворити новий запис",
|
||||
"submit": "Cтворити"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Редагувати",
|
||||
"title": "Редагувати запис",
|
||||
"submit": "Оновити"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Видалити",
|
||||
"title": "Видалити",
|
||||
"submit": "Видалити"
|
||||
}
|
||||
},
|
||||
"datetime": {
|
||||
"minutes": "Хвилина",
|
||||
"months": {
|
||||
"0": "Січень",
|
||||
"1": "Лютий",
|
||||
"10": "Листопад",
|
||||
"11": "Грудень",
|
||||
"2": "Березень",
|
||||
"3": "Квітень",
|
||||
"4": "Травень",
|
||||
"5": "Червень",
|
||||
"6": "Липень",
|
||||
"7": "Серпень",
|
||||
"8": "Вересень",
|
||||
"9": "Жовтень"
|
||||
},
|
||||
"next": "Наступні",
|
||||
"previous": "Попередні",
|
||||
"seconds": "Секунда",
|
||||
"unknown": "-",
|
||||
"weekdays": [
|
||||
"Неділя",
|
||||
"Понеділок",
|
||||
"Вівторок",
|
||||
"Середа",
|
||||
"Четверг",
|
||||
"П'ятниця",
|
||||
"Субота"
|
||||
]
|
||||
},
|
||||
"searchPlaceholder": "Пошук"
|
||||
}
|
||||
@@ -1,21 +1,140 @@
|
||||
{
|
||||
"aria": {
|
||||
"paginate": {
|
||||
"first": "První",
|
||||
"last": "Poslední",
|
||||
"next": "Další",
|
||||
"previous": "Předchozí"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Zrušit",
|
||||
"fill": "Vyplň všechny buňky textem <i>%d<i><\/i><\/i>",
|
||||
"fillHorizontal": "Vyplň všechny buňky horizontálně",
|
||||
"fillVertical": "Vyplň všechny buňky vertikálně",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Kolekce <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "Viditelnost sloupců",
|
||||
"colvisRestore": "Resetovat sloupce",
|
||||
"copy": "Kopírovat",
|
||||
"copyKeys": "Zmáčkněte Ctrl nebo u2318 + C pro zkopírování dat. Pro zrušení klikněte na tuto zprávu nebo zmáčkněte Esc.",
|
||||
"copySuccess": {
|
||||
"_": "Zkopírováno %d řádků do schránky",
|
||||
"1": "Zkopírován 1 řádek do schránky"
|
||||
},
|
||||
"copyTitle": "Kopírovat do schránky",
|
||||
"createState": "Vytvořit stav",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "Zobrazit %d řádků",
|
||||
"-1": "Zobrazit všechny řádky"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Tisknout",
|
||||
"removeAllStates": "Vymazat všechny stavy",
|
||||
"removeState": "Odstranit",
|
||||
"renameState": "Odstranit",
|
||||
"savedStates": "Uložit stavy",
|
||||
"stateRestore": "Stav %d",
|
||||
"updateState": "Aktualizovat"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": {
|
||||
"0": "Dopoledne",
|
||||
"1": "Odpoledne"
|
||||
},
|
||||
"hours": "Hodiny",
|
||||
"minutes": "Minuty",
|
||||
"months": {
|
||||
"0": "Leden",
|
||||
"1": "Únor",
|
||||
"10": "Listopad",
|
||||
"11": "Prosinec",
|
||||
"2": "Březen",
|
||||
"3": "Duben",
|
||||
"4": "Květen",
|
||||
"5": "Červen",
|
||||
"6": "Červenec",
|
||||
"7": "Srpen",
|
||||
"8": "Září",
|
||||
"9": "Říjen"
|
||||
},
|
||||
"next": "Další",
|
||||
"previous": "Předchozí",
|
||||
"seconds": "Sekundy",
|
||||
"unknown": "-",
|
||||
"weekdays": {
|
||||
"0": "Ne",
|
||||
"1": "Po",
|
||||
"2": "Út",
|
||||
"3": "St",
|
||||
"4": "Čt",
|
||||
"5": "Pá",
|
||||
"6": "So"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Zavřít",
|
||||
"create": {
|
||||
"button": "Nový",
|
||||
"submit": "Vytvořit",
|
||||
"title": "Nový záznam"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Změnit",
|
||||
"submit": "Aktualizovat",
|
||||
"title": "Změnit záznam"
|
||||
},
|
||||
"error": {
|
||||
"system": "Došlo k systémové chybě (<a target=\"\\\" rel=\"nofollow\" href=\"\\\">Více informací<\/a>)."
|
||||
},
|
||||
"multi": {
|
||||
"info": "Vybrané položky obsahují různé hodnoty pro tento vstup. Chcete-li upravit a nastavit všechny položky tohoto vstupu na stejnou hodnotu, klikněte nebo klepněte sem, jinak si zachovají své individuální hodnoty.",
|
||||
"noMulti": "Toto pole může být upravováno individuálně, ale ne jako součást skupiny.",
|
||||
"restore": "Vrátit změny",
|
||||
"title": "Mnohočetný výběr"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Vymazat",
|
||||
"confirm": {
|
||||
"_": "Opravdu chcete smazat tyto %d řádky?",
|
||||
"1": "Opravdu chcete smazat tento 1 řádek?"
|
||||
},
|
||||
"submit": "Vymazat",
|
||||
"title": "Smazání"
|
||||
}
|
||||
},
|
||||
"emptyTable": "Tabulka neobsahuje žádná data",
|
||||
"info": "Zobrazuji _START_ až _END_ z celkem _TOTAL_ záznamů",
|
||||
"infoEmpty": "Zobrazuji 0 až 0 z 0 záznamů",
|
||||
"infoFiltered": "(filtrováno z celkem _MAX_ záznamů)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": " ",
|
||||
"lengthMenu": "Zobrazit _MENU_ výsledků",
|
||||
"loadingRecords": "Načítám...",
|
||||
"zeroRecords": "Žádné záznamy nebyly nalezeny",
|
||||
"paginate": {
|
||||
"first": "První",
|
||||
"last": "Poslední",
|
||||
"next": "Další",
|
||||
"previous": "Předchozí"
|
||||
},
|
||||
"processing": "Zpracovávání...",
|
||||
"search": "Vyhledávání:",
|
||||
"searchBuilder": {
|
||||
"add": "Přidat podmínku",
|
||||
"button": {
|
||||
"_": "Rozšířený filtr (%d)",
|
||||
"0": "Rozšířený filtr"
|
||||
},
|
||||
"clearAll": "Smazat vše",
|
||||
"condition": "Podmínka",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "obsahuje",
|
||||
"empty": "prázdné",
|
||||
"equals": "rovno",
|
||||
"not": "není",
|
||||
"notEmpty": "není prázdné",
|
||||
"without": "neobsahuje"
|
||||
},
|
||||
"date": {
|
||||
"after": "po",
|
||||
"before": "před",
|
||||
@@ -44,176 +163,57 @@
|
||||
"endsWith": "končí na",
|
||||
"equals": "rovno",
|
||||
"not": "není",
|
||||
"notEmpty": "není prázdné",
|
||||
"startsWith": "začíná na",
|
||||
"notContains": "Podmínka",
|
||||
"notStartsWith": "Nezačíná",
|
||||
"notEndsWith": "Nekončí"
|
||||
},
|
||||
"array": {
|
||||
"equals": "rovno",
|
||||
"empty": "prázdné",
|
||||
"contains": "obsahuje",
|
||||
"not": "není",
|
||||
"notEmpty": "není prázdné",
|
||||
"without": "neobsahuje"
|
||||
"notEndsWith": "Nekončí",
|
||||
"notStartsWith": "Nezačíná",
|
||||
"startsWith": "začíná na"
|
||||
}
|
||||
},
|
||||
"data": "Sloupec",
|
||||
"logicAnd": "A",
|
||||
"logicOr": "NEBO",
|
||||
"title": {
|
||||
"0": "Rozšířený filtr",
|
||||
"_": "Rozšířený filtr (%d)"
|
||||
},
|
||||
"value": "Hodnota",
|
||||
"button": {
|
||||
"0": "Rozšířený filtr",
|
||||
"_": "Rozšířený filtr (%d)"
|
||||
},
|
||||
"deleteTitle": "Smazat filtrovací pravidlo",
|
||||
"leftTitle": "Zrušení odsazení podmínky",
|
||||
"rightTitle": "Odsazení podmínky"
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Zrušit",
|
||||
"fill": "Vyplň všechny buňky textem <i>%d<i><\/i><\/i>",
|
||||
"fillHorizontal": "Vyplň všechny buňky horizontálně",
|
||||
"fillVertical": "Vyplň všechny buňky vertikálně",
|
||||
"info": "Příklad automatického vyplňování"
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Kolekce <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"copy": "Kopírovat",
|
||||
"copyTitle": "Kopírovat do schránky",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Zobrazit všechny řádky",
|
||||
"_": "Zobrazit %d řádků",
|
||||
"1": "Zobraz 1 řádek"
|
||||
"logicAnd": "A",
|
||||
"logicOr": "NEBO",
|
||||
"rightTitle": "Odsazení podmínky",
|
||||
"title": {
|
||||
"_": "Rozšířený filtr (%d)",
|
||||
"0": "Rozšířený filtr"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Tisknout",
|
||||
"colvis": "Viditelnost sloupců",
|
||||
"colvisRestore": "Resetovat sloupce",
|
||||
"copyKeys": "Zmáčkněte ctrl or u2318 + C pro zkopírování dat. Pro zrušení klikněte na tuto zprávu nebo zmáčkněte esc..",
|
||||
"copySuccess": {
|
||||
"1": "Zkopírován 1 řádek do schránky",
|
||||
"_": "Zkopírováno %d řádků do schránky"
|
||||
},
|
||||
"createState": "Vytvořit Stav",
|
||||
"removeAllStates": "Vymazat všechny Stavy",
|
||||
"removeState": "Odstranit",
|
||||
"renameState": "Odstranit",
|
||||
"savedStates": "Uložit Stavy",
|
||||
"stateRestore": "Stav %d",
|
||||
"updateState": "Aktualizovat"
|
||||
"value": "Hodnota"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Smazat vše",
|
||||
"collapse": {
|
||||
"0": "Vyhledávací Panely",
|
||||
"_": "Vyhledávací Panely (%d)"
|
||||
"_": "Vyhledávací panely (%d)",
|
||||
"0": "Vyhledávací panely"
|
||||
},
|
||||
"collapseMessage": "Sbalit vše",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Žádné Vyhledávací Panely",
|
||||
"loadMessage": "Načítám Vyhledávací Panely",
|
||||
"title": "Aktivních filtrů - %d",
|
||||
"showMessage": "Zobrazit Vše",
|
||||
"collapseMessage": "Sbalit Vše"
|
||||
"emptyPanes": "Žádné vyhledávací panely",
|
||||
"loadMessage": "Načítám vyhledávací panely...",
|
||||
"showMessage": "Zobrazit vše",
|
||||
"title": "Aktivních filtrů - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"1": "Vybrán 1 záznam",
|
||||
"_": "Vybráno %d záznamů"
|
||||
"_": "Vybráno %d záznamů",
|
||||
"0": "",
|
||||
"1": "Vybrán 1 záznam"
|
||||
},
|
||||
"columns": {
|
||||
"1": "Vybrán 1 sloupec",
|
||||
"_": "Vybráno %d sloupců"
|
||||
"_": "Vybráno %d sloupců",
|
||||
"0": "",
|
||||
"1": "Vybrán 1 sloupec"
|
||||
},
|
||||
"rows": {
|
||||
"1": "Vybrán 1 řádek",
|
||||
"_": "Vybráno %d řádků"
|
||||
"_": "Vybráno %d řádků",
|
||||
"0": "",
|
||||
"1": "Vybrán 1 řádek"
|
||||
}
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": "Aktivujte pro seřazení vzestupně",
|
||||
"sortDescending": "Aktivujte pro seřazení sestupně"
|
||||
},
|
||||
"lengthMenu": "Zobrazit _MENU_ výsledků",
|
||||
"processing": "Zpracovávání...",
|
||||
"search": "Vyhledávání:",
|
||||
"datetime": {
|
||||
"previous": "Předchozí",
|
||||
"next": "Další",
|
||||
"hours": "Hodiny",
|
||||
"minutes": "Minuty",
|
||||
"seconds": "Vteřiny",
|
||||
"unknown": "-",
|
||||
"amPm": [
|
||||
"Dopoledne",
|
||||
"Odpoledne"
|
||||
],
|
||||
"months": [
|
||||
"Leden",
|
||||
"Únor",
|
||||
"Březen",
|
||||
"Duben",
|
||||
"Květen",
|
||||
"Červen",
|
||||
"Červenec",
|
||||
"Srpen",
|
||||
"Září",
|
||||
"Říjen",
|
||||
"Listopad",
|
||||
"Prosinec"
|
||||
],
|
||||
"weekdays": [
|
||||
"Ne",
|
||||
"Po",
|
||||
"Út",
|
||||
"St",
|
||||
"Čt",
|
||||
"Pá",
|
||||
"So"
|
||||
]
|
||||
},
|
||||
"editor": {
|
||||
"close": "Zavřít",
|
||||
"create": {
|
||||
"button": "Nový",
|
||||
"title": "Nový záznam",
|
||||
"submit": "Vytvořit"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Změnit",
|
||||
"title": "Změnit záznam",
|
||||
"submit": "Aktualizovat"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Vymazat",
|
||||
"title": "Smazání",
|
||||
"submit": "Vymazat",
|
||||
"confirm": {
|
||||
"_": "Opravdu chcete smazat tyto %d řádky?",
|
||||
"1": "Opravdu chcete smazat tento 1 řádek?"
|
||||
}
|
||||
},
|
||||
"multi": {
|
||||
"title": "Mnohočetný výběr",
|
||||
"restore": "Vrátit změny",
|
||||
"noMulti": "Toto pole může být editováno individuálně, ale ne jako soušást skupiny.",
|
||||
"info": "Vybrané položky obsahují různé hodnoty pro tento vstup. Chcete-li upravit a nastavit všechny položky tohoto vstupu na stejnou hodnotu, klikněte nebo klepněte sem, jinak si zachovají své individuální hodnoty."
|
||||
},
|
||||
"error": {
|
||||
"system": "Došlo k systémové chybě (<a target=\"\\\" rel=\"nofollow\" href=\"\\\">Více informací<\/a>)."
|
||||
}
|
||||
},
|
||||
"infoThousands": " ",
|
||||
"decimal": ",",
|
||||
"thousands": " ",
|
||||
"stateRestore": {
|
||||
"creationModal": {
|
||||
"button": "Vytvořit",
|
||||
@@ -225,23 +225,24 @@
|
||||
"order": "Řazení",
|
||||
"paging": "Stránkování",
|
||||
"scroller": "Pozice skrolování",
|
||||
"select": "Výběr",
|
||||
"title": "Vytvořit nový Stav",
|
||||
"toggleLabel": "Zahrnout",
|
||||
"search": "Filtrování",
|
||||
"searchBuilder": "Rozšířené filtrování"
|
||||
"searchBuilder": "Rozšířené filtrování",
|
||||
"select": "Výběr",
|
||||
"title": "Vytvořit nový stav",
|
||||
"toggleLabel": "Zahrnout"
|
||||
},
|
||||
"duplicateError": "Stav s tímto názvem ji existuje.",
|
||||
"emptyError": "Název nemůže být prázný.",
|
||||
"duplicateError": "Stav s tímto názvem již existuje.",
|
||||
"emptyError": "Název nemůže být prázdný.",
|
||||
"emptyStates": "Žádné uložené stavy",
|
||||
"removeConfirm": "Opravdu chcete odstranbit %s?",
|
||||
"removeConfirm": "Opravdu chcete odstranit %s?",
|
||||
"removeError": "Chyba při odstraňování stavu.",
|
||||
"removeJoiner": "a",
|
||||
"removeSubmit": "Odstranit",
|
||||
"removeTitle": "Odstranit Stav",
|
||||
"removeTitle": "Odstranit stav",
|
||||
"renameButton": "Vymazat",
|
||||
"renameLabel": "Nové jméno pro %s:",
|
||||
"renameTitle": "Přejmenování Stavu"
|
||||
"renameTitle": "Přejmenování stavu"
|
||||
},
|
||||
"searchPlaceholder": "Příklad zástupného prvku"
|
||||
"thousands": " ",
|
||||
"zeroRecords": "Nebyly nalezeny žádné záznamy"
|
||||
}
|
||||
@@ -1,89 +1,209 @@
|
||||
{
|
||||
"emptyTable": "Keine Daten in der Tabelle vorhanden",
|
||||
"info": "_START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"infoEmpty": "Keine Daten vorhanden",
|
||||
"infoFiltered": "(gefiltert von _MAX_ Einträgen)",
|
||||
"infoThousands": ".",
|
||||
"loadingRecords": "Wird geladen ..",
|
||||
"processing": "Bitte warten ..",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"next": "Nächste",
|
||||
"last": "Letzte",
|
||||
"previous": "Vorherige"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren",
|
||||
"sortDescending": ": aktivieren, um Spalte absteigend zu sortieren"
|
||||
},
|
||||
"select": {
|
||||
"rows": {
|
||||
"_": "%d Zeilen ausgewählt",
|
||||
"1": "1 Zeile ausgewählt"
|
||||
},
|
||||
"cells": {
|
||||
"1": "1 Zelle ausgewählt",
|
||||
"_": "%d Zellen ausgewählt"
|
||||
},
|
||||
"columns": {
|
||||
"1": "1 Spalte ausgewählt",
|
||||
"_": "%d Spalten ausgewählt"
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Vorherige"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"print": "Drucken",
|
||||
"copy": "Kopieren",
|
||||
"copyTitle": "In Zwischenablage kopieren",
|
||||
"copySuccess": {
|
||||
"_": "%d Zeilen kopiert",
|
||||
"1": "1 Zeile kopiert"
|
||||
},
|
||||
"collection": "Aktionen <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "Spaltensichtbarkeit",
|
||||
"colvisRestore": "Sichtbarkeit wiederherstellen",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Alle Zeilen anzeigen",
|
||||
"1": "Zeige 1 Zeile",
|
||||
"_": "Zeige %d Zeilen"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"createState": "Ansicht erstellen",
|
||||
"removeAllStates": "Alle Ansichten entfernen",
|
||||
"removeState": "Entfernen",
|
||||
"renameState": "Umbenennen",
|
||||
"savedStates": "Gespeicherte Ansicht",
|
||||
"stateRestore": "Ansicht %d",
|
||||
"updateState": "Aktualisieren",
|
||||
"copyKeys": "Taste <i>STRG<\\\/i> oder <i>⌘<\\\/i> + <i>C<\\\/i> drücken um die Tabelle<br \/>in den Zwischenspeicher zu kopieren.<br \/><br \/>Um den Vorgang abzubrechen, Nachricht anklicken oder Escape-Taste drücken.<\/i><\/i><\/i>"
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Abbrechen",
|
||||
"fill": "Alle Zellen mit <i>%d<i> füllen<\/i><\/i>",
|
||||
"fillHorizontal": "Alle horizontalen Zellen füllen",
|
||||
"fillVertical": "Alle vertikalen Zellen füllen",
|
||||
"info": "Automatische Vervollständigung"
|
||||
"info": ""
|
||||
},
|
||||
"decimal": ",",
|
||||
"buttons": {
|
||||
"collection": "Aktionen <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "Spaltensichtbarkeit",
|
||||
"colvisRestore": "Sichtbarkeit wiederherstellen",
|
||||
"copy": "Kopieren",
|
||||
"copyKeys": "Taste <i>STRG<\\\/i> oder <i>⌘<\\\/i> + <i>C<\\\/i> drücken um die Tabelle<br \/>in den Zwischenspeicher zu kopieren.<br \/><br \/>Um den Vorgang abzubrechen, Nachricht anklicken oder Escape-Taste drücken.<\/i><\/i><\/i>",
|
||||
"copySuccess": {
|
||||
"_": "%d Zeilen kopiert",
|
||||
"1": "1 Zeile kopiert"
|
||||
},
|
||||
"copyTitle": "In Zwischenablage kopieren",
|
||||
"createState": "Ansicht erstellen",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "Zeige %d Zeilen",
|
||||
"-1": "Alle Zeilen anzeigen",
|
||||
"1": "Zeigt 1 Zeile"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Drucken",
|
||||
"removeAllStates": "Alle Ansichten entfernen",
|
||||
"removeState": "Entfernen",
|
||||
"renameState": "Umbenennen",
|
||||
"savedStates": "Gespeicherte Ansicht",
|
||||
"stateRestore": "Ansicht %d",
|
||||
"updateState": "Aktualisieren"
|
||||
},
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "Suche löschen"
|
||||
},
|
||||
"colVis": "Sichtbarkeit der Spalte",
|
||||
"colVisDropdown": "Sichtbarkeit der Spalte",
|
||||
"dropdown": "Mehr...",
|
||||
"list": {
|
||||
"all": "Alle auswählen",
|
||||
"empty": "Leer",
|
||||
"none": "Nichts auswählen",
|
||||
"search": "Suche..."
|
||||
},
|
||||
"orderAddAsc": "Aufsteigende Sortierung hinzufügen",
|
||||
"orderAddDesc": "Absteigende Sortierung hinzufügen",
|
||||
"orderAsc": "Aufsteigend sortieren",
|
||||
"orderClear": "Sortierung aufheben",
|
||||
"orderDesc": "Absteigend sortieren",
|
||||
"orderRemove": "Aus Sortierung löschen",
|
||||
"reorder": "Spalten neu sortieren",
|
||||
"reorderLeft": "Spalte nach links verschieben",
|
||||
"reorderRight": "Spalte nach rechts verschieben",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "Leer",
|
||||
"equal": "Gleich",
|
||||
"greater": "Nach",
|
||||
"less": "Vor",
|
||||
"notEmpty": "Nicht leer",
|
||||
"notEqual": "Nicht"
|
||||
},
|
||||
"number": {
|
||||
"empty": "Leer",
|
||||
"equal": "Gleich",
|
||||
"greater": "Größer",
|
||||
"greaterOrEqual": "Größer gleich",
|
||||
"less": "Kleiner",
|
||||
"lessOrEqual": "Kleiner gleich",
|
||||
"notEmpty": "Nicht leer",
|
||||
"notEqual": "Nicht"
|
||||
},
|
||||
"text": {
|
||||
"contains": "Enthält",
|
||||
"empty": "Leer",
|
||||
"ends": "Endet auf",
|
||||
"equal": "Gleich",
|
||||
"notContains": "Enthält nicht",
|
||||
"notEmpty": "Nicht leer",
|
||||
"notEqual": "Nicht",
|
||||
"starts": "Startet mit"
|
||||
}
|
||||
},
|
||||
"searchClear": "Suche leeren",
|
||||
"searchDropdown": "Suchen"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": {
|
||||
"0": "Vormittag",
|
||||
"1": "Nachmittag"
|
||||
},
|
||||
"hours": "Stunden",
|
||||
"minutes": "Minuten",
|
||||
"months": {
|
||||
"0": "Januar",
|
||||
"1": "Februar",
|
||||
"10": "November",
|
||||
"11": "Dezember",
|
||||
"2": "März",
|
||||
"3": "April",
|
||||
"4": "Mai",
|
||||
"5": "Juni",
|
||||
"6": "Juli",
|
||||
"7": "August",
|
||||
"8": "September",
|
||||
"9": "Oktober"
|
||||
},
|
||||
"next": "Nachher",
|
||||
"previous": "Vorher",
|
||||
"seconds": "Sekunden",
|
||||
"unknown": "Unbekannt",
|
||||
"weekdays": {
|
||||
"0": "Sonntag",
|
||||
"1": "Montag",
|
||||
"2": "Dienstag",
|
||||
"3": "Mittwoch",
|
||||
"4": "Donnerstag",
|
||||
"5": "Freitag",
|
||||
"6": "Samstag"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Schließen",
|
||||
"create": {
|
||||
"button": "Neu",
|
||||
"submit": "Erstellen",
|
||||
"title": "Neuen Eintrag erstellen"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Bearbeiten",
|
||||
"submit": "Bearbeiten",
|
||||
"title": "Eintrag bearbeiten"
|
||||
},
|
||||
"error": {
|
||||
"system": "Ein Systemfehler ist aufgetreten"
|
||||
},
|
||||
"multi": {
|
||||
"info": "Die ausgewählten Elemente enthalten mehrere Werte für dieses Feld. Um alle Elemente für dieses Feld zu bearbeiten und auf denselben Wert zu setzen, hier klicken oder tippen, andernfalls behalten diese ihre individuellen Werte bei.",
|
||||
"noMulti": "Dieses Feld kann nur einzeln bearbeitet werden, nicht als Teil einer Mengen-Änderung.",
|
||||
"restore": "Änderungen zurücksetzen",
|
||||
"title": "Mehrere Werte"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Entfernen",
|
||||
"confirm": {
|
||||
"_": "Sollen %d Zeilen gelöscht werden?",
|
||||
"1": "Soll diese Zeile gelöscht werden?"
|
||||
},
|
||||
"submit": "Entfernen",
|
||||
"title": "Entfernen"
|
||||
}
|
||||
},
|
||||
"emptyTable": "Keine Daten in der Tabelle vorhanden",
|
||||
"info": "_START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"infoEmpty": "Keine Daten vorhanden",
|
||||
"infoFiltered": "(gefiltert von _MAX_ Einträgen)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ".",
|
||||
"lengthLabels": {
|
||||
"-1": "Alle"
|
||||
},
|
||||
"lengthMenu": "_MENU_ Zeilen anzeigen",
|
||||
"loadingRecords": "Wird geladen ..",
|
||||
"orderClear": "Sortierung leeren",
|
||||
"processing": "Bitte warten ..",
|
||||
"search": "Suche:",
|
||||
"searchBuilder": {
|
||||
"add": "Bedingung hinzufügen",
|
||||
"button": {
|
||||
"0": "Such-Baukasten",
|
||||
"_": "Such-Baukasten (%d)"
|
||||
"_": "Such-Baukasten (%d)",
|
||||
"0": "Such-Baukasten"
|
||||
},
|
||||
"clearAll": "Alle entfernen",
|
||||
"condition": "Bedingung",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "enthält",
|
||||
"empty": "ist leer",
|
||||
"equals": "ist gleich",
|
||||
"not": "ist ungleich",
|
||||
"notEmpty": "ist nicht leer",
|
||||
"without": "aber nicht"
|
||||
},
|
||||
"date": {
|
||||
"after": "Nach",
|
||||
"before": "Vor",
|
||||
"between": "Zwischen",
|
||||
"empty": "Leer",
|
||||
"equals": "Gleich",
|
||||
"not": "Nicht",
|
||||
"notBetween": "Nicht zwischen",
|
||||
"notEmpty": "Nicht leer",
|
||||
"equals": "Gleich"
|
||||
"notEmpty": "Nicht leer"
|
||||
},
|
||||
"number": {
|
||||
"between": "Zwischen",
|
||||
@@ -103,114 +223,59 @@
|
||||
"endsWith": "Endet mit",
|
||||
"equals": "Entspricht",
|
||||
"not": "Nicht",
|
||||
"notEmpty": "Nicht leer",
|
||||
"startsWith": "Startet mit",
|
||||
"notContains": "enthält nicht",
|
||||
"notEmpty": "Nicht leer",
|
||||
"notEndsWith": "endet nicht mit",
|
||||
"notStartsWith": "startet nicht mit",
|
||||
"notEndsWith": "endet nicht mit"
|
||||
},
|
||||
"array": {
|
||||
"equals": "ist gleich",
|
||||
"empty": "ist leer",
|
||||
"contains": "enthält",
|
||||
"not": "ist ungleich",
|
||||
"notEmpty": "ist nicht leer",
|
||||
"without": "aber nicht"
|
||||
"startsWith": "Startet mit"
|
||||
}
|
||||
},
|
||||
"data": "Daten",
|
||||
"deleteTitle": "Filterregel entfernen",
|
||||
"leftTitle": "Äußere Kriterien",
|
||||
"rightTitle": "Innere Kriterien",
|
||||
"title": {
|
||||
"0": "Such-Baukasten",
|
||||
"_": "Such-Baukasten (%d)"
|
||||
},
|
||||
"value": "Wert",
|
||||
"clearAll": "Alle entfernen",
|
||||
"logicAnd": "Und",
|
||||
"logicOr": "Oder"
|
||||
"logicOr": "Oder",
|
||||
"rightTitle": "Innere Kriterien",
|
||||
"search": "Suche",
|
||||
"title": {
|
||||
"_": "Such-Baukasten (%d)",
|
||||
"0": "Such-Baukasten"
|
||||
},
|
||||
"value": "Wert"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Leeren",
|
||||
"collapse": {
|
||||
"0": "Suchmasken",
|
||||
"_": "Suchmasken (%d)"
|
||||
"_": "Suchmasken (%d)",
|
||||
"0": "Suchmasken"
|
||||
},
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Keine Suchmasken",
|
||||
"title": "Aktive Filter: %d",
|
||||
"showMessage": "zeige Alle",
|
||||
"collapseMessage": "Alle einklappen",
|
||||
"count": "{total}",
|
||||
"loadMessage": "Lade Suchmasken .."
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyMessage": "<em>Leer<\/em>",
|
||||
"emptyPanes": "Keine Suchmasken",
|
||||
"loadMessage": "Lade Suchmasken ..",
|
||||
"showMessage": "zeige Alle",
|
||||
"title": "Aktive Filter: %d"
|
||||
},
|
||||
"thousands": ".",
|
||||
"zeroRecords": "Keine passenden Einträge gefunden",
|
||||
"lengthMenu": "_MENU_ Zeilen anzeigen",
|
||||
"datetime": {
|
||||
"previous": "Vorher",
|
||||
"next": "Nachher",
|
||||
"hours": "Stunden",
|
||||
"minutes": "Minuten",
|
||||
"seconds": "Sekunden",
|
||||
"unknown": "Unbekannt",
|
||||
"weekdays": [
|
||||
"Sonntag",
|
||||
"Montag",
|
||||
"Dienstag",
|
||||
"Mittwoch",
|
||||
"Donnerstag",
|
||||
"Freitag",
|
||||
"Samstag"
|
||||
],
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"März",
|
||||
"April",
|
||||
"Mai",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Dezember"
|
||||
]
|
||||
},
|
||||
"editor": {
|
||||
"close": "Schließen",
|
||||
"create": {
|
||||
"button": "Neu",
|
||||
"title": "Neuen Eintrag erstellen",
|
||||
"submit": "Erstellen"
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "%d Zellen ausgewählt",
|
||||
"0": "",
|
||||
"1": "1 Zelle ausgewählt"
|
||||
},
|
||||
"remove": {
|
||||
"confirm": {
|
||||
"_": "Sollen %d Zeilen gelöscht werden?",
|
||||
"1": "Soll diese Zeile gelöscht werden?"
|
||||
},
|
||||
"button": "Entfernen",
|
||||
"title": "Entfernen",
|
||||
"submit": "Entfernen"
|
||||
"columns": {
|
||||
"_": "%d Spalten ausgewählt",
|
||||
"0": "",
|
||||
"1": "1 Spalte ausgewählt"
|
||||
},
|
||||
"error": {
|
||||
"system": "Ein Systemfehler ist aufgetreten"
|
||||
},
|
||||
"multi": {
|
||||
"title": "Mehrere Werte",
|
||||
"restore": "Änderungen zurücksetzen",
|
||||
"noMulti": "Dieses Feld kann nur einzeln bearbeitet werden, nicht als Teil einer Mengen-Änderung.",
|
||||
"info": "Die ausgewählten Elemente enthalten mehrere Werte für dieses Feld. Um alle Elemente für dieses Feld zu bearbeiten und auf denselben Wert zu setzen, hier klicken oder tippen, andernfalls behalten diese ihre individuellen Werte bei."
|
||||
},
|
||||
"edit": {
|
||||
"button": "Bearbeiten",
|
||||
"title": "Eintrag bearbeiten",
|
||||
"submit": "Bearbeiten"
|
||||
"rows": {
|
||||
"_": "%d Zeilen ausgewählt",
|
||||
"0": "",
|
||||
"1": "1 Zeile ausgewählt"
|
||||
}
|
||||
},
|
||||
"searchPlaceholder": "Suchen...",
|
||||
"stateRestore": {
|
||||
"creationModal": {
|
||||
"button": "Erstellen",
|
||||
@@ -231,13 +296,15 @@
|
||||
"duplicateError": "Eine Ansicht mit diesem Namen existiert bereits.",
|
||||
"emptyError": "Name darf nicht leer sein.",
|
||||
"emptyStates": "Keine gespeicherten Ansichten",
|
||||
"removeConfirm": "Sicher dass %s entfernt werden soll?",
|
||||
"removeError": "Entfernen der Ansicht fehlgeschlagen.",
|
||||
"removeJoiner": " und ",
|
||||
"removeSubmit": "Entfernen",
|
||||
"removeTitle": "Ansicht entfernen",
|
||||
"renameButton": "Umbenennen",
|
||||
"renameLabel": "Neuer Name für %s:",
|
||||
"renameTitle": "Ansicht umbenennen",
|
||||
"removeConfirm": "Sicher dass %s entfernt werden soll?"
|
||||
}
|
||||
"renameTitle": "Ansicht umbenennen"
|
||||
},
|
||||
"thousands": ".",
|
||||
"zeroRecords": "Keine passenden Einträge gefunden"
|
||||
}
|
||||
@@ -1,159 +1,112 @@
|
||||
{
|
||||
"processing": "Procesando...",
|
||||
"lengthMenu": "Mostrar _MENU_ registros",
|
||||
"zeroRecords": "No se encontraron resultados",
|
||||
"emptyTable": "Ningún dato disponible en esta tabla",
|
||||
"infoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
|
||||
"infoFiltered": "(filtrado de un total de _MAX_ registros)",
|
||||
"search": "Buscar:",
|
||||
"loadingRecords": "Cargando...",
|
||||
"paginate": {
|
||||
"first": "Primero",
|
||||
"last": "Último",
|
||||
"next": "Siguiente",
|
||||
"previous": "Anterior"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": Activar para ordenar la columna de manera ascendente",
|
||||
"sortDescending": ": Activar para ordenar la columna de manera descendente"
|
||||
},
|
||||
"buttons": {
|
||||
"copy": "Copiar",
|
||||
"colvis": "Visibilidad",
|
||||
"collection": "Colección",
|
||||
"colvisRestore": "Restaurar visibilidad",
|
||||
"copyKeys": "Presione ctrl o u2318 + C para copiar los datos de la tabla al portapapeles del sistema. <br \/> <br \/> Para cancelar, haga clic en este mensaje o presione escape.",
|
||||
"copySuccess": {
|
||||
"1": "Copiada 1 fila al portapapeles",
|
||||
"_": "Copiadas %ds fila al portapapeles"
|
||||
},
|
||||
"copyTitle": "Copiar al portapapeles",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Mostrar todas las filas",
|
||||
"_": "Mostrar %d filas"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Imprimir",
|
||||
"renameState": "Cambiar nombre",
|
||||
"updateState": "Actualizar",
|
||||
"createState": "Crear Estado",
|
||||
"removeAllStates": "Remover Estados",
|
||||
"removeState": "Remover",
|
||||
"savedStates": "Estados Guardados",
|
||||
"stateRestore": "Estado %d"
|
||||
"orderable": "Activar para ordenar",
|
||||
"orderableRemove": "Activar para quitar ordenación",
|
||||
"orderableReverse": "Activar para ordenar de forma inversa",
|
||||
"paginate": {
|
||||
"first": "Primero",
|
||||
"last": "Último",
|
||||
"next": "Siguiente",
|
||||
"previous": "Anterior"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Cancelar",
|
||||
"fill": "Rellene todas las celdas con <i>%d<\/i>",
|
||||
"fillHorizontal": "Rellenar celdas horizontalmente",
|
||||
"fillVertical": "Rellenar celdas verticalmente"
|
||||
"fillVertical": "Rellenar celdas verticalmente",
|
||||
"info": ""
|
||||
},
|
||||
"decimal": ",",
|
||||
"searchBuilder": {
|
||||
"add": "Añadir condición",
|
||||
"button": {
|
||||
"0": "Constructor de búsqueda",
|
||||
"_": "Constructor de búsqueda (%d)"
|
||||
"buttons": {
|
||||
"collection": "Colección",
|
||||
"colvis": "Visibilidad",
|
||||
"colvisRestore": "Restaurar visibilidad",
|
||||
"copy": "Copiar",
|
||||
"copyKeys": "Presione ctrl o u2318 + C para copiar los datos de la tabla al portapapeles del sistema. <br \/> <br \/> Para cancelar, haga clic en este mensaje o presione escape.",
|
||||
"copySuccess": {
|
||||
"_": "Copiadas %ds filas al portapapeles",
|
||||
"1": "Copiada 1 fila al portapapeles"
|
||||
},
|
||||
"clearAll": "Borrar todo",
|
||||
"condition": "Condición",
|
||||
"conditions": {
|
||||
"date": {
|
||||
"before": "Antes",
|
||||
"between": "Entre",
|
||||
"copyTitle": "Copiar al portapapeles",
|
||||
"createState": "Crear Estado",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "Mostrar %d filas",
|
||||
"-1": "Mostrar todas las filas",
|
||||
"1": "Mostrar 1 fila"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Imprimir",
|
||||
"removeAllStates": "Remover Estados",
|
||||
"removeState": "Remover",
|
||||
"renameState": "Cambiar nombre",
|
||||
"savedStates": "Estados Guardados",
|
||||
"stateRestore": "Estado %d",
|
||||
"updateState": "Actualizar"
|
||||
},
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "Borrar búsqueda"
|
||||
},
|
||||
"colVis": "Visibilidad",
|
||||
"colVisDropdown": "Desplegable visibilidad",
|
||||
"dropdown": "Desplegable",
|
||||
"list": {
|
||||
"all": "Añadir",
|
||||
"empty": "Vacío",
|
||||
"none": "Ninguno",
|
||||
"search": "Buscar.."
|
||||
},
|
||||
"orderAddAsc": "Añadir a ordenación ascendente",
|
||||
"orderAddDesc": "Añadir a ordenación descencente",
|
||||
"orderAsc": "Ordenar ascendentemente",
|
||||
"orderClear": "Borrar ordenación",
|
||||
"orderDesc": "Ordenar descendentemente",
|
||||
"orderRemove": "Borrar de ordenación",
|
||||
"reorder": "Reordenar",
|
||||
"reorderLeft": "Mover a la izquierda",
|
||||
"reorderRight": "Mover a la derecha",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "Vacío",
|
||||
"equals": "Igual a",
|
||||
"notBetween": "No entre",
|
||||
"not": "Diferente de",
|
||||
"after": "Después",
|
||||
"notEmpty": "No Vacío"
|
||||
"equal": "Igual a",
|
||||
"greater": "Mayor que",
|
||||
"less": "Menor que",
|
||||
"notEmpty": "No vacío",
|
||||
"notEqual": "Diferente de"
|
||||
},
|
||||
"number": {
|
||||
"between": "Entre",
|
||||
"equals": "Igual a",
|
||||
"gt": "Mayor a",
|
||||
"gte": "Mayor o igual a",
|
||||
"lt": "Menor que",
|
||||
"lte": "Menor o igual que",
|
||||
"notBetween": "No entre",
|
||||
"empty": "Vacío",
|
||||
"equal": "Igual a",
|
||||
"greater": "Mayor que",
|
||||
"greaterOrEqual": "Mayor o igual a",
|
||||
"less": "Menor que",
|
||||
"lessOrEqual": "Menor o igual a",
|
||||
"notEmpty": "No vacío",
|
||||
"not": "Diferente de",
|
||||
"empty": "Vacío"
|
||||
"notEqual": "Diferente de"
|
||||
},
|
||||
"string": {
|
||||
"text": {
|
||||
"contains": "Contiene",
|
||||
"empty": "Vacío",
|
||||
"endsWith": "Termina en",
|
||||
"equals": "Igual a",
|
||||
"startsWith": "Empieza con",
|
||||
"not": "Diferente de",
|
||||
"notContains": "No Contiene",
|
||||
"notStartsWith": "No empieza con",
|
||||
"notEndsWith": "No termina con",
|
||||
"notEmpty": "No Vacío"
|
||||
},
|
||||
"array": {
|
||||
"not": "Diferente de",
|
||||
"equals": "Igual",
|
||||
"empty": "Vacío",
|
||||
"contains": "Contiene",
|
||||
"notEmpty": "No Vacío",
|
||||
"without": "Sin"
|
||||
"ends": "Finaliza con",
|
||||
"equal": "Igual a",
|
||||
"notContains": "no contiene",
|
||||
"notEmpty": "No vacío",
|
||||
"notEqual": "Diferente de",
|
||||
"starts": "Empieza con"
|
||||
}
|
||||
},
|
||||
"data": "Data",
|
||||
"deleteTitle": "Eliminar regla de filtrado",
|
||||
"leftTitle": "Criterios anulados",
|
||||
"logicAnd": "Y",
|
||||
"logicOr": "O",
|
||||
"rightTitle": "Criterios de sangría",
|
||||
"title": {
|
||||
"0": "Constructor de búsqueda",
|
||||
"_": "Constructor de búsqueda (%d)"
|
||||
},
|
||||
"value": "Valor"
|
||||
"searchClear": "Borrar búsqueda",
|
||||
"searchDropdown": "Buscar"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Borrar todo",
|
||||
"collapse": {
|
||||
"0": "Paneles de búsqueda",
|
||||
"_": "Paneles de búsqueda (%d)"
|
||||
},
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Sin paneles de búsqueda",
|
||||
"loadMessage": "Cargando paneles de búsqueda",
|
||||
"title": "Filtros Activos - %d",
|
||||
"showMessage": "Mostrar Todo",
|
||||
"collapseMessage": "Colapsar Todo"
|
||||
},
|
||||
"select": {
|
||||
"cells": {
|
||||
"1": "1 celda seleccionada",
|
||||
"_": "%d celdas seleccionadas"
|
||||
},
|
||||
"columns": {
|
||||
"1": "1 columna seleccionada",
|
||||
"_": "%d columnas seleccionadas"
|
||||
},
|
||||
"rows": {
|
||||
"1": "1 fila seleccionada",
|
||||
"_": "%d filas seleccionadas"
|
||||
}
|
||||
},
|
||||
"thousands": ".",
|
||||
"datetime": {
|
||||
"previous": "Anterior",
|
||||
"amPm": {
|
||||
"0": "AM",
|
||||
"1": "PM"
|
||||
},
|
||||
"hours": "Horas",
|
||||
"minutes": "Minutos",
|
||||
"seconds": "Segundos",
|
||||
"unknown": "-",
|
||||
"amPm": [
|
||||
"AM",
|
||||
"PM"
|
||||
],
|
||||
"months": {
|
||||
"0": "Enero",
|
||||
"1": "Febrero",
|
||||
@@ -168,77 +121,193 @@
|
||||
"8": "Septiembre",
|
||||
"9": "Octubre"
|
||||
},
|
||||
"next": "Próximo",
|
||||
"previous": "Anterior",
|
||||
"seconds": "Segundos",
|
||||
"unknown": "-",
|
||||
"weekdays": {
|
||||
"0": "Dom",
|
||||
"1": "Lun",
|
||||
"2": "Mar",
|
||||
"3": "Mié",
|
||||
"4": "Jue",
|
||||
"5": "Vie",
|
||||
"3": "Mié",
|
||||
"6": "Sáb"
|
||||
},
|
||||
"next": "Próximo"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Cerrar",
|
||||
"create": {
|
||||
"button": "Nuevo",
|
||||
"title": "Crear Nuevo Registro",
|
||||
"submit": "Crear"
|
||||
"submit": "Crear",
|
||||
"title": "Crear Nuevo Registro"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Editar",
|
||||
"title": "Editar Registro",
|
||||
"submit": "Actualizar"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Eliminar",
|
||||
"title": "Eliminar Registro",
|
||||
"submit": "Eliminar",
|
||||
"confirm": {
|
||||
"_": "¿Está seguro de que desea eliminar %d filas?",
|
||||
"1": "¿Está seguro de que desea eliminar 1 fila?"
|
||||
}
|
||||
"submit": "Actualizar",
|
||||
"title": "Editar Registro"
|
||||
},
|
||||
"error": {
|
||||
"system": "Ha ocurrido un error en el sistema (<a target=\"\\\" rel=\"\\ nofollow\" href=\"\\\">Más información<\\\/a>).<\/a>"
|
||||
},
|
||||
"multi": {
|
||||
"title": "Múltiples Valores",
|
||||
"restore": "Deshacer Cambios",
|
||||
"info": "Los elementos seleccionados contienen diferentes valores para este registro. Para editar y establecer todos los elementos de este registro con el mismo valor, haga clic o pulse aquí, de lo contrario conservarán sus valores individuales.",
|
||||
"noMulti": "Este registro puede ser editado individualmente, pero no como parte de un grupo.",
|
||||
"info": "Los elementos seleccionados contienen diferentes valores para este registro. Para editar y establecer todos los elementos de este registro con el mismo valor, haga clic o pulse aquí, de lo contrario conservarán sus valores individuales."
|
||||
"restore": "Deshacer Cambios",
|
||||
"title": "Múltiples Valores"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Eliminar",
|
||||
"confirm": {
|
||||
"_": "¿Está seguro de que desea eliminar %d filas?",
|
||||
"1": "¿Está seguro de que desea eliminar 1 fila?"
|
||||
},
|
||||
"submit": "Eliminar",
|
||||
"title": "Eliminar Registro"
|
||||
}
|
||||
},
|
||||
"emptyTable": "Ningún dato disponible en esta tabla",
|
||||
"info": "Mostrando _START_ a _END_ de _TOTAL_ registros",
|
||||
"infoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
|
||||
"infoFiltered": "(filtrado de un total de _MAX_ registros)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ".",
|
||||
"lengthLabels": {
|
||||
"-1": "Todas"
|
||||
},
|
||||
"lengthMenu": "Mostrar _MENU_ registros",
|
||||
"loadingRecords": "Cargando...",
|
||||
"orderClear": "Limpiar ordenación de toda la tabla",
|
||||
"processing": "Procesando...",
|
||||
"search": "Buscar:",
|
||||
"searchBuilder": {
|
||||
"add": "Añadir condición",
|
||||
"button": {
|
||||
"_": "Constructor de búsqueda (%d)",
|
||||
"0": "Constructor de búsqueda"
|
||||
},
|
||||
"clearAll": "Borrar todo",
|
||||
"condition": "Condición",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "Contiene",
|
||||
"empty": "Vacío",
|
||||
"equals": "Igual",
|
||||
"not": "Diferente de",
|
||||
"notEmpty": "No Vacío",
|
||||
"without": "Sin"
|
||||
},
|
||||
"date": {
|
||||
"after": "Después",
|
||||
"before": "Antes",
|
||||
"between": "Entre",
|
||||
"empty": "Vacío",
|
||||
"equals": "Igual a",
|
||||
"not": "Diferente de",
|
||||
"notBetween": "No entre",
|
||||
"notEmpty": "No Vacío"
|
||||
},
|
||||
"number": {
|
||||
"between": "Entre",
|
||||
"empty": "Vacío",
|
||||
"equals": "Igual a",
|
||||
"gt": "Mayor a",
|
||||
"gte": "Mayor o igual a",
|
||||
"lt": "Menor que",
|
||||
"lte": "Menor o igual que",
|
||||
"not": "Diferente de",
|
||||
"notBetween": "No entre",
|
||||
"notEmpty": "No vacío"
|
||||
},
|
||||
"string": {
|
||||
"contains": "Contiene",
|
||||
"empty": "Vacío",
|
||||
"endsWith": "Termina en",
|
||||
"equals": "Igual a",
|
||||
"not": "Diferente de",
|
||||
"notContains": "No Contiene",
|
||||
"notEmpty": "No Vacío",
|
||||
"notEndsWith": "No termina con",
|
||||
"notStartsWith": "No empieza con",
|
||||
"startsWith": "Empieza con"
|
||||
}
|
||||
},
|
||||
"data": "Data",
|
||||
"deleteTitle": "Eliminar regla de filtrado",
|
||||
"leftTitle": "Criterios anulados",
|
||||
"logicAnd": "Y",
|
||||
"logicOr": "O",
|
||||
"rightTitle": "Criterios de sangría",
|
||||
"search": "Buscar",
|
||||
"title": {
|
||||
"_": "Constructor de búsqueda (%d)",
|
||||
"0": "Constructor de búsqueda"
|
||||
},
|
||||
"value": "Valor"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Borrar todo",
|
||||
"collapse": {
|
||||
"_": "Paneles de búsqueda (%d)",
|
||||
"0": "Paneles de búsqueda"
|
||||
},
|
||||
"collapseMessage": "Colapsar Todo",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyMessage": "vacío",
|
||||
"emptyPanes": "Sin paneles de búsqueda",
|
||||
"loadMessage": "Cargando paneles de búsqueda",
|
||||
"showMessage": "Mostrar Todo",
|
||||
"title": "Filtros Activos - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "%d celdas seleccionadas",
|
||||
"0": "",
|
||||
"1": "1 celda seleccionada"
|
||||
},
|
||||
"columns": {
|
||||
"_": "%d columnas seleccionadas",
|
||||
"0": "",
|
||||
"1": "1 columna seleccionada"
|
||||
},
|
||||
"rows": {
|
||||
"_": "%d filas seleccionadas",
|
||||
"0": "",
|
||||
"1": "1 fila seleccionada"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
"creationModal": {
|
||||
"button": "Crear",
|
||||
"name": "Nombre:",
|
||||
"order": "Clasificación",
|
||||
"paging": "Paginación",
|
||||
"select": "Seleccionar",
|
||||
"columns": {
|
||||
"search": "Búsqueda de Columna",
|
||||
"visible": "Visibilidad de Columna"
|
||||
},
|
||||
"title": "Crear Nuevo Estado",
|
||||
"toggleLabel": "Incluir:",
|
||||
"name": "Nombre:",
|
||||
"order": "Clasificación",
|
||||
"paging": "Paginación",
|
||||
"scroller": "Posición de desplazamiento",
|
||||
"search": "Búsqueda",
|
||||
"searchBuilder": "Búsqueda avanzada"
|
||||
"searchBuilder": "Búsqueda avanzada",
|
||||
"select": "Seleccionar",
|
||||
"title": "Crear Nuevo Estado",
|
||||
"toggleLabel": "Incluir:"
|
||||
},
|
||||
"removeJoiner": "y",
|
||||
"removeSubmit": "Eliminar",
|
||||
"renameButton": "Cambiar Nombre",
|
||||
"duplicateError": "Ya existe un Estado con este nombre.",
|
||||
"emptyStates": "No hay Estados guardados",
|
||||
"removeTitle": "Remover Estado",
|
||||
"renameTitle": "Cambiar Nombre Estado",
|
||||
"emptyError": "El nombre no puede estar vacío.",
|
||||
"emptyStates": "No hay Estados guardados",
|
||||
"removeConfirm": "¿Seguro que quiere eliminar %s?",
|
||||
"removeError": "Error al eliminar el Estado",
|
||||
"renameLabel": "Nuevo nombre para %s:"
|
||||
"removeJoiner": "y",
|
||||
"removeSubmit": "Eliminar",
|
||||
"removeTitle": "Remover Estado",
|
||||
"renameButton": "Cambiar Nombre",
|
||||
"renameLabel": "Nuevo nombre para %s:",
|
||||
"renameTitle": "Cambiar Nombre Estado"
|
||||
},
|
||||
"infoThousands": "."
|
||||
"thousands": ".",
|
||||
"zeroRecords": "No se encontraron resultados"
|
||||
}
|
||||
@@ -1,126 +1,43 @@
|
||||
{
|
||||
"emptyTable": "Aucune donnée disponible dans le tableau",
|
||||
"loadingRecords": "Chargement...",
|
||||
"processing": "Traitement...",
|
||||
"select": {
|
||||
"rows": {
|
||||
"_": "%d lignes sélectionnées",
|
||||
"1": "1 ligne sélectionnée"
|
||||
},
|
||||
"cells": {
|
||||
"1": "1 cellule sélectionnée",
|
||||
"_": "%d cellules sélectionnées"
|
||||
},
|
||||
"columns": {
|
||||
"1": "1 colonne sélectionnée",
|
||||
"_": "%d colonnes sélectionnées"
|
||||
"aria": {
|
||||
"orderable": "Activer pour trier",
|
||||
"orderableRemove": "Activer pour supprimer le tri",
|
||||
"orderableReverse": "Activer pour inverser le tri",
|
||||
"paginate": {
|
||||
"first": "Première",
|
||||
"last": "Dernière",
|
||||
"next": "Suivante",
|
||||
"previous": "Précédente"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Annuler",
|
||||
"fill": "Remplir toutes les cellules avec <i>%d<\/i>",
|
||||
"fillHorizontal": "Remplir les cellules horizontalement",
|
||||
"fillVertical": "Remplir les cellules verticalement"
|
||||
},
|
||||
"searchBuilder": {
|
||||
"conditions": {
|
||||
"date": {
|
||||
"after": "Après le",
|
||||
"before": "Avant le",
|
||||
"between": "Entre",
|
||||
"empty": "Vide",
|
||||
"not": "Différent de",
|
||||
"notBetween": "Pas entre",
|
||||
"notEmpty": "Non vide",
|
||||
"equals": "Égal à"
|
||||
},
|
||||
"number": {
|
||||
"between": "Entre",
|
||||
"empty": "Vide",
|
||||
"gt": "Supérieur à",
|
||||
"gte": "Supérieur ou égal à",
|
||||
"lt": "Inférieur à",
|
||||
"lte": "Inférieur ou égal à",
|
||||
"not": "Différent de",
|
||||
"notBetween": "Pas entre",
|
||||
"notEmpty": "Non vide",
|
||||
"equals": "Égal à"
|
||||
},
|
||||
"string": {
|
||||
"contains": "Contient",
|
||||
"empty": "Vide",
|
||||
"endsWith": "Se termine par",
|
||||
"not": "Différent de",
|
||||
"notEmpty": "Non vide",
|
||||
"startsWith": "Commence par",
|
||||
"equals": "Égal à",
|
||||
"notContains": "Ne contient pas",
|
||||
"notEndsWith": "Ne termine pas par",
|
||||
"notStartsWith": "Ne commence pas par"
|
||||
},
|
||||
"array": {
|
||||
"empty": "Vide",
|
||||
"contains": "Contient",
|
||||
"not": "Différent de",
|
||||
"notEmpty": "Non vide",
|
||||
"without": "Sans",
|
||||
"equals": "Égal à"
|
||||
}
|
||||
},
|
||||
"add": "Ajouter une condition",
|
||||
"button": {
|
||||
"0": "Recherche avancée",
|
||||
"_": "Recherche avancée (%d)"
|
||||
},
|
||||
"clearAll": "Effacer tout",
|
||||
"condition": "Condition",
|
||||
"data": "Donnée",
|
||||
"deleteTitle": "Supprimer la règle de filtrage",
|
||||
"logicAnd": "Et",
|
||||
"logicOr": "Ou",
|
||||
"title": {
|
||||
"0": "Recherche avancée",
|
||||
"_": "Recherche avancée (%d)"
|
||||
},
|
||||
"value": "Valeur",
|
||||
"leftTitle": "Désindenter le critère",
|
||||
"rightTitle": "Indenter le critère"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Effacer tout",
|
||||
"count": "{total}",
|
||||
"title": "Filtres actifs - %d",
|
||||
"collapse": {
|
||||
"0": "Volet de recherche",
|
||||
"_": "Volet de recherche (%d)"
|
||||
},
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Pas de volet de recherche",
|
||||
"loadMessage": "Chargement du volet de recherche...",
|
||||
"collapseMessage": "Réduire tout",
|
||||
"showMessage": "Montrer tout"
|
||||
"fillVertical": "Remplir les cellules verticalement",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Collection",
|
||||
"colvis": "Visibilité colonnes",
|
||||
"colvisRestore": "Rétablir visibilité",
|
||||
"copy": "Copier",
|
||||
"copyKeys": "Appuyez sur ctrl ou u2318 + C pour copier les données du tableau dans votre presse-papier.",
|
||||
"copySuccess": {
|
||||
"1": "1 ligne copiée dans le presse-papier",
|
||||
"_": "%d lignes copiées dans le presse-papier"
|
||||
"_": "%d lignes copiées dans le presse-papier",
|
||||
"1": "1 ligne copiée dans le presse-papier"
|
||||
},
|
||||
"copyTitle": "Copier dans le presse-papier",
|
||||
"createState": "Créer un état",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Afficher toutes les lignes",
|
||||
"_": "Afficher %d lignes",
|
||||
"-1": "Afficher toutes les lignes",
|
||||
"1": "Afficher 1 ligne"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Imprimer",
|
||||
"copyKeys": "Appuyez sur ctrl ou u2318 + C pour copier les données du tableau dans votre presse-papier.",
|
||||
"createState": "Créer un état",
|
||||
"removeAllStates": "Supprimer tous les états",
|
||||
"removeState": "Supprimer",
|
||||
"renameState": "Renommer",
|
||||
@@ -128,118 +45,270 @@
|
||||
"stateRestore": "État %d",
|
||||
"updateState": "Mettre à jour"
|
||||
},
|
||||
"decimal": ",",
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "Effacer la recherche"
|
||||
},
|
||||
"colVis": "Visibilité colonnes",
|
||||
"colVisDropdown": "Visibilité colonnes",
|
||||
"dropdown": "Plus...",
|
||||
"list": {
|
||||
"all": "Tout sélectionner",
|
||||
"empty": "Vide",
|
||||
"none": "Désélectionner",
|
||||
"search": "Rechercher..."
|
||||
},
|
||||
"orderAddAsc": "Ajouter tri croissant",
|
||||
"orderAddDesc": "Ajouter tri décroissant",
|
||||
"orderAsc": "Tri croissant",
|
||||
"orderClear": "Effacer le tri",
|
||||
"orderDesc": "Tri décroissant",
|
||||
"orderRemove": "Supprimer du tri",
|
||||
"reorder": "Réorganiser les colonnes",
|
||||
"reorderLeft": "Déplacer la colonne vers la gauche",
|
||||
"reorderRight": "Déplacer la colonne vers la droite",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "Vide",
|
||||
"equal": "Égal à",
|
||||
"greater": "Après le",
|
||||
"less": "Avant le",
|
||||
"notEmpty": "Non vide",
|
||||
"notEqual": "Différent de"
|
||||
},
|
||||
"number": {
|
||||
"empty": "Vide",
|
||||
"equal": "Égal à",
|
||||
"greater": "Supérieur à",
|
||||
"greaterOrEqual": "Supérieur ou égal à",
|
||||
"less": "Inférieur à",
|
||||
"lessOrEqual": "Inférieur ou égal à",
|
||||
"notEmpty": "Non vide",
|
||||
"notEqual": "Différent de"
|
||||
},
|
||||
"text": {
|
||||
"contains": "Contient",
|
||||
"empty": "Vide",
|
||||
"ends": "Se termine par",
|
||||
"equal": "Égal à",
|
||||
"notContains": "Ne contient pas",
|
||||
"notEmpty": "Non vide",
|
||||
"notEqual": "Différent de",
|
||||
"starts": "Commence par"
|
||||
}
|
||||
},
|
||||
"searchClear": "Effacer la recherche",
|
||||
"searchDropdown": "Rechercher"
|
||||
},
|
||||
"datetime": {
|
||||
"previous": "Précédent",
|
||||
"next": "Suivant",
|
||||
"amPm": {
|
||||
"0": "am",
|
||||
"1": "pm"
|
||||
},
|
||||
"hours": "Heures",
|
||||
"minutes": "Minutes",
|
||||
"seconds": "Secondes",
|
||||
"unknown": "-",
|
||||
"amPm": [
|
||||
"am",
|
||||
"pm"
|
||||
],
|
||||
"months": {
|
||||
"0": "Janvier",
|
||||
"1": "Février",
|
||||
"10": "Novembre",
|
||||
"11": "Décembre",
|
||||
"2": "Mars",
|
||||
"3": "Avril",
|
||||
"4": "Mai",
|
||||
"5": "Juin",
|
||||
"6": "Juillet",
|
||||
"7": "Août",
|
||||
"8": "Septembre",
|
||||
"9": "Octobre",
|
||||
"10": "Novembre",
|
||||
"1": "Février",
|
||||
"11": "Décembre",
|
||||
"7": "Août"
|
||||
"9": "Octobre"
|
||||
},
|
||||
"weekdays": [
|
||||
"Dim",
|
||||
"Lun",
|
||||
"Mar",
|
||||
"Mer",
|
||||
"Jeu",
|
||||
"Ven",
|
||||
"Sam"
|
||||
]
|
||||
"next": "Suivant",
|
||||
"previous": "Précédent",
|
||||
"seconds": "Secondes",
|
||||
"unknown": "-",
|
||||
"weekdays": {
|
||||
"0": "Dim",
|
||||
"1": "Lun",
|
||||
"2": "Mar",
|
||||
"3": "Mer",
|
||||
"4": "Jeu",
|
||||
"5": "Ven",
|
||||
"6": "Sam"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Fermer",
|
||||
"create": {
|
||||
"title": "Créer une nouvelle entrée",
|
||||
"button": "Nouveau",
|
||||
"submit": "Créer"
|
||||
"submit": "Créer",
|
||||
"title": "Créer une nouvelle entrée"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Editer",
|
||||
"title": "Editer Entrée",
|
||||
"submit": "Mettre à jour"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Supprimer",
|
||||
"title": "Supprimer",
|
||||
"submit": "Supprimer",
|
||||
"confirm": {
|
||||
"_": "Êtes-vous sûr de vouloir supprimer %d lignes ?",
|
||||
"1": "Êtes-vous sûr de vouloir supprimer 1 ligne ?"
|
||||
}
|
||||
},
|
||||
"multi": {
|
||||
"title": "Valeurs multiples",
|
||||
"info": "Les éléments sélectionnés contiennent différentes valeurs pour cette entrée. Pour modifier et définir tous les éléments de cette entrée à la même valeur, cliquez ou tapez ici, sinon ils conserveront leurs valeurs individuelles.",
|
||||
"restore": "Annuler les modifications",
|
||||
"noMulti": "Ce champ peut être modifié individuellement, mais ne fait pas partie d'un groupe. "
|
||||
"submit": "Mettre à jour",
|
||||
"title": "Editer Entrée"
|
||||
},
|
||||
"error": {
|
||||
"system": "Une erreur système s'est produite (<a target=\"\\\" rel=\"nofollow\" href=\"\\\">Plus d'information<\/a>)."
|
||||
},
|
||||
"multi": {
|
||||
"info": "Les éléments sélectionnés contiennent différentes valeurs pour cette entrée. Pour modifier et définir tous les éléments de cette entrée à la même valeur, cliquez ou tapez ici, sinon ils conserveront leurs valeurs individuelles.",
|
||||
"noMulti": "Ce champ peut être modifié individuellement, mais ne fait pas partie d'un groupe. ",
|
||||
"restore": "Annuler les modifications",
|
||||
"title": "Valeurs multiples"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Supprimer",
|
||||
"confirm": {
|
||||
"_": "Êtes-vous sûr de vouloir supprimer %d lignes ?",
|
||||
"1": "Êtes-vous sûr de vouloir supprimer 1 ligne ?"
|
||||
},
|
||||
"submit": "Supprimer",
|
||||
"title": "Supprimer"
|
||||
}
|
||||
},
|
||||
"emptyTable": "Aucune donnée disponible dans le tableau",
|
||||
"info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
|
||||
"infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
|
||||
"infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": " ",
|
||||
"lengthLabels": {
|
||||
"-1": "Tout"
|
||||
},
|
||||
"lengthMenu": "Afficher _MENU_ entrées",
|
||||
"loadingRecords": "Chargement...",
|
||||
"orderClear": "Effacer le tri",
|
||||
"processing": "Traitement...",
|
||||
"search": "Rechercher :",
|
||||
"searchBuilder": {
|
||||
"add": "Ajouter une condition",
|
||||
"button": {
|
||||
"_": "Recherche avancée (%d)",
|
||||
"0": "Recherche avancée"
|
||||
},
|
||||
"clearAll": "Effacer tout",
|
||||
"condition": "Condition",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "Contient",
|
||||
"empty": "Vide",
|
||||
"equals": "Égal à",
|
||||
"not": "Différent de",
|
||||
"notEmpty": "Non vide",
|
||||
"without": "Sans"
|
||||
},
|
||||
"date": {
|
||||
"after": "Après le",
|
||||
"before": "Avant le",
|
||||
"between": "Entre",
|
||||
"empty": "Vide",
|
||||
"equals": "Égal à",
|
||||
"not": "Différent de",
|
||||
"notBetween": "Pas entre",
|
||||
"notEmpty": "Non vide"
|
||||
},
|
||||
"number": {
|
||||
"between": "Entre",
|
||||
"empty": "Vide",
|
||||
"equals": "Égal à",
|
||||
"gt": "Supérieur à",
|
||||
"gte": "Supérieur ou égal à",
|
||||
"lt": "Inférieur à",
|
||||
"lte": "Inférieur ou égal à",
|
||||
"not": "Différent de",
|
||||
"notBetween": "Pas entre",
|
||||
"notEmpty": "Non vide"
|
||||
},
|
||||
"string": {
|
||||
"contains": "Contient",
|
||||
"empty": "Vide",
|
||||
"endsWith": "Se termine par",
|
||||
"equals": "Égal à",
|
||||
"not": "Différent de",
|
||||
"notContains": "Ne contient pas",
|
||||
"notEmpty": "Non vide",
|
||||
"notEndsWith": "Ne termine pas par",
|
||||
"notStartsWith": "Ne commence pas par",
|
||||
"startsWith": "Commence par"
|
||||
}
|
||||
},
|
||||
"data": "Donnée",
|
||||
"deleteTitle": "Supprimer la règle de filtrage",
|
||||
"leftTitle": "Désindenter le critère",
|
||||
"logicAnd": "Et",
|
||||
"logicOr": "Ou",
|
||||
"rightTitle": "Indenter le critère",
|
||||
"search": "Rechercher",
|
||||
"title": {
|
||||
"_": "Recherche avancée (%d)",
|
||||
"0": "Recherche avancée"
|
||||
},
|
||||
"value": "Valeur",
|
||||
"valueJoiner": "et"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Effacer tout",
|
||||
"collapse": {
|
||||
"_": "Volet de recherche (%d)",
|
||||
"0": "Volet de recherche"
|
||||
},
|
||||
"collapseMessage": "Réduire tout",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyMessage": "<em>vide<\/em>",
|
||||
"emptyPanes": "Pas de volet de recherche",
|
||||
"loadMessage": "Chargement du volet de recherche...",
|
||||
"showMessage": "Montrer tout",
|
||||
"title": "Filtres actifs - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "%d cellules sélectionnées",
|
||||
"0": "",
|
||||
"1": "1 cellule sélectionnée"
|
||||
},
|
||||
"columns": {
|
||||
"_": "%d colonnes sélectionnées",
|
||||
"0": "",
|
||||
"1": "1 colonne sélectionnée"
|
||||
},
|
||||
"rows": {
|
||||
"_": "%d lignes sélectionnées",
|
||||
"0": "",
|
||||
"1": "1 ligne sélectionnée"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
"removeSubmit": "Supprimer",
|
||||
"creationModal": {
|
||||
"button": "Créer",
|
||||
"order": "Tri",
|
||||
"paging": "Pagination",
|
||||
"scroller": "Position du défilement",
|
||||
"search": "Recherche",
|
||||
"select": "Sélection",
|
||||
"columns": {
|
||||
"search": "Recherche par colonne",
|
||||
"visible": "Visibilité des colonnes"
|
||||
},
|
||||
"name": "Nom :",
|
||||
"order": "Tri",
|
||||
"paging": "Pagination",
|
||||
"scroller": "Position du défilement",
|
||||
"search": "Recherche",
|
||||
"searchBuilder": "Recherche avancée",
|
||||
"select": "Sélection",
|
||||
"title": "Créer un nouvel état",
|
||||
"toggleLabel": "Inclus :"
|
||||
},
|
||||
"renameButton": "Renommer",
|
||||
"duplicateError": "Il existe déjà un état avec ce nom.",
|
||||
"emptyError": "Le nom ne peut pas être vide.",
|
||||
"emptyStates": "Aucun état sauvegardé",
|
||||
"removeConfirm": "Voulez vous vraiment supprimer %s ?",
|
||||
"removeError": "Échec de la suppression de l'état.",
|
||||
"removeJoiner": "et",
|
||||
"removeSubmit": "Supprimer",
|
||||
"removeTitle": "Supprimer l'état",
|
||||
"renameButton": "Renommer",
|
||||
"renameLabel": "Nouveau nom pour %s :",
|
||||
"renameTitle": "Renommer l'état"
|
||||
},
|
||||
"info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
|
||||
"infoEmpty": "Affichage de 0 à 0 sur 0 entrées",
|
||||
"infoFiltered": "(filtrées depuis un total de _MAX_ entrées)",
|
||||
"lengthMenu": "Afficher _MENU_ entrées",
|
||||
"paginate": {
|
||||
"first": "Première",
|
||||
"last": "Dernière",
|
||||
"next": "Suivante",
|
||||
"previous": "Précédente"
|
||||
},
|
||||
"zeroRecords": "Aucune entrée correspondante trouvée",
|
||||
"aria": {
|
||||
"sortAscending": " : activer pour trier la colonne par ordre croissant",
|
||||
"sortDescending": " : activer pour trier la colonne par ordre décroissant"
|
||||
},
|
||||
"infoThousands": " ",
|
||||
"search": "Rechercher :",
|
||||
"thousands": " "
|
||||
"thousands": " ",
|
||||
"zeroRecords": "Aucune entrée correspondante trouvée"
|
||||
}
|
||||
@@ -1,24 +1,21 @@
|
||||
{
|
||||
"infoFiltered": "(filtrati da _MAX_ elementi totali)",
|
||||
"infoThousands": ".",
|
||||
"loadingRecords": "Caricamento...",
|
||||
"processing": "Elaborazione...",
|
||||
"search": "Cerca:",
|
||||
"paginate": {
|
||||
"first": "Inizio",
|
||||
"previous": "Precedente",
|
||||
"next": "Successivo",
|
||||
"last": "Fine"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": attiva per ordinare la colonna in ordine crescente",
|
||||
"sortDescending": ": attiva per ordinare la colonna in ordine decrescente"
|
||||
"orderable": "Ordinamento",
|
||||
"orderableRemove": "Rimuovi ordinamento",
|
||||
"orderableReverse": "Ordinamento inverso",
|
||||
"paginate": {
|
||||
"first": "Inizio",
|
||||
"last": "Fine",
|
||||
"next": "Successivo",
|
||||
"previous": "Precedente"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Annulla",
|
||||
"fill": "Riempi tutte le celle con <i>%d<\/i>",
|
||||
"fillHorizontal": "Riempi celle orizzontalmente",
|
||||
"fillVertical": "Riempi celle verticalmente"
|
||||
"fillVertical": "Riempi celle verticalmente",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Collezione <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
@@ -27,19 +24,20 @@
|
||||
"copy": "Copia",
|
||||
"copyKeys": "Premi ctrl o u2318 + C per copiare i dati della tabella nella tua clipboard di sistema.<br \/><br \/>Per annullare, clicca questo messaggio o premi ESC.",
|
||||
"copySuccess": {
|
||||
"1": "Copiata 1 riga nella clipboard",
|
||||
"_": "Copiate %d righe nella clipboard"
|
||||
"_": "Copiate %d righe nella clipboard",
|
||||
"1": "Copiata 1 riga nella clipboard"
|
||||
},
|
||||
"copyTitle": "Copia nella Clipboard",
|
||||
"createState": "Crea stato",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "Mostra %d righe",
|
||||
"-1": "Mostra tutte le righe",
|
||||
"_": "Mostra %d righe"
|
||||
"1": "Mostra 1 riga"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Stampa",
|
||||
"createState": "Crea stato",
|
||||
"removeAllStates": "Rimuovi tutti gli stati",
|
||||
"removeState": "Rimuovi",
|
||||
"renameState": "Rinomina",
|
||||
@@ -47,138 +45,97 @@
|
||||
"stateRestore": "Ripristina stato",
|
||||
"updateState": "Aggiorna"
|
||||
},
|
||||
"emptyTable": "Nessun dato disponibile nella tabella",
|
||||
"info": "Risultati da _START_ a _END_ di _TOTAL_ elementi",
|
||||
"infoEmpty": "Risultati da 0 a 0 di 0 elementi",
|
||||
"lengthMenu": "Mostra _MENU_ elementi",
|
||||
"searchBuilder": {
|
||||
"add": "Aggiungi Condizione",
|
||||
"button": {
|
||||
"0": "Generatore di Ricerca",
|
||||
"_": "Generatori di Ricerca (%d)"
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "Cancella ricerca"
|
||||
},
|
||||
"clearAll": "Pulisci Tutto",
|
||||
"condition": "Condizione",
|
||||
"conditions": {
|
||||
"date": {
|
||||
"after": "Dopo",
|
||||
"before": "Prima",
|
||||
"between": "Tra",
|
||||
"colVis": "Visibilità colonne",
|
||||
"colVisDropdown": "Visibilità colonne",
|
||||
"dropdown": "Altro...",
|
||||
"list": {
|
||||
"all": "Seleziona tutto",
|
||||
"empty": "Vuoto",
|
||||
"none": "Deseleziona tutto",
|
||||
"search": "Cerca..."
|
||||
},
|
||||
"orderAddAsc": "Aggiungi ordinamento crescente",
|
||||
"orderAddDesc": "Aggiungi ordinamento decrescente",
|
||||
"orderAsc": "Ordina in modo crescente",
|
||||
"orderClear": "Cancella ordinamento",
|
||||
"orderDesc": "Ordina in modo decrescente",
|
||||
"orderRemove": "Rimuovi dall'ordinamento",
|
||||
"reorder": "Riordina colonne",
|
||||
"reorderLeft": "Sposta la colonna a sinistra",
|
||||
"reorderRight": "Sposta la colonna a destra",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "Vuoto",
|
||||
"equals": "Uguale A",
|
||||
"not": "Non",
|
||||
"notBetween": "Non Tra",
|
||||
"notEmpty": "Non Vuoto"
|
||||
"equal": "Uguale a",
|
||||
"greater": "Dopo il",
|
||||
"less": "Prima del",
|
||||
"notEmpty": "Non vuoto",
|
||||
"notEqual": "Diverso da"
|
||||
},
|
||||
"number": {
|
||||
"between": "Tra",
|
||||
"empty": "Vuoto",
|
||||
"equals": "Uguale A",
|
||||
"gt": "Maggiore Di",
|
||||
"gte": "Maggiore O Uguale A",
|
||||
"lt": "Minore Di",
|
||||
"lte": "Minore O Uguale A",
|
||||
"not": "Non",
|
||||
"notBetween": "Non Tra",
|
||||
"notEmpty": "Non Vuoto"
|
||||
"equal": "Uguale a",
|
||||
"greater": "Maggiore di",
|
||||
"greaterOrEqual": "Maggiore o uguale a",
|
||||
"less": "Minore di",
|
||||
"lessOrEqual": "Minore o uguale a",
|
||||
"notEmpty": "Non vuoto",
|
||||
"notEqual": "Diverso da"
|
||||
},
|
||||
"string": {
|
||||
"text": {
|
||||
"contains": "Contiene",
|
||||
"empty": "Vuoto",
|
||||
"endsWith": "Finisce Con",
|
||||
"equals": "Uguale A",
|
||||
"not": "Non",
|
||||
"notEmpty": "Non Vuoto",
|
||||
"startsWith": "Inizia Con",
|
||||
"notContains": "Non Contiene",
|
||||
"notStartsWith": "Non Inizia Con",
|
||||
"notEndsWith": "Non Finisce Con"
|
||||
},
|
||||
"array": {
|
||||
"equals": "Uguale A",
|
||||
"empty": "Vuoto",
|
||||
"contains": "Contiene",
|
||||
"not": "Non",
|
||||
"notEmpty": "Non Vuoto",
|
||||
"without": "Senza"
|
||||
"ends": "Termina con",
|
||||
"equal": "Uguale a",
|
||||
"notContains": "Non contiene",
|
||||
"notEmpty": "Non vuoto",
|
||||
"notEqual": "Diverso da",
|
||||
"starts": "Inizia con"
|
||||
}
|
||||
},
|
||||
"data": "Dati",
|
||||
"deleteTitle": "Elimina regola filtro",
|
||||
"leftTitle": "Criterio di Riduzione Rientro",
|
||||
"logicAnd": "E",
|
||||
"logicOr": "O",
|
||||
"rightTitle": "Criterio di Aumento Rientro",
|
||||
"title": {
|
||||
"0": "Generatore di Ricerca",
|
||||
"_": "Generatori di Ricerca (%d)"
|
||||
},
|
||||
"value": "Valore"
|
||||
"searchClear": "Cancella ricerca",
|
||||
"searchDropdown": "Cerca"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Pulisci Tutto",
|
||||
"collapse": {
|
||||
"0": "Pannello di Ricerca",
|
||||
"_": "Pannelli di Ricerca (%d)"
|
||||
},
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Nessun Pannello di Ricerca",
|
||||
"loadMessage": "Caricamento Pannello di Ricerca",
|
||||
"title": "Filtri Attivi - %d",
|
||||
"showMessage": "Mostra tutto",
|
||||
"collapseMessage": "Espandi tutto"
|
||||
},
|
||||
"select": {
|
||||
"cells": {
|
||||
"1": "1 cella selezionata",
|
||||
"_": "%d celle selezionate"
|
||||
},
|
||||
"columns": {
|
||||
"1": "1 colonna selezionata",
|
||||
"_": "%d colonne selezionate"
|
||||
},
|
||||
"rows": {
|
||||
"1": "1 riga selezionata",
|
||||
"_": "%d righe selezionate"
|
||||
}
|
||||
},
|
||||
"zeroRecords": "Nessun elemento corrispondente trovato",
|
||||
"datetime": {
|
||||
"amPm": [
|
||||
"am",
|
||||
"pm"
|
||||
],
|
||||
"amPm": {
|
||||
"0": "am",
|
||||
"1": "pm"
|
||||
},
|
||||
"hours": "ore",
|
||||
"minutes": "minuti",
|
||||
"months": {
|
||||
"0": "Gennaio",
|
||||
"1": "Febbraio",
|
||||
"10": "Novembre",
|
||||
"11": "Dicembre",
|
||||
"2": "Marzo",
|
||||
"3": "Aprile",
|
||||
"4": "Maggio",
|
||||
"5": "Giugno",
|
||||
"6": "Luglio",
|
||||
"7": "Agosto",
|
||||
"8": "Settembre",
|
||||
"9": "Ottobre"
|
||||
},
|
||||
"next": "successivo",
|
||||
"previous": "precedente",
|
||||
"seconds": "secondi",
|
||||
"unknown": "sconosciuto",
|
||||
"weekdays": [
|
||||
"Dom",
|
||||
"Lun",
|
||||
"Mar",
|
||||
"Mer",
|
||||
"Gio",
|
||||
"Ven",
|
||||
"Sab"
|
||||
],
|
||||
"months": [
|
||||
"Gennaio",
|
||||
"Febbraio",
|
||||
"Marzo",
|
||||
"Aprile",
|
||||
"Maggio",
|
||||
"Giugno",
|
||||
"Luglio",
|
||||
"Agosto",
|
||||
"Settembre",
|
||||
"Ottobre",
|
||||
"Novembre",
|
||||
"Dicembre"
|
||||
]
|
||||
"weekdays": {
|
||||
"0": "Dom",
|
||||
"1": "Lun",
|
||||
"2": "Mar",
|
||||
"3": "Mer",
|
||||
"4": "Gio",
|
||||
"5": "Ven",
|
||||
"6": "Sab"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Chiudi",
|
||||
"create": {
|
||||
@@ -210,8 +167,115 @@
|
||||
"title": "Rimuovi"
|
||||
}
|
||||
},
|
||||
"thousands": ".",
|
||||
"decimal": ",",
|
||||
"emptyTable": "Nessun dato disponibile nella tabella",
|
||||
"info": "Risultati da _START_ a _END_ di _TOTAL_ elementi",
|
||||
"infoEmpty": "Risultati da 0 a 0 di 0 elementi",
|
||||
"infoFiltered": "(filtrati da _MAX_ elementi totali)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ".",
|
||||
"lengthMenu": "Mostra _MENU_ elementi",
|
||||
"loadingRecords": "Caricamento...",
|
||||
"processing": "Elaborazione...",
|
||||
"search": "Cerca:",
|
||||
"searchBuilder": {
|
||||
"add": "Aggiungi Condizione",
|
||||
"button": {
|
||||
"_": "Generatori di Ricerca (%d)",
|
||||
"0": "Generatore di Ricerca"
|
||||
},
|
||||
"clearAll": "Pulisci Tutto",
|
||||
"condition": "Condizione",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "Contiene",
|
||||
"empty": "Vuoto",
|
||||
"equals": "Uguale A",
|
||||
"not": "Non",
|
||||
"notEmpty": "Non Vuoto",
|
||||
"without": "Senza"
|
||||
},
|
||||
"date": {
|
||||
"after": "Dopo",
|
||||
"before": "Prima",
|
||||
"between": "Tra",
|
||||
"empty": "Vuoto",
|
||||
"equals": "Uguale A",
|
||||
"not": "Non",
|
||||
"notBetween": "Non Tra",
|
||||
"notEmpty": "Non Vuoto"
|
||||
},
|
||||
"number": {
|
||||
"between": "Tra",
|
||||
"empty": "Vuoto",
|
||||
"equals": "Uguale A",
|
||||
"gt": "Maggiore Di",
|
||||
"gte": "Maggiore O Uguale A",
|
||||
"lt": "Minore Di",
|
||||
"lte": "Minore O Uguale A",
|
||||
"not": "Non",
|
||||
"notBetween": "Non Tra",
|
||||
"notEmpty": "Non Vuoto"
|
||||
},
|
||||
"string": {
|
||||
"contains": "Contiene",
|
||||
"empty": "Vuoto",
|
||||
"endsWith": "Finisce Con",
|
||||
"equals": "Uguale A",
|
||||
"not": "Non",
|
||||
"notContains": "Non Contiene",
|
||||
"notEmpty": "Non Vuoto",
|
||||
"notEndsWith": "Non Finisce Con",
|
||||
"notStartsWith": "Non Inizia Con",
|
||||
"startsWith": "Inizia Con"
|
||||
}
|
||||
},
|
||||
"data": "Dati",
|
||||
"deleteTitle": "Elimina regola filtro",
|
||||
"leftTitle": "Criterio di Riduzione Rientro",
|
||||
"logicAnd": "E",
|
||||
"logicOr": "O",
|
||||
"rightTitle": "Criterio di Aumento Rientro",
|
||||
"search": "Cerca",
|
||||
"title": {
|
||||
"_": "Generatori di Ricerca (%d)",
|
||||
"0": "Generatore di Ricerca"
|
||||
},
|
||||
"value": "Valore",
|
||||
"valueJoiner": "e"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Pulisci Tutto",
|
||||
"collapse": {
|
||||
"_": "Pannelli di Ricerca (%d)",
|
||||
"0": "Pannello di Ricerca"
|
||||
},
|
||||
"collapseMessage": "Espandi tutto",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyMessage": "Vuoto",
|
||||
"emptyPanes": "Nessun Pannello di Ricerca",
|
||||
"loadMessage": "Caricamento Pannello di Ricerca",
|
||||
"showMessage": "Mostra tutto",
|
||||
"title": "Filtri Attivi - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "%d celle selezionate",
|
||||
"0": "",
|
||||
"1": "1 cella selezionata"
|
||||
},
|
||||
"columns": {
|
||||
"_": "%d colonne selezionate",
|
||||
"0": "",
|
||||
"1": "1 colonna selezionata"
|
||||
},
|
||||
"rows": {
|
||||
"_": "%d righe selezionate",
|
||||
"0": "",
|
||||
"1": "1 riga selezionata"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
"creationModal": {
|
||||
"button": "Crea",
|
||||
@@ -240,5 +304,7 @@
|
||||
"renameButton": "Rinomina",
|
||||
"renameLabel": "Nuovo nome per %s:",
|
||||
"renameTitle": "Rinomina Stato"
|
||||
}
|
||||
},
|
||||
"thousands": ".",
|
||||
"zeroRecords": "Nessun elemento corrispondente trovato"
|
||||
}
|
||||
@@ -0,0 +1,248 @@
|
||||
{
|
||||
"aria": {
|
||||
"paginate": {
|
||||
"first": "先頭",
|
||||
"last": "最終",
|
||||
"next": "次",
|
||||
"previous": "前"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "キャンセル",
|
||||
"fill": "すべてのセルを <i>%d<\/i> で埋める",
|
||||
"fillHorizontal": "横方向にセルを埋める",
|
||||
"fillVertical": "縦方向にセルを埋める",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "コレクション <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "カラム表示\/非表示",
|
||||
"colvisRestore": "カラム表示のリセット",
|
||||
"copy": "コピー",
|
||||
"copyKeys": "Ctrl または ⌘ + C でテーブルのデータをクリップボードにコピーできます。<br \/><br \/>キャンセルするには、このメッセージをクリックするか、Esc キーを押してください。",
|
||||
"copySuccess": {
|
||||
"_": "%d 行をクリップボードにコピーしました",
|
||||
"1": "1 行をクリップボードにコピーしました"
|
||||
},
|
||||
"copyTitle": "クリップボードにコピー",
|
||||
"createState": "Stateを作成",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "%d 行を表示",
|
||||
"-1": "すべての行を表示"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "印刷",
|
||||
"removeAllStates": "Stateを全て削除",
|
||||
"removeState": "削除",
|
||||
"renameState": "名前を変更",
|
||||
"savedStates": "State一覧",
|
||||
"stateRestore": "State %d",
|
||||
"updateState": "更新"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": {
|
||||
"0": "午前",
|
||||
"1": "午後"
|
||||
},
|
||||
"hours": "時",
|
||||
"minutes": "分",
|
||||
"months": {
|
||||
"0": "1月",
|
||||
"1": "2月",
|
||||
"10": "11月",
|
||||
"11": "12月",
|
||||
"2": "3月",
|
||||
"3": "4月",
|
||||
"4": "5月",
|
||||
"5": "6月",
|
||||
"6": "7月",
|
||||
"7": "8月",
|
||||
"8": "9月",
|
||||
"9": "10月"
|
||||
},
|
||||
"next": "次",
|
||||
"previous": "前",
|
||||
"seconds": "秒",
|
||||
"unknown": "-",
|
||||
"weekdays": {
|
||||
"0": "日",
|
||||
"1": "月",
|
||||
"2": "火",
|
||||
"3": "水",
|
||||
"4": "木",
|
||||
"5": "金",
|
||||
"6": "土"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "閉じる",
|
||||
"create": {
|
||||
"button": "新規",
|
||||
"submit": "作成",
|
||||
"title": "新しいエントリーを作成"
|
||||
},
|
||||
"edit": {
|
||||
"button": "編集",
|
||||
"submit": "更新",
|
||||
"title": "エントリーの編集"
|
||||
},
|
||||
"error": {
|
||||
"system": "システムエラーが発生しました (<a target=\"\\\" rel=\"nofollow\" href=\"\\\">詳細<\/a>)。"
|
||||
},
|
||||
"multi": {
|
||||
"info": "選択されたアイテムにはこの入力に対して異なる値が含まれています。同じ値を設定する場合はクリック(またはタップ)してください。それ以外の場合は個別の値が維持されます。",
|
||||
"noMulti": "この入力は個別には編集できますが、グループの一部としては編集できません。",
|
||||
"restore": "元に戻す",
|
||||
"title": "複数の値"
|
||||
},
|
||||
"remove": {
|
||||
"button": "削除",
|
||||
"confirm": {
|
||||
"_": "%d 行を削除しますか?",
|
||||
"1": "1 行を削除しますか?"
|
||||
},
|
||||
"submit": "削除",
|
||||
"title": "削除"
|
||||
}
|
||||
},
|
||||
"emptyTable": "テーブルにデータがありません",
|
||||
"info": " _TOTAL_ 件中 _START_ から _END_ まで表示",
|
||||
"infoEmpty": " 0 件中 0 から 0 まで表示",
|
||||
"infoFiltered": "(全 _MAX_ 件より抽出)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ",",
|
||||
"lengthMenu": "_MENU_ 件表示",
|
||||
"loadingRecords": "読み込み中...",
|
||||
"processing": "処理中...",
|
||||
"search": "検索:",
|
||||
"searchBuilder": {
|
||||
"add": "条件を追加",
|
||||
"button": {
|
||||
"_": "カスタムサーチ (%d)",
|
||||
"0": "カスタムサーチ"
|
||||
},
|
||||
"clearAll": "すべての条件をクリア",
|
||||
"condition": "条件",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "含む",
|
||||
"empty": "空",
|
||||
"equals": "等しい",
|
||||
"not": "等しくない",
|
||||
"notEmpty": "空ではない",
|
||||
"without": "を含まない"
|
||||
},
|
||||
"date": {
|
||||
"after": "指定日以後",
|
||||
"before": "指定日以前",
|
||||
"between": "指定日範囲内",
|
||||
"empty": "空白",
|
||||
"equals": "等しい",
|
||||
"not": "等しくない",
|
||||
"notBetween": "指定日範囲外",
|
||||
"notEmpty": "空白ではない"
|
||||
},
|
||||
"number": {
|
||||
"between": "範囲内",
|
||||
"empty": "空白",
|
||||
"equals": "等しい",
|
||||
"gt": "より大きい",
|
||||
"gte": "以上",
|
||||
"lt": "より小さい",
|
||||
"lte": "以下",
|
||||
"not": "等しくない",
|
||||
"notBetween": "範囲外",
|
||||
"notEmpty": "空白ではない"
|
||||
},
|
||||
"string": {
|
||||
"contains": "含む",
|
||||
"empty": "空白",
|
||||
"endsWith": "次の文字で終わる",
|
||||
"equals": "次の文字と等しい",
|
||||
"not": "次の文字と等しくない",
|
||||
"notContains": "含まない",
|
||||
"notEmpty": "空白ではない",
|
||||
"notEndsWith": "で終わらない",
|
||||
"notStartsWith": "で始まらない",
|
||||
"startsWith": "で始まる"
|
||||
}
|
||||
},
|
||||
"data": "カラム",
|
||||
"deleteTitle": "絞り込みルールを削除",
|
||||
"leftTitle": "インデントを解除",
|
||||
"logicAnd": "And",
|
||||
"logicOr": "Or",
|
||||
"rightTitle": "インデント",
|
||||
"title": {
|
||||
"_": "カスタムサーチ (%d)",
|
||||
"0": "カスタムサーチ"
|
||||
},
|
||||
"value": "Value"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "すべてクリア",
|
||||
"collapse": {
|
||||
"_": "検索ペイン (%d)",
|
||||
"0": "検索ペイン"
|
||||
},
|
||||
"collapseMessage": "すべて折りたたむ",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "検索ペインがありません",
|
||||
"loadMessage": "検索ペインを読み込み中",
|
||||
"showMessage": "すべて表示",
|
||||
"title": "有効なフィルター - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "%d 個のセルが選択されました",
|
||||
"0": "",
|
||||
"1": "1 個のセルが選択されました"
|
||||
},
|
||||
"columns": {
|
||||
"_": "%d 列が選択されました",
|
||||
"0": "",
|
||||
"1": "1 列が選択されました"
|
||||
},
|
||||
"rows": {
|
||||
"_": "%d 行が選択されました",
|
||||
"0": "",
|
||||
"1": "1 行が選択されました"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
"creationModal": {
|
||||
"button": "作成",
|
||||
"columns": {
|
||||
"search": "列の検索",
|
||||
"visible": "列の表示"
|
||||
},
|
||||
"name": "名前:",
|
||||
"order": "ソート",
|
||||
"paging": "ページング",
|
||||
"scroller": "スクロール位置",
|
||||
"search": "検索",
|
||||
"searchBuilder": "カスタムサーチ",
|
||||
"select": "検索",
|
||||
"title": "新しいStateを作成",
|
||||
"toggleLabel": "含む:"
|
||||
},
|
||||
"duplicateError": "この名前のStateはすでに存在します。",
|
||||
"emptyError": "名前を空にすることはできません。",
|
||||
"emptyStates": "保存されたStateはありません",
|
||||
"removeConfirm": "%s を削除してよろしいですか?",
|
||||
"removeError": "Stateの削除に失敗しました。",
|
||||
"removeJoiner": " と ",
|
||||
"removeSubmit": "削除",
|
||||
"removeTitle": "Stateを削除",
|
||||
"renameButton": "名前を変更",
|
||||
"renameLabel": "%s の新しい名前:",
|
||||
"renameTitle": "名前を変更"
|
||||
},
|
||||
"thousands": ",",
|
||||
"zeroRecords": "一致するレコードがありません"
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"aria": {
|
||||
"paginate": {
|
||||
"first": "처음",
|
||||
"last": "마지막",
|
||||
"next": "다음",
|
||||
"previous": "이전"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "취소",
|
||||
"fill": "모든 셀에 <i>%d<i><\/i><\/i> 채우기",
|
||||
"fillHorizontal": "수평으로 셀에 값 채우기",
|
||||
"fillVertical": "수직으로 셀에 값 채우기",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "모음 <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "열 보기",
|
||||
"colvisRestore": "보기 복원",
|
||||
"copy": "복사",
|
||||
"copyKeys": "ctrl키나 u2318 + C키로 테이블 데이터를 시스템 클립보드에서 복사하고 취소하려면 이 메시지를 클릭하거나 ESC키를 누르면됩니다.",
|
||||
"copySuccess": {
|
||||
"_": "%d행을 클립보드에서 복사됨",
|
||||
"1": "1행을 클립보드에서 복사됨"
|
||||
},
|
||||
"copyTitle": "클립보드에서 복사",
|
||||
"createState": "상태 생성",
|
||||
"csv": "CSV",
|
||||
"excel": "엑셀",
|
||||
"pageLength": {
|
||||
"_": "%d행 보기",
|
||||
"-1": "모든 행 보기",
|
||||
"1": "1행 보기"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "인쇄",
|
||||
"removeAllStates": "모든 상태 삭제",
|
||||
"removeState": "삭제",
|
||||
"renameState": "이름 변경",
|
||||
"savedStates": "저장된 상태",
|
||||
"stateRestore": "상태 %d",
|
||||
"updateState": "갱신"
|
||||
},
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "검색 지우기"
|
||||
},
|
||||
"dropdown": "더 보기...",
|
||||
"list": {
|
||||
"all": "전체 선택",
|
||||
"empty": "비어 있음",
|
||||
"none": "선택 해제",
|
||||
"search": "검색..."
|
||||
},
|
||||
"orderAsc": "오름차순 정렬",
|
||||
"orderClear": "정렬 지우기",
|
||||
"orderDesc": "내림차순 정렬",
|
||||
"orderRemove": "정렬 취소",
|
||||
"reorder": "열 이동",
|
||||
"reorderLeft": "왼쪽으로 열 이동",
|
||||
"reorderRight": "오른쪽으로 열 이동",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "비어 있음",
|
||||
"equal": "같음",
|
||||
"greater": "이후",
|
||||
"less": "이전",
|
||||
"notEmpty": "비어 있지 않음",
|
||||
"notEqual": "같지 않음"
|
||||
},
|
||||
"number": {
|
||||
"empty": "비어 있음",
|
||||
"equal": "같음",
|
||||
"greater": "큼",
|
||||
"greaterOrEqual": "크거나 같음",
|
||||
"less": "작음",
|
||||
"lessOrEqual": "작거나 같음",
|
||||
"notEmpty": "비어 있지 않음",
|
||||
"notEqual": "같지 않음"
|
||||
},
|
||||
"text": {
|
||||
"contains": "포함되어 있음",
|
||||
"empty": "비어 있음",
|
||||
"ends": "끝남",
|
||||
"equal": "같음",
|
||||
"notContains": "포함되어 있지 않음",
|
||||
"notEmpty": "비어 있지 않음",
|
||||
"notEqual": "같지 않음",
|
||||
"starts": "시작함"
|
||||
}
|
||||
},
|
||||
"searchClear": "검색 지우기",
|
||||
"searchDropdown": "검색"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": {
|
||||
"0": "오전",
|
||||
"1": "오후"
|
||||
},
|
||||
"hours": "시",
|
||||
"minutes": "분",
|
||||
"months": {
|
||||
"0": "1월",
|
||||
"1": "2월",
|
||||
"10": "11월",
|
||||
"11": "12월",
|
||||
"2": "3월",
|
||||
"3": "4월",
|
||||
"4": "5월",
|
||||
"5": "6월",
|
||||
"6": "7월",
|
||||
"7": "8월",
|
||||
"8": "9월",
|
||||
"9": "10월"
|
||||
},
|
||||
"next": "다음",
|
||||
"previous": "이전",
|
||||
"seconds": "초",
|
||||
"unknown": "-",
|
||||
"weekdays": {
|
||||
"0": "일",
|
||||
"1": "월",
|
||||
"2": "화",
|
||||
"3": "수",
|
||||
"4": "목",
|
||||
"5": "금",
|
||||
"6": "토"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "닫기",
|
||||
"create": {
|
||||
"button": "추가",
|
||||
"submit": "완료",
|
||||
"title": "항목 추가"
|
||||
},
|
||||
"edit": {
|
||||
"button": "수정",
|
||||
"submit": "완료",
|
||||
"title": "항목 수정"
|
||||
},
|
||||
"error": {
|
||||
"system": "에러가 발생하였습니다 (<a target=\"\\\" rel=\"nofollow\" href=\"\\\">자세한 정보<\/a>)."
|
||||
},
|
||||
"remove": {
|
||||
"button": "삭제",
|
||||
"submit": "완료",
|
||||
"title": "항목 삭제"
|
||||
}
|
||||
},
|
||||
"emptyTable": "데이터가 없습니다",
|
||||
"info": "_START_ - _END_ \/ _TOTAL_",
|
||||
"infoEmpty": "0 - 0 \/ 0",
|
||||
"infoFiltered": "(총 _MAX_ 개)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ",",
|
||||
"lengthLabels": {
|
||||
"-1": "전체"
|
||||
},
|
||||
"lengthMenu": "페이지당 줄수 _MENU_",
|
||||
"loadingRecords": "읽는 중...",
|
||||
"processing": "처리 중...",
|
||||
"search": "검색:",
|
||||
"searchBuilder": {
|
||||
"add": "조건 추가",
|
||||
"button": {
|
||||
"_": "빌더 조회(%d)",
|
||||
"0": "빌더 조회"
|
||||
},
|
||||
"clearAll": "모두 지우기",
|
||||
"condition": "조건",
|
||||
"data": "데이터",
|
||||
"deleteTitle": "필터 규칙을 삭제",
|
||||
"logicAnd": "And",
|
||||
"logicOr": "Or",
|
||||
"title": {
|
||||
"_": "빌더 조회(%d)",
|
||||
"0": "빌더 조회"
|
||||
},
|
||||
"value": "값"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"0": ""
|
||||
},
|
||||
"columns": {
|
||||
"0": ""
|
||||
},
|
||||
"rows": {
|
||||
"0": ""
|
||||
}
|
||||
},
|
||||
"zeroRecords": "검색 결과가 없습니다"
|
||||
}
|
||||
@@ -1,66 +1,203 @@
|
||||
{
|
||||
"lengthMenu": "_MENU_ resultaten weergeven",
|
||||
"zeroRecords": "Geen resultaten gevonden",
|
||||
"infoEmpty": "Geen resultaten om weer te geven",
|
||||
"search": "Zoeken:",
|
||||
"emptyTable": "Geen resultaten aanwezig in de tabel",
|
||||
"infoThousands": ".",
|
||||
"loadingRecords": "Een moment geduld aub - bezig met laden...",
|
||||
"paginate": {
|
||||
"first": "Eerste",
|
||||
"last": "Laatste",
|
||||
"next": "Volgende",
|
||||
"previous": "Vorige"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": activeer om kolom oplopend te sorteren",
|
||||
"sortDescending": ": activeer om kolom aflopend te sorteren"
|
||||
"orderable": "Sorteren inschakelen",
|
||||
"orderableRemove": "Sortering verwijderen",
|
||||
"orderableReverse": "Sortering omkeren",
|
||||
"paginate": {
|
||||
"first": "Eerste",
|
||||
"last": "Laatste",
|
||||
"next": "Volgende",
|
||||
"previous": "Vorige"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Annuleren",
|
||||
"fill": "Vul alle cellen met <i>%d<\/i>",
|
||||
"fillHorizontal": "Vul cellen horizontaal",
|
||||
"fillVertical": "Vul cellen verticaal",
|
||||
"cancel": "Annuleren",
|
||||
"info": "Voorbeeld automatisch aanvullen info"
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Verzameling",
|
||||
"colvis": "Kolom zichtbaarheid",
|
||||
"colvisRestore": "Herstel zichtbaarheid",
|
||||
"copy": "Kopieer",
|
||||
"copyKeys": "Klik ctrl of u2318 + C om de tabeldata to kopiëren naar je klembord. Om te annuleren klik hier of klik op escape.",
|
||||
"copySuccess": {
|
||||
"1": "1 regel naar klembord gekopieerd",
|
||||
"_": "%ds regels naar klembord gekopieerd"
|
||||
"_": "%ds regels naar klembord gekopieerd",
|
||||
"1": "1 regel naar klembord gekopieerd"
|
||||
},
|
||||
"copyTitle": "Kopieer naar klembord",
|
||||
"createState": "Maak staat",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Toon alle regels",
|
||||
"_": "Toon %d regels",
|
||||
"1": "Toon 1 rij"
|
||||
"-1": "Toon alle regels",
|
||||
"1": "Toon 1 regel"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Print",
|
||||
"copyKeys": "Klik ctrl of u2318 + C om de tabeldata to kopiëren naar je klembord. Om te annuleren klik hier of klik op escape.",
|
||||
"collection": "Verzameling",
|
||||
"createState": "Maak staat",
|
||||
"removeAllStates": "Verwijder alle",
|
||||
"removeState": "Verwijder",
|
||||
"renameState": "Hernoem",
|
||||
"savedStates": "Opgeslagen",
|
||||
"updateState": "Bijwerken",
|
||||
"stateRestore": "Preset %d"
|
||||
"stateRestore": "Preset %d",
|
||||
"updateState": "Bijwerken"
|
||||
},
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "Reset zoekactie"
|
||||
},
|
||||
"colVis": "Kolom zichtbaarheid",
|
||||
"colVisDropdown": "Kolom zichtbaarheid",
|
||||
"dropdown": "Meer...",
|
||||
"list": {
|
||||
"all": "Selecteer alles",
|
||||
"empty": "Leeg",
|
||||
"none": "Deselecteer",
|
||||
"search": "Zoeken..."
|
||||
},
|
||||
"orderAddAsc": "Sortering toevoegen (oplopend)",
|
||||
"orderAddDesc": "Sortering toevoegen (aflopend)",
|
||||
"orderAsc": "Oplopend sorteren",
|
||||
"orderClear": "Reset sortering",
|
||||
"orderDesc": "Aflopend sorteren",
|
||||
"orderRemove": "Verwijder van sortering",
|
||||
"reorder": "Kolommen herschikken",
|
||||
"reorderLeft": "Verplaats kolom links",
|
||||
"reorderRight": "Verplaatst kolom rechts",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "Leeg",
|
||||
"equal": "Gelijk aan",
|
||||
"greater": "Na",
|
||||
"less": "Vóór",
|
||||
"notEmpty": "Niet leeg",
|
||||
"notEqual": "Niet gelijk aan"
|
||||
},
|
||||
"number": {
|
||||
"empty": "Leeg",
|
||||
"equal": "Gelijk aan",
|
||||
"greater": "Meer dan",
|
||||
"greaterOrEqual": "Meer of gelijk",
|
||||
"less": "Minder dan",
|
||||
"lessOrEqual": "Minder of gelijk",
|
||||
"notEmpty": "Niet leeg",
|
||||
"notEqual": "Niet gelijk aan"
|
||||
},
|
||||
"text": {
|
||||
"contains": "Bevat",
|
||||
"empty": "Leeg",
|
||||
"ends": "Eindigt",
|
||||
"equal": "Gelijk aan",
|
||||
"notContains": "Bevat niet",
|
||||
"notEmpty": "Niet leeg",
|
||||
"notEqual": "Niet gelijk aan",
|
||||
"starts": "Begint"
|
||||
}
|
||||
},
|
||||
"searchClear": "Reset zoekactie",
|
||||
"searchDropdown": "Zoeken"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": {
|
||||
"0": "vm",
|
||||
"1": "nm"
|
||||
},
|
||||
"hours": "Uur",
|
||||
"minutes": "Minuut",
|
||||
"months": {
|
||||
"0": "Januari",
|
||||
"1": "Februari",
|
||||
"10": "November",
|
||||
"11": "December",
|
||||
"2": "Maart",
|
||||
"3": "April",
|
||||
"4": "Mei",
|
||||
"5": "Juni",
|
||||
"6": "Juli",
|
||||
"7": "Augustus",
|
||||
"8": "September",
|
||||
"9": "Oktober"
|
||||
},
|
||||
"next": "Volgende",
|
||||
"previous": "Vorige",
|
||||
"seconds": "Seconde",
|
||||
"unknown": "Onbekend",
|
||||
"weekdays": {
|
||||
"0": "Zo",
|
||||
"1": "Ma",
|
||||
"2": "Di",
|
||||
"3": "Wo",
|
||||
"4": "Do",
|
||||
"5": "Vr",
|
||||
"6": "Za"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Sluiten",
|
||||
"create": {
|
||||
"button": "Nieuw",
|
||||
"submit": "Toevoegen",
|
||||
"title": "Voeg nieuwe gegevens toe"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Wijzigen",
|
||||
"submit": "Wijzigen",
|
||||
"title": "Wijzig gegevens"
|
||||
},
|
||||
"error": {
|
||||
"system": "Er is een fout gebeurd"
|
||||
},
|
||||
"multi": {
|
||||
"info": "De geselecteerde items bevatten verschillende waarden voor deze invoer. Om alle items voor deze invoer op dezelfde waarde te zetten, klik of tik hier, zoniet zullen de individuele waarden behouden blijven.",
|
||||
"noMulti": "Deze invoer kan individueel gewijzigd worden, maar niet als deel van een groep.",
|
||||
"restore": "Wijzigingen ongedaan maken",
|
||||
"title": "Meerdere waarden"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Verwijderen",
|
||||
"confirm": {
|
||||
"_": "Bent u zeker dat u %d rijen wil verwijderen?",
|
||||
"1": "Bent u zeker dat u 1 rij wil verwijderen?"
|
||||
},
|
||||
"submit": "Verwijder",
|
||||
"title": "Verwijder"
|
||||
}
|
||||
},
|
||||
"emptyTable": "Geen resultaten aanwezig in de tabel",
|
||||
"info": "_START_ tot _END_ van _TOTAL_ resultaten",
|
||||
"infoEmpty": "Geen resultaten om weer te geven",
|
||||
"infoFiltered": " (gefilterd uit _MAX_ resultaten)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ".",
|
||||
"lengthLabels": {
|
||||
"-1": "Alle"
|
||||
},
|
||||
"lengthMenu": "_MENU_ resultaten weergeven",
|
||||
"loadingRecords": "Een moment geduld aub - bezig met laden...",
|
||||
"orderClear": "Reset sortering",
|
||||
"processing": "Verwerken...",
|
||||
"decimal": ",",
|
||||
"search": "Zoeken:",
|
||||
"searchBuilder": {
|
||||
"add": "Toevoegen",
|
||||
"button": {
|
||||
"_": "Zoekwizard (%d)",
|
||||
"0": "Zoekwizard"
|
||||
},
|
||||
"clearAll": "Verwijder alles",
|
||||
"condition": "Conditie",
|
||||
"data": "Data",
|
||||
"deleteTitle": "Verwijder",
|
||||
"value": "Waarde",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "Bevat",
|
||||
"empty": "Leeg",
|
||||
"equals": "Gelijk aan",
|
||||
"not": "Niet",
|
||||
"notEmpty": "Niet leeg",
|
||||
"without": "Zonder"
|
||||
},
|
||||
"date": {
|
||||
"after": "Na",
|
||||
"before": "Voor",
|
||||
@@ -89,129 +226,57 @@
|
||||
"endsWith": "Eindigt met",
|
||||
"equals": "Gelijk aan",
|
||||
"not": "Niet",
|
||||
"notEmpty": "Niet leeg",
|
||||
"startsWith": "Start met",
|
||||
"notContains": "Zonder",
|
||||
"notEndsWith": "Eindigt niet met",
|
||||
"notStartsWith": "Begint niet met"
|
||||
},
|
||||
"array": {
|
||||
"equals": "Gelijk aan",
|
||||
"empty": "Leeg",
|
||||
"contains": "Bevat",
|
||||
"not": "Niet",
|
||||
"notEmpty": "Niet leeg",
|
||||
"without": "Zonder"
|
||||
"notEndsWith": "Eindigt niet met",
|
||||
"notStartsWith": "Begint niet met",
|
||||
"startsWith": "Start met"
|
||||
}
|
||||
},
|
||||
"data": "Data",
|
||||
"deleteTitle": "Verwijder",
|
||||
"leftTitle": "Afwijkende criteria",
|
||||
"logicAnd": "En",
|
||||
"logicOr": "Of",
|
||||
"button": {
|
||||
"0": "Zoekwizard",
|
||||
"_": "Zoekwizard (%d)"
|
||||
},
|
||||
"leftTitle": "Afwijkende criteria",
|
||||
"rightTitle": "Criteria inspringen",
|
||||
"search": "Zoeken",
|
||||
"title": {
|
||||
"0": "Zoekwizard",
|
||||
"_": "Zoekwizard (%d) "
|
||||
}
|
||||
"_": "Zoekwizard (%d) ",
|
||||
"0": "Zoekwizard"
|
||||
},
|
||||
"value": "Waarde"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Alles leegmaken",
|
||||
"collapse": {
|
||||
"0": "Zoekpanelen",
|
||||
"_": "Zoekpanelen (%d)"
|
||||
"_": "Zoekpanelen (%d)",
|
||||
"0": "Zoekpanelen"
|
||||
},
|
||||
"collapseMessage": "Instorten",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyMessage": "<em>Leeg<\/em>",
|
||||
"emptyPanes": "Geen zoekpanelen",
|
||||
"loadMessage": "Zoekpanelen laden...",
|
||||
"title": "%d filters actief",
|
||||
"showMessage": "Alles weergeven",
|
||||
"collapseMessage": "Instorten"
|
||||
"title": "%d filters actief"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"1": "1 cel geselecteerd",
|
||||
"_": "%d cellen geselecteerd"
|
||||
"_": "%d cellen geselecteerd",
|
||||
"0": "",
|
||||
"1": "1 cel geselecteerd"
|
||||
},
|
||||
"columns": {
|
||||
"1": "1 kolom geselecteerd",
|
||||
"_": "%d kolommen geselecteerd"
|
||||
"_": "%d kolommen geselecteerd",
|
||||
"0": "",
|
||||
"1": "1 kolom geselecteerd"
|
||||
},
|
||||
"rows": {
|
||||
"1": "1 rij geselecteerd",
|
||||
"_": "%d rijen geselecteerd"
|
||||
}
|
||||
},
|
||||
"thousands": ".",
|
||||
"info": "_START_ tot _END_ van _TOTAL_ resultaten",
|
||||
"infoFiltered": " (gefilterd uit _MAX_ resultaten)",
|
||||
"datetime": {
|
||||
"previous": "Vorige",
|
||||
"next": "Volgende",
|
||||
"hours": "Uur",
|
||||
"minutes": "Minuut",
|
||||
"seconds": "Seconde",
|
||||
"unknown": "Onbekend",
|
||||
"amPm": [
|
||||
"vm",
|
||||
"nm"
|
||||
],
|
||||
"weekdays": [
|
||||
"Zo",
|
||||
"Ma",
|
||||
"Di",
|
||||
"Wo",
|
||||
"Do",
|
||||
"Vr",
|
||||
"Za"
|
||||
],
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Maart",
|
||||
"April",
|
||||
"Mei",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Augustus",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December"
|
||||
]
|
||||
},
|
||||
"editor": {
|
||||
"close": "Sluiten",
|
||||
"create": {
|
||||
"button": "Nieuw",
|
||||
"title": "Voeg nieuwe gegevens toe",
|
||||
"submit": "Toevoegen"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Wijzigen",
|
||||
"title": "Wijzig gegevens",
|
||||
"submit": "Wijzigen"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Verwijderen",
|
||||
"title": "Verwijder",
|
||||
"submit": "Verwijder",
|
||||
"confirm": {
|
||||
"_": "Bent u zeker dat u %d rijen wil verwijderen?",
|
||||
"1": "Bent u zeker dat u 1 rij wil verwijderen?"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"system": "Er is een fout gebeurd"
|
||||
},
|
||||
"multi": {
|
||||
"title": "Meerdere waarden",
|
||||
"info": "De geselecteerde items bevatten verschillende waarden voor deze invoer. Om alle items voor deze invoer op dezelfde waarde te zetten, klik of tik hier, zoniet zullen de individuele waarden behouden blijven.",
|
||||
"restore": "Wijzigingen ongedaan maken",
|
||||
"noMulti": "Deze invoer kan individueel gewijzigd worden, maar niet als deel van een groep."
|
||||
"_": "%d rijen geselecteerd",
|
||||
"0": "",
|
||||
"1": "1 rij geselecteerd"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
@@ -242,5 +307,7 @@
|
||||
"renameButton": "Hernoem",
|
||||
"renameLabel": "Nieuwe naam voor staat",
|
||||
"renameTitle": "Hernoem staat"
|
||||
}
|
||||
},
|
||||
"thousands": ".",
|
||||
"zeroRecords": "Geen resultaten gevonden"
|
||||
}
|
||||
@@ -1,27 +1,21 @@
|
||||
{
|
||||
"processing": "Przetwarzanie...",
|
||||
"search": "Szukaj:",
|
||||
"lengthMenu": "Pokaż _MENU_ pozycji",
|
||||
"info": "Pozycje od _START_ do _END_ z _TOTAL_ łącznie",
|
||||
"infoEmpty": "Pozycji 0 z 0 dostępnych",
|
||||
"infoFiltered": "(filtrowanie spośród _MAX_ dostępnych pozycji)",
|
||||
"loadingRecords": "Wczytywanie...",
|
||||
"zeroRecords": "Nie znaleziono pasujących pozycji",
|
||||
"paginate": {
|
||||
"first": "Pierwsza",
|
||||
"previous": "Poprzednia",
|
||||
"next": "Następna",
|
||||
"last": "Ostatnia"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": aktywuj, by posortować kolumnę rosnąco",
|
||||
"sortDescending": ": aktywuj, by posortować kolumnę malejąco"
|
||||
"orderable": "Aktywuj sortowanie",
|
||||
"orderableRemove": "Aktywuj, aby usunąć sortowanie",
|
||||
"orderableReverse": "Aktywuj, aby odwrócić sortowanie",
|
||||
"paginate": {
|
||||
"first": "Pierwsza",
|
||||
"last": "Ostatnia",
|
||||
"next": "Następna",
|
||||
"previous": "Poprzednia"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Anuluj",
|
||||
"fill": "Wypełnij wszystkie komórki <i>%d<\/i>",
|
||||
"fillHorizontal": "Wypełnij komórki w poziomie",
|
||||
"fillVertical": "Wypełnij komórki w pionie"
|
||||
"fillVertical": "Wypełnij komórki w pionie",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Zbiór <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
@@ -30,19 +24,20 @@
|
||||
"copy": "Kopiuj",
|
||||
"copyKeys": "Naciśnij Ctrl lub u2318 + C, aby skopiować dane tabeli do schowka systemowego. <br \/> <br \/> Aby anulować, kliknij tę wiadomość lub naciśnij Esc.",
|
||||
"copySuccess": {
|
||||
"1": "Skopiowano 1 wiersz do schowka",
|
||||
"_": "Skopiowano %d wierszy do schowka"
|
||||
"_": "Skopiowano %d wierszy do schowka",
|
||||
"1": "Skopiowano 1 wiersz do schowka"
|
||||
},
|
||||
"copyTitle": "Skopiuj do schowka",
|
||||
"createState": "Utwórz stan",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "Pokaż %d wierszy",
|
||||
"-1": "Pokaż wszystkie wiersze",
|
||||
"_": "Pokaż %d wierszy"
|
||||
"1": "Pokaż 1 wiersz"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Drukuj",
|
||||
"createState": "Utwórz stan",
|
||||
"removeAllStates": "Usuń wszystkie stany",
|
||||
"removeState": "Usuń",
|
||||
"renameState": "Zmień nazwę",
|
||||
@@ -50,16 +45,150 @@
|
||||
"stateRestore": "Stan %d",
|
||||
"updateState": "Aktualizuj"
|
||||
},
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "Wyczyść wyszukiwanie"
|
||||
},
|
||||
"colVis": "Widoczność kolumn",
|
||||
"colVisDropdown": "Widoczność kolumn",
|
||||
"dropdown": "Więcej...",
|
||||
"list": {
|
||||
"all": "Zaznacz wszystko",
|
||||
"empty": "Puste",
|
||||
"none": "Odznacz wszystko",
|
||||
"search": "Szukaj..."
|
||||
},
|
||||
"orderAddAsc": "Dodaj sortowanie rosnąco",
|
||||
"orderAddDesc": "Dodaj sortowanie malejąco",
|
||||
"orderAsc": "Sortowanie rosnące",
|
||||
"orderClear": "Wyczyść sortowanie",
|
||||
"orderDesc": "Sortowanie malejące",
|
||||
"orderRemove": "Usuń z sortowania",
|
||||
"reorder": "Przestaw kolumny",
|
||||
"reorderLeft": "Przesuń kolumnę w lewo",
|
||||
"reorderRight": "Przesuń kolumnę w prawo",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "Puste",
|
||||
"equal": "Równe",
|
||||
"greater": "Po",
|
||||
"less": "Przed",
|
||||
"notEmpty": "Niepuste",
|
||||
"notEqual": "Różne od"
|
||||
},
|
||||
"number": {
|
||||
"empty": "Puste",
|
||||
"equal": "Równe",
|
||||
"greater": "Większe niż",
|
||||
"greaterOrEqual": "Większe lub równe",
|
||||
"less": "Mniejsze niż",
|
||||
"lessOrEqual": "Mniejsze lub równe",
|
||||
"notEmpty": "Niepuste",
|
||||
"notEqual": "Różne od"
|
||||
},
|
||||
"text": {
|
||||
"contains": "Zawiera",
|
||||
"empty": "Puste",
|
||||
"ends": "Kończy się na",
|
||||
"equal": "Równe",
|
||||
"notContains": "Nie zawiera",
|
||||
"notEmpty": "Niepuste",
|
||||
"notEqual": "Różne od",
|
||||
"starts": "Zaczyna się od"
|
||||
}
|
||||
},
|
||||
"searchClear": "Wyczyść wyszukiwanie",
|
||||
"searchDropdown": "Wyszukaj"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": {
|
||||
"0": "am",
|
||||
"1": "pm"
|
||||
},
|
||||
"hours": "Godzina",
|
||||
"minutes": "Minuta",
|
||||
"months": {
|
||||
"0": "Styczeń",
|
||||
"1": "Luty",
|
||||
"10": "Listopad",
|
||||
"11": "Grudzień",
|
||||
"2": "Marzec",
|
||||
"3": "Kwiecień",
|
||||
"4": "Maj",
|
||||
"5": "Czerwiec",
|
||||
"6": "Lipiec",
|
||||
"7": "Sierpień",
|
||||
"8": "Wrzesień",
|
||||
"9": "Październik"
|
||||
},
|
||||
"next": "Następne",
|
||||
"previous": "Poprzednie",
|
||||
"seconds": "Sekunda",
|
||||
"unknown": "nieznana",
|
||||
"weekdays": {
|
||||
"0": "Nd",
|
||||
"1": "Pn",
|
||||
"2": "Wt",
|
||||
"3": "Śr",
|
||||
"4": "Czw",
|
||||
"5": "Pt",
|
||||
"6": "So"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Zamknij",
|
||||
"create": {
|
||||
"button": "Dodaj",
|
||||
"submit": "Dodaj",
|
||||
"title": "Dodawanie nowego wpisu"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Edytuj",
|
||||
"submit": "Aktualizuj",
|
||||
"title": "Aktualizacja wpisu"
|
||||
},
|
||||
"error": {
|
||||
"system": "Nastąpił błąd systemu (<a target=\"\\\" rel=\"\\ nofollow\" href=\"\\\">Więcej informacji<\\\/a>).<\/a>"
|
||||
},
|
||||
"multi": {
|
||||
"info": "Wybrane pole zawiera wiele elementów z różnymi wartościami. Aby zmienić ich wartość kliknij w nie, inaczej zachowane zostaną ich wartości domyślne.",
|
||||
"noMulti": "Ta wartość może być edytowana oddzielnie - niezależnie od grupy.",
|
||||
"restore": "Cofnij zmiany",
|
||||
"title": "Pole z wieloma wartościami"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Usuń",
|
||||
"confirm": {
|
||||
"_": "Czy na pewno chcesz usunąć %d rzędów?",
|
||||
"1": "Czy na pewno chcesz usunąć 1 rząd?"
|
||||
},
|
||||
"submit": "Usuń",
|
||||
"title": "Usuwanie"
|
||||
}
|
||||
},
|
||||
"emptyTable": "Brak danych w tabeli",
|
||||
"info": "Pozycje od _START_ do _END_ z _TOTAL_ łącznie",
|
||||
"infoEmpty": "Pozycji 0 z 0 dostępnych",
|
||||
"infoFiltered": "(filtrowanie spośród _MAX_ dostępnych pozycji)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": " ",
|
||||
"lengthLabels": {
|
||||
"-1": "Wszystko"
|
||||
},
|
||||
"lengthMenu": "Pokaż _MENU_ pozycji",
|
||||
"loadingRecords": "Wczytywanie...",
|
||||
"orderClear": "Wyczyść sortowanie",
|
||||
"processing": "Przetwarzanie...",
|
||||
"search": "Szukaj:",
|
||||
"searchBuilder": {
|
||||
"add": "Dodaj warunek",
|
||||
"clearAll": "Wyczyść wszystko",
|
||||
"condition": "Warunek",
|
||||
"data": "Dane",
|
||||
"button": {
|
||||
"_": "Aktywne zapytania",
|
||||
"0": "Budowanie zapytania"
|
||||
},
|
||||
"clearAll": "Wyczyść wszystko",
|
||||
"condition": "Warunek",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "Zawiera",
|
||||
@@ -97,112 +226,57 @@
|
||||
"endsWith": "Kończy się na",
|
||||
"equals": "Równa się",
|
||||
"not": "Nie",
|
||||
"notEmpty": "Nie pusty",
|
||||
"startsWith": "Zaczyna się od",
|
||||
"notContains": "Nie zawiera",
|
||||
"notEmpty": "Nie pusty",
|
||||
"notEndsWith": "Nie kończy się na",
|
||||
"notStartsWith": "Nie zaczyna się od",
|
||||
"notEndsWith": "Nie kończy się na"
|
||||
"startsWith": "Zaczyna się od"
|
||||
}
|
||||
},
|
||||
"data": "Dane",
|
||||
"deleteTitle": "Czyszczenie",
|
||||
"leftTitle": "Lewy",
|
||||
"logicAnd": "I",
|
||||
"logicOr": "Lub",
|
||||
"rightTitle": "Prawy",
|
||||
"search": "Szukaj",
|
||||
"title": {
|
||||
"_": "Aktywne zapytania",
|
||||
"0": "Budowanie zapytania"
|
||||
},
|
||||
"value": "Wartość"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": [
|
||||
"am",
|
||||
"pm"
|
||||
],
|
||||
"hours": "Godzina",
|
||||
"minutes": "Minuta",
|
||||
"next": "Następne",
|
||||
"previous": "Poprzednie",
|
||||
"seconds": "Sekunda",
|
||||
"unknown": "nieznana",
|
||||
"months": {
|
||||
"0": "Styczeń",
|
||||
"1": "Luty",
|
||||
"10": "Listopad",
|
||||
"11": "Grudzień",
|
||||
"2": "Marzec",
|
||||
"3": "Kwiecień",
|
||||
"4": "Maj",
|
||||
"5": "Czerwiec",
|
||||
"6": "Lipiec",
|
||||
"7": "Sierpień",
|
||||
"8": "Wrzesień",
|
||||
"9": "Październik"
|
||||
},
|
||||
"weekdays": [
|
||||
"Nd",
|
||||
"Pn",
|
||||
"Wt",
|
||||
"Śr",
|
||||
"Czw",
|
||||
"Pt",
|
||||
"So"
|
||||
]
|
||||
},
|
||||
"editor": {
|
||||
"close": "Zamknij",
|
||||
"create": {
|
||||
"button": "Dodaj",
|
||||
"submit": "Dodaj",
|
||||
"title": "Dodawanie nowego wpisu"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Edytuj",
|
||||
"submit": "Aktualizuj",
|
||||
"title": "Aktualizacja wpisu"
|
||||
},
|
||||
"error": {
|
||||
"system": "Nastąpił błąd systemu (<a target=\"\\\" rel=\"\\ nofollow\" href=\"\\\">Więcej informacji<\\\/a>).<\/a>"
|
||||
},
|
||||
"multi": {
|
||||
"info": "Wybrane pole zawiera wiele elementów z różnymi wartościami. Aby zmienić ich wartość kliknij w nie, inaczej zachowane zostaną ich wartości domyślne.",
|
||||
"noMulti": "Ta wartość może być edytowana oddzielnie - niezależnie od grupy.",
|
||||
"restore": "Cofnij zmiany",
|
||||
"title": "Pole z wieloma wartościami"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Usuń",
|
||||
"confirm": {
|
||||
"_": "Czy na pewno chcesz usunąć %d rzędów?",
|
||||
"1": "Czy na pewno chcesz usunąć 1 rząd?"
|
||||
},
|
||||
"submit": "Usuń",
|
||||
"title": "Usuwanie"
|
||||
}
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Wyczyść wszystkie",
|
||||
"collapse": {
|
||||
"_": "Aktywne grupowania (%d)",
|
||||
"0": "Grupowanie"
|
||||
},
|
||||
"collapseMessage": "Rozwiń wszystko",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyMessage": "<em>brak danych<\/em>",
|
||||
"emptyPanes": "Brak paneli wyszukań",
|
||||
"loadMessage": "Ładuję panele wyszukań",
|
||||
"title": "Aktywne filtry",
|
||||
"showMessage": "Pokaż wszystko",
|
||||
"collapseMessage": "Rozwiń wszystko"
|
||||
"title": "Aktywne filtry"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "zaznaczono %d komórek",
|
||||
"0": "",
|
||||
"1": "zaznaczono %d komórkę"
|
||||
},
|
||||
"columns": {
|
||||
"_": "zaznaczono %d kolumn",
|
||||
"0": "",
|
||||
"1": "zaznaczono %d kolumnę"
|
||||
},
|
||||
"rows": {
|
||||
"_": "Zaznaczono %d wierszy",
|
||||
"0": "",
|
||||
"1": "Zaznaczono 1 wiersz"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
@@ -234,7 +308,6 @@
|
||||
"renameLabel": "Nowa nazwa dla %s:",
|
||||
"renameTitle": "Zmień nazwę stanu"
|
||||
},
|
||||
"decimal": ",",
|
||||
"infoThousands": " ",
|
||||
"thousands": " "
|
||||
"thousands": " ",
|
||||
"zeroRecords": "Nie znaleziono pasujących pozycji"
|
||||
}
|
||||
@@ -1,163 +1,53 @@
|
||||
{
|
||||
"processing": "Подождите...",
|
||||
"search": "Поиск:",
|
||||
"lengthMenu": "Показать _MENU_ записей",
|
||||
"info": "Записи с _START_ до _END_ из _TOTAL_ записей",
|
||||
"infoEmpty": "Записи с 0 до 0 из 0 записей",
|
||||
"infoFiltered": "(отфильтровано из _MAX_ записей)",
|
||||
"loadingRecords": "Загрузка записей...",
|
||||
"zeroRecords": "Записи отсутствуют.",
|
||||
"emptyTable": "В таблице отсутствуют данные",
|
||||
"paginate": {
|
||||
"first": "Первая",
|
||||
"previous": "Предыдущая",
|
||||
"next": "Следующая",
|
||||
"last": "Последняя"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": активировать для сортировки столбца по возрастанию",
|
||||
"sortDescending": ": активировать для сортировки столбца по убыванию"
|
||||
},
|
||||
"select": {
|
||||
"rows": {
|
||||
"_": "Выбрано записей: %d",
|
||||
"1": "Выбрана одна запись"
|
||||
},
|
||||
"cells": {
|
||||
"_": "Выбрано %d ячеек",
|
||||
"1": "Выбрана 1 ячейка "
|
||||
},
|
||||
"columns": {
|
||||
"1": "Выбран 1 столбец ",
|
||||
"_": "Выбрано %d столбцов "
|
||||
"paginate": {
|
||||
"first": "Первая",
|
||||
"last": "Последняя",
|
||||
"next": "Следующая",
|
||||
"previous": "Предыдущая"
|
||||
}
|
||||
},
|
||||
"searchBuilder": {
|
||||
"conditions": {
|
||||
"string": {
|
||||
"startsWith": "Начинается с",
|
||||
"contains": "Содержит",
|
||||
"empty": "Пусто",
|
||||
"endsWith": "Заканчивается на",
|
||||
"equals": "Равно",
|
||||
"not": "Не",
|
||||
"notEmpty": "Не пусто",
|
||||
"notContains": "Не содержит",
|
||||
"notStartsWith": "Не начинается на",
|
||||
"notEndsWith": "Не заканчивается на"
|
||||
},
|
||||
"date": {
|
||||
"after": "После",
|
||||
"before": "До",
|
||||
"between": "Между",
|
||||
"empty": "Пусто",
|
||||
"equals": "Равно",
|
||||
"not": "Не",
|
||||
"notBetween": "Не между",
|
||||
"notEmpty": "Не пусто"
|
||||
},
|
||||
"number": {
|
||||
"empty": "Пусто",
|
||||
"equals": "Равно",
|
||||
"gt": "Больше чем",
|
||||
"gte": "Больше, чем равно",
|
||||
"lt": "Меньше чем",
|
||||
"lte": "Меньше, чем равно",
|
||||
"not": "Не",
|
||||
"notEmpty": "Не пусто",
|
||||
"between": "Между",
|
||||
"notBetween": "Не между ними"
|
||||
},
|
||||
"array": {
|
||||
"equals": "Равно",
|
||||
"empty": "Пусто",
|
||||
"contains": "Содержит",
|
||||
"not": "Не равно",
|
||||
"notEmpty": "Не пусто",
|
||||
"without": "Без"
|
||||
}
|
||||
},
|
||||
"data": "Данные",
|
||||
"deleteTitle": "Удалить условие фильтрации",
|
||||
"logicAnd": "И",
|
||||
"logicOr": "Или",
|
||||
"title": {
|
||||
"0": "Конструктор поиска",
|
||||
"_": "Конструктор поиска (%d)"
|
||||
},
|
||||
"value": "Значение",
|
||||
"add": "Добавить условие",
|
||||
"button": {
|
||||
"0": "Конструктор поиска",
|
||||
"_": "Конструктор поиска (%d)"
|
||||
},
|
||||
"clearAll": "Очистить всё",
|
||||
"condition": "Условие",
|
||||
"leftTitle": "Превосходные критерии",
|
||||
"rightTitle": "Критерии отступа"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Очистить всё",
|
||||
"collapse": {
|
||||
"0": "Панели поиска",
|
||||
"_": "Панели поиска (%d)"
|
||||
},
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Нет панелей поиска",
|
||||
"loadMessage": "Загрузка панелей поиска",
|
||||
"title": "Фильтры активны - %d",
|
||||
"showMessage": "Показать все",
|
||||
"collapseMessage": "Скрыть все"
|
||||
},
|
||||
"buttons": {
|
||||
"pdf": "PDF",
|
||||
"print": "Печать",
|
||||
"collection": "Коллекция <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "Видимость столбцов",
|
||||
"colvisRestore": "Восстановить видимость",
|
||||
"copy": "Копировать",
|
||||
"copyTitle": "Скопировать в буфер обмена",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Показать все строки",
|
||||
"_": "Показать %d строк",
|
||||
"1": "Показать 1 строку"
|
||||
},
|
||||
"removeState": "Удалить",
|
||||
"renameState": "Переименовать",
|
||||
"copySuccess": {
|
||||
"1": "Строка скопирована в буфер обмена",
|
||||
"_": "Скопировано %d строк в буфер обмена"
|
||||
},
|
||||
"createState": "Создать состояние",
|
||||
"removeAllStates": "Удалить все состояния",
|
||||
"savedStates": "Сохраненные состояния",
|
||||
"stateRestore": "Состояние %d",
|
||||
"updateState": "Обновить",
|
||||
"copyKeys": "Нажмите ctrl или u2318 + C, чтобы скопировать данные таблицы в буфер обмена. Для отмены, щелкните по сообщению или нажмите escape."
|
||||
},
|
||||
"decimal": ".",
|
||||
"infoThousands": ",",
|
||||
"autoFill": {
|
||||
"cancel": "Отменить",
|
||||
"fill": "Заполнить все ячейки <i>%d<i><\/i><\/i>",
|
||||
"fillHorizontal": "Заполнить ячейки по горизонтали",
|
||||
"fillVertical": "Заполнить ячейки по вертикали",
|
||||
"info": "Информация"
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Коллекция <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "Видимость столбцов",
|
||||
"colvisRestore": "Восстановить видимость",
|
||||
"copy": "Копировать",
|
||||
"copyKeys": "Нажмите ctrl или u2318 + C, чтобы скопировать данные таблицы в буфер обмена. Для отмены, щелкните по сообщению или нажмите escape.",
|
||||
"copySuccess": {
|
||||
"_": "Скопировано %d строк в буфер обмена",
|
||||
"1": "Строка скопирована в буфер обмена"
|
||||
},
|
||||
"copyTitle": "Скопировать в буфер обмена",
|
||||
"createState": "Создать состояние",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "Показать %d строк",
|
||||
"-1": "Показать все строки"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Печать",
|
||||
"removeAllStates": "Удалить все состояния",
|
||||
"removeState": "Удалить",
|
||||
"renameState": "Переименовать",
|
||||
"savedStates": "Сохраненные состояния",
|
||||
"stateRestore": "Состояние %d",
|
||||
"updateState": "Обновить"
|
||||
},
|
||||
"datetime": {
|
||||
"previous": "Предыдущий",
|
||||
"next": "Следующий",
|
||||
"amPm": {
|
||||
"0": "AM",
|
||||
"1": "PM"
|
||||
},
|
||||
"hours": "Часы",
|
||||
"minutes": "Минуты",
|
||||
"seconds": "Секунды",
|
||||
"unknown": "Неизвестный",
|
||||
"amPm": [
|
||||
"AM",
|
||||
"PM"
|
||||
],
|
||||
"months": {
|
||||
"0": "Январь",
|
||||
"1": "Февраль",
|
||||
@@ -172,52 +62,161 @@
|
||||
"8": "Сентябрь",
|
||||
"9": "Октябрь"
|
||||
},
|
||||
"weekdays": [
|
||||
"Вс",
|
||||
"Пн",
|
||||
"Вт",
|
||||
"Ср",
|
||||
"Чт",
|
||||
"Пт",
|
||||
"Сб"
|
||||
]
|
||||
"next": "Следующий",
|
||||
"previous": "Предыдущий",
|
||||
"seconds": "Секунды",
|
||||
"unknown": "Неизвестный",
|
||||
"weekdays": {
|
||||
"0": "Вс",
|
||||
"1": "Пн",
|
||||
"2": "Вт",
|
||||
"3": "Ср",
|
||||
"4": "Чт",
|
||||
"5": "Пт",
|
||||
"6": "Сб"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Закрыть",
|
||||
"create": {
|
||||
"button": "Новый",
|
||||
"title": "Создать новую запись",
|
||||
"submit": "Создать"
|
||||
"submit": "Создать",
|
||||
"title": "Создать новую запись"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Изменить",
|
||||
"title": "Изменить запись",
|
||||
"submit": "Изменить"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Удалить",
|
||||
"title": "Удалить",
|
||||
"submit": "Удалить",
|
||||
"confirm": {
|
||||
"_": "Вы точно хотите удалить %d строк?",
|
||||
"1": "Вы точно хотите удалить 1 строку?"
|
||||
}
|
||||
},
|
||||
"multi": {
|
||||
"restore": "Отменить изменения",
|
||||
"title": "Несколько значений",
|
||||
"info": "Выбранные элементы содержат разные значения для этого входа. Чтобы отредактировать и установить для всех элементов этого ввода одинаковое значение, нажмите или коснитесь здесь, в противном случае они сохранят свои индивидуальные значения.",
|
||||
"noMulti": "Это поле должно редактироваться отдельно, а не как часть группы"
|
||||
"submit": "Изменить",
|
||||
"title": "Изменить запись"
|
||||
},
|
||||
"error": {
|
||||
"system": "Возникла системная ошибка (<a target=\"\\\" rel=\"nofollow\" href=\"\\\">Подробнее<\/a>)."
|
||||
},
|
||||
"multi": {
|
||||
"info": "Выбранные элементы содержат разные значения для этого входа. Чтобы отредактировать и установить для всех элементов этого ввода одинаковое значение, нажмите или коснитесь здесь, в противном случае они сохранят свои индивидуальные значения.",
|
||||
"noMulti": "Это поле должно редактироваться отдельно, а не как часть группы",
|
||||
"restore": "Отменить изменения",
|
||||
"title": "Несколько значений"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Удалить",
|
||||
"confirm": {
|
||||
"_": "Вы точно хотите удалить %d строк?",
|
||||
"1": "Вы точно хотите удалить 1 строку?"
|
||||
},
|
||||
"submit": "Удалить",
|
||||
"title": "Удалить"
|
||||
}
|
||||
},
|
||||
"emptyTable": "В таблице отсутствуют данные",
|
||||
"info": "Записи с _START_ до _END_ из _TOTAL_ записей",
|
||||
"infoEmpty": "Записи с 0 до 0 из 0 записей",
|
||||
"infoFiltered": "(отфильтровано из _MAX_ записей)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ",",
|
||||
"lengthMenu": "Показать _MENU_ записей",
|
||||
"loadingRecords": "Загрузка записей...",
|
||||
"processing": "Подождите...",
|
||||
"search": "Поиск:",
|
||||
"searchBuilder": {
|
||||
"add": "Добавить условие",
|
||||
"button": {
|
||||
"_": "Конструктор поиска (%d)",
|
||||
"0": "Конструктор поиска"
|
||||
},
|
||||
"clearAll": "Очистить всё",
|
||||
"condition": "Условие",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "Содержит",
|
||||
"empty": "Пусто",
|
||||
"equals": "Равно",
|
||||
"not": "Не равно",
|
||||
"notEmpty": "Не пусто",
|
||||
"without": "Без"
|
||||
},
|
||||
"date": {
|
||||
"after": "После",
|
||||
"before": "До",
|
||||
"between": "Между",
|
||||
"empty": "Пусто",
|
||||
"equals": "Равно",
|
||||
"not": "Не",
|
||||
"notBetween": "Не между",
|
||||
"notEmpty": "Не пусто"
|
||||
},
|
||||
"number": {
|
||||
"between": "Между",
|
||||
"empty": "Пусто",
|
||||
"equals": "Равно",
|
||||
"gt": "Больше чем",
|
||||
"gte": "Больше, чем равно",
|
||||
"lt": "Меньше чем",
|
||||
"lte": "Меньше, чем равно",
|
||||
"not": "Не",
|
||||
"notBetween": "Не между ними",
|
||||
"notEmpty": "Не пусто"
|
||||
},
|
||||
"string": {
|
||||
"contains": "Содержит",
|
||||
"empty": "Пусто",
|
||||
"endsWith": "Заканчивается на",
|
||||
"equals": "Равно",
|
||||
"not": "Не",
|
||||
"notContains": "Не содержит",
|
||||
"notEmpty": "Не пусто",
|
||||
"notEndsWith": "Не заканчивается на",
|
||||
"notStartsWith": "Не начинается на",
|
||||
"startsWith": "Начинается с"
|
||||
}
|
||||
},
|
||||
"data": "Данные",
|
||||
"deleteTitle": "Удалить условие фильтрации",
|
||||
"leftTitle": "Превосходные критерии",
|
||||
"logicAnd": "И",
|
||||
"logicOr": "Или",
|
||||
"rightTitle": "Критерии отступа",
|
||||
"title": {
|
||||
"_": "Конструктор поиска (%d)",
|
||||
"0": "Конструктор поиска"
|
||||
},
|
||||
"value": "Значение"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Очистить всё",
|
||||
"collapse": {
|
||||
"_": "Панели поиска (%d)",
|
||||
"0": "Панели поиска"
|
||||
},
|
||||
"collapseMessage": "Скрыть все",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "Нет панелей поиска",
|
||||
"loadMessage": "Загрузка панелей поиска",
|
||||
"showMessage": "Показать все",
|
||||
"title": "Фильтры активны - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "Выбрано %d ячеек",
|
||||
"0": "",
|
||||
"1": "Выбрана 1 ячейка "
|
||||
},
|
||||
"columns": {
|
||||
"_": "Выбрано %d столбцов ",
|
||||
"0": "",
|
||||
"1": "Выбран 1 столбец "
|
||||
},
|
||||
"rows": {
|
||||
"_": "Выбрано записей: %d",
|
||||
"0": "",
|
||||
"1": "Выбрана одна запись"
|
||||
}
|
||||
},
|
||||
"searchPlaceholder": "Что ищете?",
|
||||
"stateRestore": {
|
||||
"creationModal": {
|
||||
"button": "Создать",
|
||||
"search": "Поиск",
|
||||
"columns": {
|
||||
"search": "Поиск по столбцам",
|
||||
"visible": "Видимость столбцов"
|
||||
@@ -226,22 +225,24 @@
|
||||
"order": "Сортировка",
|
||||
"paging": "Страницы",
|
||||
"scroller": "Позиция прокрутки",
|
||||
"search": "Поиск",
|
||||
"searchBuilder": "Редактор поиска",
|
||||
"select": "Выделение",
|
||||
"title": "Создать новое состояние",
|
||||
"toggleLabel": "Включает:"
|
||||
},
|
||||
"removeJoiner": "и",
|
||||
"removeSubmit": "Удалить",
|
||||
"renameButton": "Переименовать",
|
||||
"duplicateError": "Состояние с таким именем уже существует.",
|
||||
"emptyError": "Имя не может быть пустым.",
|
||||
"emptyStates": "Нет сохраненных состояний",
|
||||
"removeConfirm": "Вы уверены, что хотите удалить %s?",
|
||||
"removeError": "Не удалось удалить состояние.",
|
||||
"removeJoiner": "и",
|
||||
"removeSubmit": "Удалить",
|
||||
"removeTitle": "Удалить состояние",
|
||||
"renameButton": "Переименовать",
|
||||
"renameLabel": "Новое имя для %s:",
|
||||
"renameTitle": "Переименовать состояние"
|
||||
},
|
||||
"thousands": " "
|
||||
"thousands": " ",
|
||||
"zeroRecords": "Записи отсутствуют."
|
||||
}
|
||||
@@ -0,0 +1,313 @@
|
||||
{
|
||||
"aria": {
|
||||
"orderable": "Активувати сортування",
|
||||
"orderableRemove": "Вимкнути сортування",
|
||||
"orderableReverse": "Зворотне сортування",
|
||||
"paginate": {
|
||||
"first": "Перша",
|
||||
"last": "Остання",
|
||||
"next": "Наступна",
|
||||
"previous": "Попередня"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "Відміна",
|
||||
"fill": "Заповнити всі клітинки з <i>%d<\/i>",
|
||||
"fillHorizontal": "Заповнити клітинки горизонтально",
|
||||
"fillVertical": "Заповнити клітинки вертикально",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Список <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
|
||||
"colvis": "Видимість колонки",
|
||||
"colvisRestore": "Відновити видимість",
|
||||
"copy": "Копіювати",
|
||||
"copyKeys": "Нажміть ctrl або u2318 + C щоб копіювати інформацію з таблиці до вашого буферу обміну.<br \/><br \/>Щоб відмінити нажміть на це повідомлення або Esc",
|
||||
"copySuccess": {
|
||||
"_": "Скопійовано %d рядків в буфер обміну",
|
||||
"1": "Скопійовано 1 рядок в буфер обміну"
|
||||
},
|
||||
"copyTitle": "Копіювати в буфер обміну",
|
||||
"createState": "Створити стан",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "Показати %d рядків",
|
||||
"-1": "Показати усі рядки",
|
||||
"1": "Показати 1 рядок"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "Друкувати",
|
||||
"removeAllStates": "Видалити всі стани",
|
||||
"removeState": "Видалити",
|
||||
"renameState": "Перейменувати",
|
||||
"savedStates": "Збережені стани",
|
||||
"stateRestore": "Стан %d",
|
||||
"updateState": "Оновити"
|
||||
},
|
||||
"columnControl": {
|
||||
"buttons": {
|
||||
"searchClear": "Очистити пошук"
|
||||
},
|
||||
"colVis": "Видимість колонки",
|
||||
"colVisDropdown": "Видимість випадаючого списку",
|
||||
"dropdown": "Більше...",
|
||||
"list": {
|
||||
"all": "Вибрати все",
|
||||
"empty": "Пусто",
|
||||
"none": "Скасувати вибір усіх",
|
||||
"search": "Пошук..."
|
||||
},
|
||||
"orderAddAsc": "Додати сортування за зростанням",
|
||||
"orderAddDesc": "Додати сортування за спаданням",
|
||||
"orderAsc": "Сортування за зростанням",
|
||||
"orderClear": "Очистити сортування",
|
||||
"orderDesc": "Сортування за спаданням",
|
||||
"orderRemove": "Очистити сортування",
|
||||
"reorder": "Переупорядкувати стовпці",
|
||||
"reorderLeft": "Зсунути стовпець ліворуч",
|
||||
"reorderRight": "Зсунути стовпець праворуч",
|
||||
"search": {
|
||||
"datetime": {
|
||||
"empty": "Пусто",
|
||||
"equal": "Дорівнює",
|
||||
"greater": "Після",
|
||||
"less": "До",
|
||||
"notEmpty": "Не порожньо",
|
||||
"notEqual": "Не дорівнює"
|
||||
},
|
||||
"number": {
|
||||
"empty": "Пусто",
|
||||
"equal": "Дорівнює",
|
||||
"greater": "Більше ніж",
|
||||
"greaterOrEqual": "Більше або дорівнює",
|
||||
"less": "Менше ніж",
|
||||
"lessOrEqual": "Менше або дорівнює",
|
||||
"notEmpty": "Не порожньо",
|
||||
"notEqual": "Не дорівнює"
|
||||
},
|
||||
"text": {
|
||||
"contains": "Містить",
|
||||
"empty": "Пусто",
|
||||
"ends": "Закінчується на",
|
||||
"equal": "Дорівнює",
|
||||
"notContains": "Не містить",
|
||||
"notEmpty": "Не порожній",
|
||||
"notEqual": "Не дорівнює",
|
||||
"starts": "Починається з"
|
||||
}
|
||||
},
|
||||
"searchClear": "Очистити пошук",
|
||||
"searchDropdown": "Пошук"
|
||||
},
|
||||
"datetime": {
|
||||
"amPm": {
|
||||
"0": "am",
|
||||
"1": "pm"
|
||||
},
|
||||
"hours": "Година",
|
||||
"minutes": "Хвилина",
|
||||
"months": {
|
||||
"0": "Січень",
|
||||
"1": "Лютий",
|
||||
"10": "Листопад",
|
||||
"11": "Грудень",
|
||||
"2": "Березень",
|
||||
"3": "Квітень",
|
||||
"4": "Травень",
|
||||
"5": "Червень",
|
||||
"6": "Липень",
|
||||
"7": "Серпень",
|
||||
"8": "Вересень",
|
||||
"9": "Жовтень"
|
||||
},
|
||||
"next": "Наступний",
|
||||
"previous": "Попередній",
|
||||
"seconds": "Секунда",
|
||||
"unknown": "-",
|
||||
"weekdays": {
|
||||
"0": "Нд",
|
||||
"1": "Пн",
|
||||
"2": "Вт",
|
||||
"3": "Ср",
|
||||
"4": "Чт",
|
||||
"5": "Пт",
|
||||
"6": "Сб"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "Закрити",
|
||||
"create": {
|
||||
"button": "Новий",
|
||||
"submit": "Cтворити",
|
||||
"title": "Створити новий запис"
|
||||
},
|
||||
"edit": {
|
||||
"button": "Редагувати",
|
||||
"submit": "Оновити",
|
||||
"title": "Редагувати запис"
|
||||
},
|
||||
"error": {
|
||||
"system": "Сталася системна помилка (<a target=\"\\\" rel=\"\\ nofollow\" href=\"\\\">Додаткова інформація<\\\\\\\/a>).<\\\/a><\/a>"
|
||||
},
|
||||
"multi": {
|
||||
"info": "Вибране поле містить кілька елементів з різними значеннями. Щоб змінити їх значення, клацніть на них; інакше будуть збережені їхні значення за замовчуванням.",
|
||||
"noMulti": "Це значення можна редагувати окремо – незалежно від групи.",
|
||||
"restore": "Скасувати зміни",
|
||||
"title": "Поле з кількома значеннями"
|
||||
},
|
||||
"remove": {
|
||||
"button": "Видалити",
|
||||
"confirm": {
|
||||
"_": "Ви впевнені, що хочете видалити %d рядків?",
|
||||
"1": "Ви впевнені, що хочете видалити 1 рядок?"
|
||||
},
|
||||
"submit": "Видалити",
|
||||
"title": "Видалити"
|
||||
}
|
||||
},
|
||||
"emptyTable": "Ця таблиця не містить даних",
|
||||
"info": "Показано від _START_ по _END_ з _TOTAL_ записів",
|
||||
"infoEmpty": "Показано від 0 по 0 з 0 записів",
|
||||
"infoFiltered": "(відфільтровано з _MAX_ записів)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ",",
|
||||
"lengthLabels": {
|
||||
"-1": "Усі"
|
||||
},
|
||||
"lengthMenu": "Показати _MENU_ записів",
|
||||
"loadingRecords": "Завантаження",
|
||||
"orderClear": "Очистити сортування",
|
||||
"processing": "Опрацювання...",
|
||||
"search": "Пошук:",
|
||||
"searchBuilder": {
|
||||
"add": "Додати умову",
|
||||
"button": {
|
||||
"_": "Розширений пошук (%d)",
|
||||
"0": "Розширений пошук"
|
||||
},
|
||||
"clearAll": "Очистити все",
|
||||
"condition": "Умова",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "Містить",
|
||||
"empty": "Пустий",
|
||||
"equals": "Дорівнює",
|
||||
"not": "Не",
|
||||
"notEmpty": "Не пусто",
|
||||
"without": "Без"
|
||||
},
|
||||
"date": {
|
||||
"after": "Після",
|
||||
"before": "До",
|
||||
"between": "Між",
|
||||
"empty": "Пусто",
|
||||
"equals": "Дорівнює",
|
||||
"not": "Не",
|
||||
"notBetween": "Не між",
|
||||
"notEmpty": "Не пусто"
|
||||
},
|
||||
"number": {
|
||||
"between": "Між",
|
||||
"empty": "Пусто",
|
||||
"equals": "Дорівнює",
|
||||
"gt": "Більше ніж",
|
||||
"gte": "Більше або дорівнює",
|
||||
"lt": "Менше ніж",
|
||||
"lte": "Менше або дорівнює",
|
||||
"not": "Не",
|
||||
"notBetween": "Не між",
|
||||
"notEmpty": "Не пусто"
|
||||
},
|
||||
"string": {
|
||||
"contains": "Містить",
|
||||
"empty": "Пусто",
|
||||
"endsWith": "Закінчується на",
|
||||
"equals": "Дорівнює",
|
||||
"not": "Не",
|
||||
"notContains": "Не містить",
|
||||
"notEmpty": "Не пусто",
|
||||
"notEndsWith": "Не закінчується на",
|
||||
"notStartsWith": "Не починається з",
|
||||
"startsWith": "Починається з"
|
||||
}
|
||||
},
|
||||
"data": "Дані",
|
||||
"deleteTitle": "Видалити правило фільтрування",
|
||||
"leftTitle": "Зняти відступ критерію",
|
||||
"logicAnd": "ТА",
|
||||
"logicOr": "АБО",
|
||||
"rightTitle": "Зробити відступ критерію",
|
||||
"search": "Пошук",
|
||||
"title": {
|
||||
"_": "Розширений пошук (%d)",
|
||||
"0": "Розширений пошук"
|
||||
},
|
||||
"value": "Значення"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "Очистити все",
|
||||
"collapse": {
|
||||
"_": "Панелі пошуку (%d)",
|
||||
"0": "Панель пошуку"
|
||||
},
|
||||
"collapseMessage": "Приховати всі",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyMessage": "<em>немає даних<\/em>",
|
||||
"emptyPanes": "Немає панелей пошуку",
|
||||
"loadMessage": "Завантаження панелей пошуку",
|
||||
"showMessage": "Показати всі",
|
||||
"title": "Активній фільтри - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "%d клітинок вибрано",
|
||||
"0": "",
|
||||
"1": "1 клітинку вибрано"
|
||||
},
|
||||
"columns": {
|
||||
"_": "%d колонок вибрано",
|
||||
"0": "",
|
||||
"1": "1 колонку вибрано"
|
||||
},
|
||||
"rows": {
|
||||
"_": "Вибрано %d рядків",
|
||||
"0": "",
|
||||
"1": "Вибрано 1 рядок"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
"creationModal": {
|
||||
"button": "Створити",
|
||||
"columns": {
|
||||
"search": "Пошук у стовпці",
|
||||
"visible": "Видимість стовпця"
|
||||
},
|
||||
"name": "Ім'я:",
|
||||
"order": "Сортування",
|
||||
"paging": "Пейджинг",
|
||||
"scroller": "Прокручування",
|
||||
"search": "Пошук",
|
||||
"searchBuilder": "Конструктор запитів",
|
||||
"select": "Вибір",
|
||||
"title": "Створити новий стан",
|
||||
"toggleLabel": "Включає:"
|
||||
},
|
||||
"duplicateError": "Стан з такою назвою вже існує.",
|
||||
"emptyError": "Назва не може бути порожньою.",
|
||||
"emptyStates": "Немає збереженого стану.",
|
||||
"removeConfirm": "Ви впевнені, що хочете видалити %s?",
|
||||
"removeError": "Не вдалося видалити стан.",
|
||||
"removeJoiner": "і",
|
||||
"removeSubmit": "Видалити",
|
||||
"removeTitle": "Видалити стан",
|
||||
"renameButton": "Перейменувати",
|
||||
"renameLabel": "Нова назва для %s:",
|
||||
"renameTitle": "Перейменувати стан"
|
||||
},
|
||||
"thousands": ",",
|
||||
"zeroRecords": "Не знайдено жодних записів"
|
||||
}
|
||||
@@ -1,61 +1,132 @@
|
||||
{
|
||||
"processing": "處理中...",
|
||||
"loadingRecords": "載入中...",
|
||||
"paginate": {
|
||||
"first": "第一頁",
|
||||
"previous": "上一頁",
|
||||
"next": "下一頁",
|
||||
"last": "最後一頁"
|
||||
"aria": {
|
||||
"paginate": {
|
||||
"first": "第一頁",
|
||||
"last": "最後一頁",
|
||||
"next": "下一頁",
|
||||
"previous": "上一頁"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "取消",
|
||||
"info": ""
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "更多",
|
||||
"colvis": "欄位顯示",
|
||||
"colvisRestore": "重置欄位顯示",
|
||||
"copy": "複製",
|
||||
"copySuccess": {
|
||||
"_": "複製了 %d 筆資料",
|
||||
"1": "複製了 1 筆資料"
|
||||
},
|
||||
"copyTitle": "已經複製到剪貼簿",
|
||||
"createState": "建立狀態",
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"_": "顯示 %d 筆",
|
||||
"-1": "顯示全部"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
"print": "列印",
|
||||
"removeAllStates": "移除所有狀態",
|
||||
"removeState": "移除",
|
||||
"renameState": "重新命名",
|
||||
"savedStates": "儲存狀態",
|
||||
"stateRestore": "狀態 %d",
|
||||
"updateState": "更新"
|
||||
},
|
||||
"emptyTable": "目前沒有資料",
|
||||
"datetime": {
|
||||
"previous": "上一頁",
|
||||
"next": "下一頁",
|
||||
"amPm": {
|
||||
"0": "上午",
|
||||
"1": "下午"
|
||||
},
|
||||
"hours": "時",
|
||||
"minutes": "分",
|
||||
"months": {
|
||||
"0": "一月",
|
||||
"1": "二月",
|
||||
"10": "十一月",
|
||||
"11": "十二月",
|
||||
"2": "三月",
|
||||
"3": "四月",
|
||||
"4": "五月",
|
||||
"5": "六月",
|
||||
"6": "七月",
|
||||
"7": "八月",
|
||||
"8": "九月",
|
||||
"9": "十月"
|
||||
},
|
||||
"next": "下一頁",
|
||||
"previous": "上一頁",
|
||||
"seconds": "秒",
|
||||
"amPm": [
|
||||
"上午",
|
||||
"下午"
|
||||
],
|
||||
"unknown": "未知",
|
||||
"weekdays": [
|
||||
"週日",
|
||||
"週一",
|
||||
"週二",
|
||||
"週三",
|
||||
"週四",
|
||||
"週五",
|
||||
"週六"
|
||||
],
|
||||
"months": [
|
||||
"一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月"
|
||||
]
|
||||
"weekdays": {
|
||||
"0": "週日",
|
||||
"1": "週一",
|
||||
"2": "週二",
|
||||
"3": "週三",
|
||||
"4": "週四",
|
||||
"5": "週五",
|
||||
"6": "週六"
|
||||
}
|
||||
},
|
||||
"decimal": "",
|
||||
"editor": {
|
||||
"close": "關閉",
|
||||
"create": {
|
||||
"button": "新增",
|
||||
"submit": "送出新增",
|
||||
"title": "新增資料"
|
||||
},
|
||||
"edit": {
|
||||
"button": "修改",
|
||||
"submit": "送出修改",
|
||||
"title": "修改資料"
|
||||
},
|
||||
"error": {
|
||||
"system": "系統發生錯誤(更多資訊)"
|
||||
},
|
||||
"multi": {
|
||||
"info": "您所選擇的多筆資料中,此欄位包含了不同的值。若您想要將它們都改為同一個值,可以在此輸入,要不然它們會保留各自原本的值。",
|
||||
"noMulti": "此輸入欄需單獨輸入,不容許多筆資料一起修改",
|
||||
"restore": "復原",
|
||||
"title": "多重值"
|
||||
},
|
||||
"remove": {
|
||||
"button": "刪除",
|
||||
"confirm": {
|
||||
"_": "您確定要刪除您所選取的 %d 筆資料嗎?",
|
||||
"1": "您確定要刪除您所選取的 1 筆資料嗎?"
|
||||
},
|
||||
"submit": "送出刪除",
|
||||
"title": "刪除資料"
|
||||
}
|
||||
},
|
||||
"emptyTable": "目前沒有資料",
|
||||
"info": "顯示第 _START_ 至 _END_ 筆結果,共 _TOTAL_ 筆",
|
||||
"infoEmpty": "顯示第 0 至 0 筆結果,共 0 筆",
|
||||
"infoFiltered": "(從 _MAX_ 筆結果中篩選)",
|
||||
"infoPostFix": "",
|
||||
"infoThousands": ",",
|
||||
"lengthMenu": "顯示 _MENU_ 筆結果",
|
||||
"loadingRecords": "載入中...",
|
||||
"processing": "處理中...",
|
||||
"search": "搜尋:",
|
||||
"searchBuilder": {
|
||||
"add": "新增條件",
|
||||
"condition": "條件",
|
||||
"button": {
|
||||
"_": "複合查詢 (%d)",
|
||||
"0": "複合查詢"
|
||||
},
|
||||
"clearAll": "清空",
|
||||
"condition": "條件",
|
||||
"conditions": {
|
||||
"array": {
|
||||
"contains": "含有",
|
||||
"equals": "等於",
|
||||
"empty": "空值",
|
||||
"equals": "等於",
|
||||
"not": "不等於",
|
||||
"notEmpty": "非空值",
|
||||
"without": "不含"
|
||||
@@ -88,14 +159,15 @@
|
||||
"endsWith": "字尾為",
|
||||
"equals": "等於",
|
||||
"not": "不為",
|
||||
"notEmpty": "不為空",
|
||||
"startsWith": "字首為",
|
||||
"notContains": "不含",
|
||||
"notEmpty": "不為空",
|
||||
"notEndsWith": "結尾不是",
|
||||
"notStartsWith": "開頭不是",
|
||||
"notEndsWith": "結尾不是"
|
||||
"startsWith": "字首為"
|
||||
}
|
||||
},
|
||||
"data": "欄位",
|
||||
"deleteTitle": "刪除篩選條件",
|
||||
"leftTitle": "群組條件",
|
||||
"logicAnd": "且",
|
||||
"logicOr": "或",
|
||||
@@ -104,85 +176,41 @@
|
||||
"_": "複合查詢 (%d)",
|
||||
"0": "複合查詢"
|
||||
},
|
||||
"value": "內容",
|
||||
"deleteTitle": "刪除篩選條件"
|
||||
},
|
||||
"editor": {
|
||||
"close": "關閉",
|
||||
"create": {
|
||||
"button": "新增",
|
||||
"title": "新增資料",
|
||||
"submit": "送出新增"
|
||||
},
|
||||
"remove": {
|
||||
"button": "刪除",
|
||||
"title": "刪除資料",
|
||||
"submit": "送出刪除",
|
||||
"confirm": {
|
||||
"_": "您確定要刪除您所選取的 %d 筆資料嗎?",
|
||||
"1": "您確定要刪除您所選取的 1 筆資料嗎?"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"system": "系統發生錯誤(更多資訊)"
|
||||
},
|
||||
"edit": {
|
||||
"button": "修改",
|
||||
"title": "修改資料",
|
||||
"submit": "送出修改"
|
||||
},
|
||||
"multi": {
|
||||
"title": "多重值",
|
||||
"info": "您所選擇的多筆資料中,此欄位包含了不同的值。若您想要將它們都改為同一個值,可以在此輸入,要不然它們會保留各自原本的值。",
|
||||
"restore": "復原",
|
||||
"noMulti": "此輸入欄需單獨輸入,不容許多筆資料一起修改"
|
||||
}
|
||||
},
|
||||
"autoFill": {
|
||||
"cancel": "取消"
|
||||
},
|
||||
"buttons": {
|
||||
"copySuccess": {
|
||||
"_": "複製了 %d 筆資料",
|
||||
"1": "複製了 1 筆資料"
|
||||
},
|
||||
"copyTitle": "已經複製到剪貼簿",
|
||||
"excel": "Excel",
|
||||
"pdf": "PDF",
|
||||
"print": "列印",
|
||||
"copy": "複製",
|
||||
"colvis": "欄位顯示",
|
||||
"colvisRestore": "重置欄位顯示",
|
||||
"csv": "CSV",
|
||||
"pageLength": {
|
||||
"-1": "顯示全部",
|
||||
"_": "顯示 %d 筆"
|
||||
},
|
||||
"createState": "建立狀態",
|
||||
"removeAllStates": "移除所有狀態",
|
||||
"removeState": "移除",
|
||||
"renameState": "重新命名",
|
||||
"savedStates": "儲存狀態",
|
||||
"stateRestore": "狀態 %d",
|
||||
"updateState": "更新",
|
||||
"collection": "更多"
|
||||
"value": "內容"
|
||||
},
|
||||
"searchPanes": {
|
||||
"clearMessage": "清空",
|
||||
"collapse": {
|
||||
"_": "搜尋面版 (%d)",
|
||||
"0": "搜尋面版"
|
||||
},
|
||||
"emptyPanes": "沒搜尋面版",
|
||||
"loadMessage": "載入搜尋面版中...",
|
||||
"clearMessage": "清空",
|
||||
"collapseMessage": "摺疊全部",
|
||||
"count": "{total}",
|
||||
"countFiltered": "{shown} ({total})",
|
||||
"emptyPanes": "沒搜尋面版",
|
||||
"loadMessage": "載入搜尋面版中...",
|
||||
"showMessage": "顯示全部",
|
||||
"collapseMessage": "摺疊全部",
|
||||
"title": "篩選條件 - %d"
|
||||
},
|
||||
"searchPlaceholder": "",
|
||||
"select": {
|
||||
"cells": {
|
||||
"_": "選擇了 %d 格資料",
|
||||
"0": "",
|
||||
"1": "選擇了 1 格資料"
|
||||
},
|
||||
"columns": {
|
||||
"_": "選擇了 %d 欄資料",
|
||||
"0": "",
|
||||
"1": "選擇了 1 欄資料"
|
||||
},
|
||||
"rows": {
|
||||
"_": "選擇了 %d 筆資料",
|
||||
"0": "",
|
||||
"1": "選擇了 1 筆資料"
|
||||
}
|
||||
},
|
||||
"stateRestore": {
|
||||
"emptyError": "名稱不能空白。",
|
||||
"creationModal": {
|
||||
"button": "建立",
|
||||
"columns": {
|
||||
@@ -200,6 +228,7 @@
|
||||
"toggleLabel": "包含:"
|
||||
},
|
||||
"duplicateError": "此狀態名稱已經存在。",
|
||||
"emptyError": "名稱不能空白。",
|
||||
"emptyStates": "名稱不可空白。",
|
||||
"removeConfirm": "確定要移除 %s 嗎?",
|
||||
"removeError": "移除狀態失敗。",
|
||||
@@ -210,31 +239,6 @@
|
||||
"renameLabel": "%s 的新名稱:",
|
||||
"renameTitle": "重新命名狀態"
|
||||
},
|
||||
"select": {
|
||||
"columns": {
|
||||
"_": "選擇了 %d 欄資料",
|
||||
"1": "選擇了 1 欄資料"
|
||||
},
|
||||
"rows": {
|
||||
"1": "選擇了 1 筆資料",
|
||||
"_": "選擇了 %d 筆資料"
|
||||
},
|
||||
"cells": {
|
||||
"1": "選擇了 1 格資料",
|
||||
"_": "選擇了 %d 格資料"
|
||||
}
|
||||
},
|
||||
"zeroRecords": "沒有符合的資料",
|
||||
"aria": {
|
||||
"sortAscending": ":升冪排列",
|
||||
"sortDescending": ":降冪排列"
|
||||
},
|
||||
"info": "顯示第 _START_ 至 _END_ 筆結果,共 _TOTAL_ 筆",
|
||||
"infoEmpty": "顯示第 0 至 0 筆結果,共 0 筆",
|
||||
"infoThousands": ",",
|
||||
"lengthMenu": "顯示 _MENU_ 筆結果",
|
||||
"search": "搜尋:",
|
||||
"searchPlaceholder": "請輸入關鍵字",
|
||||
"thousands": ",",
|
||||
"infoFiltered": "(從 _MAX_ 筆結果中篩選)"
|
||||
"zeroRecords": "沒有符合的資料"
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
{% load admin_status %}
|
||||
|
||||
<div
|
||||
id="celery-progress-bar-{{ label }}"
|
||||
class="progress-bar text-bg-{{ level }} task-status-progress-bar"
|
||||
role="progressbar"
|
||||
aria-valuenow="{% decimal_widthratio tasks_count tasks_total 100 %}"
|
||||
@@ -9,5 +10,5 @@
|
||||
aria-valuemax="100"
|
||||
style="width: {% decimal_widthratio tasks_count tasks_total 100 %}%;"
|
||||
>
|
||||
<span>{% widthratio tasks_count tasks_total 100 %}%</span>
|
||||
<span id="celery-progress-bar-{{ label }}-progress">{% widthratio tasks_count tasks_total 100 %}%</span>
|
||||
</div>
|
||||
|
||||
@@ -1,29 +1,32 @@
|
||||
{% load i18n %}
|
||||
|
||||
<div id="esi-alert" class="col-12 collapse">
|
||||
<div class="alert alert-warning">
|
||||
<p class="text-center ">{% translate 'Your Server received an ESI error response code of ' %}<b id="esi-code">?</b></p>
|
||||
<hr>
|
||||
<pre id="esi-data" class="text-center text-wrap"></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const elemCard = document.getElementById('esi-alert');
|
||||
const elemMessage = document.getElementById('esi-data');
|
||||
const elemCode = document.getElementById('esi-code');
|
||||
<script>
|
||||
$(document).ready(() => {
|
||||
const elements = {
|
||||
card: document.getElementById('esi-alert'),
|
||||
message: document.getElementById('esi-data'),
|
||||
code: document.getElementById('esi-code')
|
||||
};
|
||||
|
||||
fetchGet({url: '{% url "authentication:esi_check" %}'})
|
||||
.then((data) => {
|
||||
console.log('ESI Check: ', JSON.stringify(data, null, 2));
|
||||
fetchGet({url: '{% url "authentication:esi_check" %}'})
|
||||
.then(({status, data}) => {
|
||||
console.log('ESI Check:', JSON.stringify({status, data}, null, 2));
|
||||
|
||||
if (data.status !== 200) {
|
||||
elemCode.textContent = data.status;
|
||||
elemMessage.textContent = data.data.error;
|
||||
if (status !== 200) {
|
||||
elements.code.textContent = status;
|
||||
elements.message.textContent = data.error;
|
||||
|
||||
new bootstrap.Collapse(elemCard, {toggle: true});
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error fetching ESI check:', error);
|
||||
new bootstrap.Collapse(elements.card, {toggle: true});
|
||||
}
|
||||
})
|
||||
.catch((error) => console.error('Error fetching ESI check:', error));
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,27 @@
|
||||
{% load i18n %}
|
||||
{% load humanize %}
|
||||
|
||||
{% get_current_language as LANGUAGE_CODE %}
|
||||
|
||||
{% comment %}
|
||||
Some translations used in the HTML and JavaScript code below.
|
||||
We define them here so that they can be used in the JavaScript code as well with
|
||||
the escapejs filter without having to redefine them later.
|
||||
{% endcomment %}
|
||||
{% translate "second" as l10nSecondSingular %}
|
||||
{% translate "seconds" as l10nSecondPlural %}
|
||||
{% translate "minute" as l10nMinuteSingular %}
|
||||
{% translate "minutes" as l10nMinutePlural %}
|
||||
{% translate "hour" as l10nHourSingular %}
|
||||
{% translate "hours" as l10nHourPlural %}
|
||||
{% translate "N/A" as l10nNA %}
|
||||
{% translate "ERROR" as l10nError %}
|
||||
{% translate "running" as l10nRunning %}
|
||||
{% translate "queued" as l10nQueued %}
|
||||
{% translate "succeeded" as l10nSucceeded %}
|
||||
{% translate "retried" as l10nRetried %}
|
||||
{% translate "failed" as l10nFailed %}
|
||||
|
||||
{% if debug %}
|
||||
<div id="aa-dashboard-panel-debug" class="col-12 mb-3">
|
||||
<div class="card text-bg-warning">
|
||||
@@ -111,23 +132,27 @@
|
||||
<div>
|
||||
<p>
|
||||
{% blocktranslate with total=tasks_total|intcomma latest=earliest_task|timesince|default:"?" %}
|
||||
Status of {{ total }} processed tasks • last {{ latest }}
|
||||
Status of <span id="total-task-count">?</span> processed tasks • last <span id="celery-uptime">?</span>
|
||||
{% endblocktranslate %}
|
||||
</p>
|
||||
|
||||
<div
|
||||
class="progress"
|
||||
id="celery-tasks-progress-bar"
|
||||
class="progress mb-2"
|
||||
style="height: 21px;"
|
||||
title="{{ tasks_succeeded|intcomma }} succeeded, {{ tasks_retried|intcomma }} retried, {{ tasks_failed|intcomma }} failed"
|
||||
title="? {{ l10nSucceeded }}, ? {{ l10nRetried }}, ? {{ l10nFailed }}"
|
||||
>
|
||||
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="suceeded" level="success" tasks_count=tasks_succeeded %}
|
||||
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="retried" level="info" tasks_count=tasks_retried %}
|
||||
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="failed" level="danger" tasks_count=tasks_failed %}
|
||||
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="succeeded" level="success" tasks_count=0 %}
|
||||
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="retried" level="info" tasks_count=0 %}
|
||||
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="failed" level="danger" tasks_count=0 %}
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<span id="task-counts">?</span> {% translate 'running' %} |
|
||||
<span id="queued-tasks-count">?</span> {% translate 'queued' %}
|
||||
<span id="running-task-count">?</span> {{ l10nRunning }} |
|
||||
<span id="queued-tasks-count">?</span> {{ l10nQueued }} |
|
||||
<span id="succeeded-tasks-count">?</span> {{ l10nSucceeded }} |
|
||||
<span id="retried-tasks-count">?</span> {{ l10nRetried }} |
|
||||
<span id="failed-tasks-count">?</span> {{ l10nFailed }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -136,24 +161,24 @@
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const elemRunning = document.getElementById('task-counts');
|
||||
const elemQueued = document.getElementById('queued-tasks-count');
|
||||
|
||||
fetchGet({url: '{% url "authentication:task_counts" %}'})
|
||||
.then((data) => {
|
||||
const running = data.tasks_running;
|
||||
const queued = data.tasks_queued;
|
||||
|
||||
const updateTaskCount = (element, value) => {
|
||||
element.textContent = value == null ? 'N/A' : value.toLocaleString();
|
||||
};
|
||||
|
||||
updateTaskCount(elemRunning, running);
|
||||
updateTaskCount(elemQueued, queued);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error fetching task queue:', error);
|
||||
|
||||
[elemRunning, elemQueued].forEach(elem => elem.textContent = 'ERROR');
|
||||
});
|
||||
const taskQueueSettings = {
|
||||
url: '{% url "authentication:task_counts" %}',
|
||||
l10n: {
|
||||
language: '{{ LANGUAGE_CODE }}',
|
||||
second_singular: '{{ l10nSecondSingular|escapejs }}',
|
||||
second_plural: '{{ l10nSecondPlural|escapejs }}',
|
||||
minute_singular: '{{ l10nMinuteSingular|escapejs }}',
|
||||
minute_plural: '{{ l10nMinutePlural|escapejs }}',
|
||||
hour_singular: '{{ l10nHourSingular|escapejs }}',
|
||||
hour_plural: '{{ l10nHourPlural|escapejs }}',
|
||||
na: '{{ l10nNA|escapejs }}',
|
||||
error: '{{ l10nError|escapejs }}',
|
||||
running: '{{ l10nRunning|escapejs }}',
|
||||
queued: '{{ l10nQueued|escapejs }}',
|
||||
succeeded: '{{ l10nSucceeded|escapejs }}',
|
||||
retried: '{{ l10nRetried|escapejs }}',
|
||||
failed: '{{ l10nFailed|escapejs }}'
|
||||
}
|
||||
};
|
||||
</script>
|
||||
{% include "bundles/auth-dashboard-task-queue-js.html" %}
|
||||
|
||||
@@ -18,10 +18,11 @@
|
||||
|
||||
<title>{% block title %}{% block page_title %}{% endblock page_title %} - {{ SITE_NAME }}{% endblock title %}</title>
|
||||
|
||||
{% include 'bundles/auth-framework-css.html' %}
|
||||
|
||||
{% theme_css %}
|
||||
|
||||
{% include 'bundles/fontawesome.html' %}
|
||||
{% include 'bundles/auth-framework-css.html' %}
|
||||
|
||||
{% include 'bundles/jquery-js.html' %}
|
||||
{% include 'bundles/auth-framework-js.html' %}
|
||||
@@ -101,44 +102,7 @@
|
||||
</main>
|
||||
<!-- End Body -->
|
||||
|
||||
<script>
|
||||
(() => {
|
||||
// TODO Move to own JS file
|
||||
const sidebar = document.getElementById('sidebar');
|
||||
const sidebarKey = `sidebar_${sidebar.id}`;
|
||||
|
||||
sidebar.addEventListener('shown.bs.collapse', (event) => {
|
||||
if (event.target.id === sidebar.id) {
|
||||
localStorage.removeItem(sidebarKey);
|
||||
}
|
||||
});
|
||||
|
||||
sidebar.addEventListener('hidden.bs.collapse', (event) => {
|
||||
if (event.target.id === sidebar.id) {
|
||||
localStorage.setItem(sidebarKey, 'closed');
|
||||
}
|
||||
});
|
||||
|
||||
if (localStorage.getItem(sidebarKey) === 'closed') {
|
||||
sidebar.classList.remove('show');
|
||||
} else {
|
||||
sidebar.classList.add('show');
|
||||
}
|
||||
|
||||
const activeChildMenuItem = document.querySelector('#sidebar-menu li ul li a.active');
|
||||
|
||||
if (activeChildMenuItem) {
|
||||
const activeChildMenuUl = activeChildMenuItem.parentElement.parentElement;
|
||||
const elementsToToggle = document.querySelectorAll(`[data-bs-target^="#${activeChildMenuUl.id}"]`);
|
||||
|
||||
activeChildMenuUl.classList.add('show');
|
||||
|
||||
elementsToToggle.forEach((element) => {
|
||||
element.setAttribute('aria-expanded', true);
|
||||
});
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
{% include "bundles/auth-sidebar-collapse-js.html" %}
|
||||
|
||||
{% theme_js %}
|
||||
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
{% load i18n %}
|
||||
|
||||
{% if user.is_authenticated %}
|
||||
<li class="nav-item">
|
||||
<a href="{% url 'authentication:add_character' %}" class="nav-link" title="{% translate 'Add Character' %}">
|
||||
<i class="fa-solid fa-user-plus"></i>
|
||||
<span class="d-lg-none d-md-inline m-2">{% translate "Add Character" %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{% url 'authentication:change_main_character' %}" class="nav-link" title="{% translate 'Change Main' %}">
|
||||
<i class="fa-solid fa-shuffle"></i>
|
||||
<span class="d-lg-none d-md-inline m-2">{% translate "Change Main" %}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% translate "Add Character" as nav_item_title %}
|
||||
{% url "authentication:add_character" as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-icon.html" with fa_icon="fa-solid fa-user-plus" url=nav_item_link title=nav_item_title icon_on_mobile=True %}
|
||||
|
||||
{% translate "Change Main" as nav_item_title %}
|
||||
{% url "authentication:change_main_character" as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-icon.html" with fa_icon="fa-solid fa-shuffle" url=nav_item_link title=nav_item_title icon_on_mobile=True %}
|
||||
{% else %}
|
||||
<li class="nav-item">
|
||||
<a href="{% url 'authentication:login' %}" class="nav-link" title="{% translate 'Sign In' %}">
|
||||
<i class="fa-solid fa-right-to-bracket fa-fw "></i> {% translate "Sign In" %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{% url 'authentication:login' %}" class="nav-link" title="{% translate 'Sign In' %}">
|
||||
<i class="fa-solid fa-right-to-bracket fa-fw me-2"></i> {% translate "Sign In" %}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{% load sri %}
|
||||
|
||||
{% sri_static 'allianceauth/js/dashboard-update-task-queue.js' %}
|
||||
@@ -0,0 +1,3 @@
|
||||
{% load sri %}
|
||||
|
||||
{% sri_static 'allianceauth/js/sidebar.js' %}
|
||||
@@ -0,0 +1,5 @@
|
||||
{% load sri %}
|
||||
|
||||
<!-- Start DataTables ColumnControl CSS -->
|
||||
{% sri_static "allianceauth/libs/DataTables/Extensions/ColumnControl/1.2.0/css/columnControl.bootstrap5.min.css" %}
|
||||
<!-- End DataTables ColumnControl CSS -->
|
||||
@@ -0,0 +1,6 @@
|
||||
{% load sri %}
|
||||
|
||||
<!-- Start DataTables ColumnControl JS -->
|
||||
{% sri_static "allianceauth/libs/DataTables/Extensions/ColumnControl/1.2.0/js/dataTables.columnControl.min.js" %}
|
||||
{% sri_static "allianceauth/libs/DataTables/Extensions/ColumnControl/1.2.0/js/columnControl.bootstrap5.min.js" %}
|
||||
<!-- End DataTables ColumnControl JS -->
|
||||
5
allianceauth/templates/bundles/datatables-2-css-bs5.html
Normal file
5
allianceauth/templates/bundles/datatables-2-css-bs5.html
Normal file
@@ -0,0 +1,5 @@
|
||||
{% load sri %}
|
||||
|
||||
<!-- Start DataTables CSS -->
|
||||
{% sri_static "allianceauth/libs/DataTables/2.3.6/css/dataTables.bootstrap5.min.css" %}
|
||||
<!-- End DataTables CSS -->
|
||||
6
allianceauth/templates/bundles/datatables-2-js-bs5.html
Normal file
6
allianceauth/templates/bundles/datatables-2-js-bs5.html
Normal file
@@ -0,0 +1,6 @@
|
||||
{% load sri %}
|
||||
|
||||
<!-- Start DataTables JS -->
|
||||
{% sri_static "allianceauth/libs/DataTables/2.3.6/js/dataTables.min.js" %}
|
||||
{% sri_static "allianceauth/libs/DataTables/2.3.6/js/dataTables.bootstrap5.min.js" %}
|
||||
<!-- End DataTables JS -->
|
||||
11
allianceauth/templates/django_bootstrap5/field_errors.html
Normal file
11
allianceauth/templates/django_bootstrap5/field_errors.html
Normal file
@@ -0,0 +1,11 @@
|
||||
{# Template override to display the errors of django Forms when using `boostrap_form` form the `django-bootstrap5` #}
|
||||
{# library. #}
|
||||
{# See: https://github.com/zostera/django-bootstrap5/pull/767 #}
|
||||
|
||||
{% if field_errors %}
|
||||
<div id="{{ field.auto_id }}_error" class="invalid-feedback">
|
||||
{% for text in field_errors %}
|
||||
<div>{{ text }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -59,7 +59,7 @@ def get_datatables_language_static(language: str) -> str:
|
||||
mapped_language = get_datatable_language_code(language)
|
||||
static_url = (
|
||||
static(
|
||||
path=f"allianceauth/libs/DataTables/Plugins/2.2.1/i18n/{mapped_language}.json"
|
||||
path=f"allianceauth/libs/DataTables/Plugins/2.3.6/i18n/{mapped_language}.json"
|
||||
)
|
||||
if mapped_language
|
||||
else ""
|
||||
|
||||
@@ -37,7 +37,8 @@ def get_theme(request):
|
||||
|
||||
def get_theme_context(request):
|
||||
return {
|
||||
'theme': get_theme(request)
|
||||
'theme': get_theme(request),
|
||||
'request': request
|
||||
}
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user