mirror of
https://github.com/MarijnDoeve/TijdVoorDeTest.git
synced 2026-03-05 20:44:19 +01:00
Refactor translations to XLIFF format, enhance elimination workflows, and update compose configuration
This commit switches translations from YAML to XLIFF format for better standardization, updates the elimination preparation process with UI and functionality improvements, tweaks form structures, adjusts compose.override.yaml for improved asset handling, and optimizes back office usability with refined translation handling.
This commit is contained in:
2
Justfile
2
Justfile
@@ -23,7 +23,7 @@ fixtures:
|
|||||||
docker compose exec php bin/console doctrine:fixtures:load --purge-with-truncate --no-interaction
|
docker compose exec php bin/console doctrine:fixtures:load --purge-with-truncate --no-interaction
|
||||||
|
|
||||||
translations:
|
translations:
|
||||||
docker compose exec php bin/console translation:extract --domain=messages --force --format=yaml --sort=asc --clean nl
|
docker compose exec php bin/console translation:extract --force --format=xliff --sort=asc --clean nl
|
||||||
|
|
||||||
fix-cs:
|
fix-cs:
|
||||||
docker compose exec php vendor/bin/php-cs-fixer fix
|
docker compose exec php vendor/bin/php-cs-fixer fix
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import 'bootstrap/dist/css/bootstrap.min.css'
|
import 'bootstrap/dist/css/bootstrap.min.css'
|
||||||
import * as bootstrap from 'bootstrap'
|
import * as bootstrap from 'bootstrap'
|
||||||
|
|
||||||
import './styles/app.scss';
|
import './styles/backoffice.scss';
|
||||||
|
|||||||
BIN
assets/img/green.png
Normal file
BIN
assets/img/green.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 479 KiB |
BIN
assets/img/red.png
Normal file
BIN
assets/img/red.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 438 KiB |
@@ -2,3 +2,23 @@ import 'bootstrap/dist/css/bootstrap.min.css'
|
|||||||
import * as bootstrap from 'bootstrap'
|
import * as bootstrap from 'bootstrap'
|
||||||
|
|
||||||
import './styles/quiz.scss'
|
import './styles/quiz.scss'
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Check if we're on the elimination candidate screen
|
||||||
|
const eliminationScreen = document.querySelector('.elimination-screen');
|
||||||
|
if (eliminationScreen) {
|
||||||
|
// Add event listener for any keypress
|
||||||
|
document.addEventListener('keydown', function(event) {
|
||||||
|
// Get the current URL
|
||||||
|
const currentUrl = window.location.href;
|
||||||
|
// Extract the elimination ID from the URL
|
||||||
|
const urlParts = currentUrl.split('/');
|
||||||
|
// Remove the candidate hash (last part of the URL)
|
||||||
|
urlParts.pop();
|
||||||
|
// Construct the URL to the main elimination page
|
||||||
|
const redirectUrl = urlParts.join('/');
|
||||||
|
// Redirect to the main elimination page
|
||||||
|
window.location.href = redirectUrl;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
@@ -10,3 +10,17 @@ html, body {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.elimination-screen {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
object-fit: contain;
|
||||||
|
background-color: white;
|
||||||
|
z-index: 1000;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ services:
|
|||||||
- ./frankenphp/Caddyfile:/etc/caddy/Caddyfile:ro
|
- ./frankenphp/Caddyfile:/etc/caddy/Caddyfile:ro
|
||||||
- ./frankenphp/conf.d/20-app.dev.ini:/usr/local/etc/php/app.conf.d/20-app.dev.ini:ro
|
- ./frankenphp/conf.d/20-app.dev.ini:/usr/local/etc/php/app.conf.d/20-app.dev.ini:ro
|
||||||
- ./frankenphp/data:/data
|
- ./frankenphp/data:/data
|
||||||
|
- sass:/app/var/sass
|
||||||
environment:
|
environment:
|
||||||
MERCURE_EXTRA_DIRECTIVES: demo
|
MERCURE_EXTRA_DIRECTIVES: demo
|
||||||
# See https://xdebug.org/docs/all_settings#mode
|
# See https://xdebug.org/docs/all_settings#mode
|
||||||
@@ -34,7 +35,8 @@ services:
|
|||||||
sass:
|
sass:
|
||||||
image: ${IMAGES_PREFIX:-}app-php
|
image: ${IMAGES_PREFIX:-}app-php
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/app
|
- ./:/app:ro
|
||||||
|
- sass:/app/var/sass
|
||||||
entrypoint: ''
|
entrypoint: ''
|
||||||
depends_on:
|
depends_on:
|
||||||
- php
|
- php
|
||||||
@@ -42,6 +44,7 @@ services:
|
|||||||
- bin/console
|
- bin/console
|
||||||
- sass:build
|
- sass:build
|
||||||
- --watch
|
- --watch
|
||||||
|
- -v
|
||||||
|
|
||||||
###> symfony/mercure-bundle ###
|
###> symfony/mercure-bundle ###
|
||||||
###< symfony/mercure-bundle ###
|
###< symfony/mercure-bundle ###
|
||||||
@@ -62,3 +65,6 @@ services:
|
|||||||
MP_SMTP_AUTH_ACCEPT_ANY: 1
|
MP_SMTP_AUTH_ACCEPT_ANY: 1
|
||||||
MP_SMTP_AUTH_ALLOW_INSECURE: 1
|
MP_SMTP_AUTH_ALLOW_INSECURE: 1
|
||||||
###< symfony/mailer ###
|
###< symfony/mailer ###
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
sass:
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class ClaimSeasonCommand extends Command
|
|||||||
protected function configure(): void
|
protected function configure(): void
|
||||||
{
|
{
|
||||||
$this
|
$this
|
||||||
->addArgument('email', InputArgument::REQUIRED, 'The email of the user to make admin')
|
->addArgument('email', InputArgument::REQUIRED, 'The email of the user thats claims the season')
|
||||||
->addArgument('season', InputArgument::REQUIRED, 'The season to claim')
|
->addArgument('season', InputArgument::REQUIRED, 'The season to claim')
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Backoffice;
|
||||||
|
|
||||||
use App\Entity\Elimination;
|
use App\Entity\Elimination;
|
||||||
use App\Entity\Quiz;
|
use App\Entity\Quiz;
|
||||||
@@ -31,6 +31,9 @@ final class PrepareEliminationController extends AbstractController
|
|||||||
$elimination->updateFromInputBag($request->request);
|
$elimination->updateFromInputBag($request->request);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
|
if (true === $request->request->getBoolean('start')) {
|
||||||
|
return $this->redirectToRoute('app_elimination', ['elimination' => $elimination->getId()]);
|
||||||
|
}
|
||||||
$this->addFlash('success', 'Elimination updated');
|
$this->addFlash('success', 'Elimination updated');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,12 +5,14 @@ declare(strict_types=1);
|
|||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
use App\Entity\Candidate;
|
use App\Entity\Candidate;
|
||||||
use App\Entity\Season;
|
use App\Entity\Elimination;
|
||||||
use App\Enum\FlashType;
|
use App\Enum\FlashType;
|
||||||
|
use App\Form\EliminationEnterNameType;
|
||||||
use App\Helpers\Base64;
|
use App\Helpers\Base64;
|
||||||
use App\Repository\CandidateRepository;
|
use App\Repository\CandidateRepository;
|
||||||
use App\Security\Voter\SeasonVoter;
|
use App\Security\Voter\SeasonVoter;
|
||||||
use Symfony\Bridge\Doctrine\Attribute\MapEntity;
|
use Symfony\Bridge\Doctrine\Attribute\MapEntity;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpKernel\Attribute\AsController;
|
use Symfony\Component\HttpKernel\Attribute\AsController;
|
||||||
use Symfony\Component\Routing\Attribute\Route;
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
@@ -25,30 +27,50 @@ final class EliminationController extends AbstractController
|
|||||||
{
|
{
|
||||||
public function __construct(private readonly TranslatorInterface $translator) {}
|
public function __construct(private readonly TranslatorInterface $translator) {}
|
||||||
|
|
||||||
#[Route('/elimination/{seasonCode}', name: 'app_elimination')]
|
#[Route('/elimination/{elimination}', name: 'app_elimination')]
|
||||||
#[IsGranted(SeasonVoter::ELIMINATION, 'season')]
|
#[IsGranted(SeasonVoter::ELIMINATION, 'elimination')]
|
||||||
public function index(#[MapEntity] Season $season): Response
|
public function index(#[MapEntity] Elimination $elimination, Request $request): Response
|
||||||
{
|
{
|
||||||
return $this->render('elimination/index.html.twig', [
|
$form = $this->createForm(EliminationEnterNameType::class);
|
||||||
|
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
|
$name = $form->get('name')->getData();
|
||||||
|
|
||||||
|
return $this->redirectToRoute('app_elimination_candidate', ['elimination' => $elimination->getId(), 'candidateHash' => Base64::base64UrlEncode($name)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('quiz/elimination/index.html.twig', [
|
||||||
|
'form' => $form,
|
||||||
'controller_name' => 'EliminationController',
|
'controller_name' => 'EliminationController',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/elimination/{seasonCode}/{candidateHash}', name: 'app_elimination_cadidate')]
|
#[Route('/elimination/{elimination}/{candidateHash}', name: 'app_elimination_candidate')]
|
||||||
#[IsGranted(SeasonVoter::ELIMINATION, 'season')]
|
#[IsGranted(SeasonVoter::ELIMINATION, 'elimination')]
|
||||||
public function candidateScreen(Season $season, string $candidateHash, CandidateRepository $candidateRepository): Response
|
public function candidateScreen(Elimination $elimination, string $candidateHash, CandidateRepository $candidateRepository): Response
|
||||||
{
|
{
|
||||||
$candidate = $candidateRepository->getCandidateByHash($season, $candidateHash);
|
$candidate = $candidateRepository->getCandidateByHash($elimination->getQuiz()->getSeason(), $candidateHash);
|
||||||
if (!$candidate instanceof Candidate) {
|
if (!$candidate instanceof Candidate) {
|
||||||
$this->addFlash(FlashType::Warning,
|
$this->addFlash(FlashType::Warning,
|
||||||
t('Cound not find candidate with name %name%', ['%name%' => Base64::base64UrlDecode($candidateHash)])->trans($this->translator)
|
t('Cound not find candidate with name %name%', ['%name%' => Base64::base64UrlDecode($candidateHash)])->trans($this->translator)
|
||||||
);
|
);
|
||||||
throw new \InvalidArgumentException('Candidate not found');
|
|
||||||
|
return $this->redirectToRoute('app_elimination', ['elimination' => $elimination->getId()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('elimination/candidate.html.twig', [
|
$screenColour = $elimination->getScreenColour($candidate->getName());
|
||||||
'season' => $season,
|
|
||||||
|
if (null === $screenColour) {
|
||||||
|
$this->addFlash(FlashType::Warning, $this->translator->trans('Cound not find candidate with name %name% in elimination.', ['%name%' => $candidate->getName()]));
|
||||||
|
|
||||||
|
return $this->redirectToRoute('app_elimination', ['elimination' => $elimination->getId()]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('quiz/elimination/candidate.html.twig', [
|
||||||
'candidate' => $candidate,
|
'candidate' => $candidate,
|
||||||
|
'colour' => $screenColour,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,11 @@ class Elimination
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getScreenColour(?string $name): ?string
|
||||||
|
{
|
||||||
|
return $this->data[$name] ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
#[ORM\PrePersist]
|
#[ORM\PrePersist]
|
||||||
public function setCreatedAtValue(): void
|
public function setCreatedAtValue(): void
|
||||||
{
|
{
|
||||||
|
|||||||
30
src/Form/EliminationEnterNameType.php
Normal file
30
src/Form/EliminationEnterNameType.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Form;
|
||||||
|
|
||||||
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
|
/** @extends AbstractType<null> */
|
||||||
|
class EliminationEnterNameType extends AbstractType
|
||||||
|
{
|
||||||
|
public function __construct(private readonly TranslatorInterface $translator) {}
|
||||||
|
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||||
|
{
|
||||||
|
$builder
|
||||||
|
->add('name', TextType::class,
|
||||||
|
[
|
||||||
|
'required' => true,
|
||||||
|
'label' => $this->translator->trans('Enter name'),
|
||||||
|
'translation_domain' => false,
|
||||||
|
'attr' => ['autofocus' => true],
|
||||||
|
],
|
||||||
|
)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,6 +22,7 @@ class EnterNameType extends AbstractType
|
|||||||
'required' => true,
|
'required' => true,
|
||||||
'label' => $this->translator->trans('Enter your name'),
|
'label' => $this->translator->trans('Enter your name'),
|
||||||
'translation_domain' => false,
|
'translation_domain' => false,
|
||||||
|
'attr' => ['autofocus' => true],
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -19,10 +19,13 @@ class SelectSeasonType extends AbstractType
|
|||||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||||
{
|
{
|
||||||
$builder
|
$builder
|
||||||
->add('season_code', TextType::class,
|
->add('season_code', TextType::class, [
|
||||||
['required' => true, 'constraints' => new Regex(pattern: "/^[A-Za-z\d]{5}$/"), 'label' => $this->translator->trans('Season Code'), 'translation_domain' => false]
|
'required' => true,
|
||||||
)
|
'constraints' => new Regex(pattern: "/^[A-Za-z\d]{5}$/"),
|
||||||
;
|
'label' => $this->translator->trans('Season Code'),
|
||||||
|
'translation_domain' => false,
|
||||||
|
'attr' => ['autofocus' => true],
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver): void
|
public function configureOptions(OptionsResolver $resolver): void
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Security\Voter;
|
namespace App\Security\Voter;
|
||||||
|
|
||||||
|
use App\Entity\Elimination;
|
||||||
use App\Entity\Season;
|
use App\Entity\Season;
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
||||||
@@ -21,10 +22,10 @@ final class SeasonVoter extends Voter
|
|||||||
protected function supports(string $attribute, mixed $subject): bool
|
protected function supports(string $attribute, mixed $subject): bool
|
||||||
{
|
{
|
||||||
return \in_array($attribute, [self::EDIT, self::DELETE, self::ELIMINATION], true)
|
return \in_array($attribute, [self::EDIT, self::DELETE, self::ELIMINATION], true)
|
||||||
&& $subject instanceof Season;
|
&& ($subject instanceof Season || $subject instanceof Elimination);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @param Season $subject */
|
/** @param Season|Elimination $subject */
|
||||||
protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool
|
protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool
|
||||||
{
|
{
|
||||||
$user = $token->getUser();
|
$user = $token->getUser();
|
||||||
@@ -36,8 +37,10 @@ final class SeasonVoter extends Voter
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$season = $subject instanceof Season ? $subject : $subject->getQuiz()->getSeason();
|
||||||
|
|
||||||
return match ($attribute) {
|
return match ($attribute) {
|
||||||
self::EDIT, self::DELETE, self::ELIMINATION => $subject->isOwner($user),
|
self::EDIT, self::DELETE, self::ELIMINATION => $season->isOwner($user),
|
||||||
default => false,
|
default => false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,16 +24,18 @@
|
|||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<select id="colour-{{ candidate|lower }}" class="form-select"
|
<select id="colour-{{ candidate|lower }}" class="form-select"
|
||||||
name="colour-{{ candidate|lower }}">
|
name="colour-{{ candidate|lower }}">
|
||||||
<option value="green"{% if colour == 'green' %} selected{% endif %}>Green</option>
|
<option
|
||||||
<option value="red"{% if colour == 'red' %} selected{% endif %}>Red</option>
|
value="green"{% if colour == 'green' %} selected{% endif %}>{{ 'Green'|trans }}</option>
|
||||||
|
<option
|
||||||
|
value="red"{% if colour == 'red' %} selected{% endif %}>{{ 'Red'|trans }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="btn-group py-2">
|
<div class="btn-group py-2">
|
||||||
<button type="submit" class="btn btn-primary" name="start" value="1">{{ 'Save'|trans }}</button>
|
<button type="submit" class="btn btn-primary" name="start" value="0">{{ 'Save'|trans }}</button>
|
||||||
<button type="submit" class="btn btn-success" name="start"
|
<button type="submit" class="btn btn-success" name="start"
|
||||||
value="0">{{ 'Save and start elimination'|trans }}</button>
|
value="1">{{ 'Save and start elimination'|trans }}</button>
|
||||||
<a href="{{ path('app_backoffice_quiz', {seasonCode: elimination.quiz.season.seasonCode, quiz: elimination.quiz.id}) }}"
|
<a href="{{ path('app_backoffice_quiz', {seasonCode: elimination.quiz.season.seasonCode, quiz: elimination.quiz.id}) }}"
|
||||||
class="btn btn-secondary">{{ 'Back'|trans }}</a>
|
class="btn btn-secondary">{{ 'Back'|trans }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<h4 class="py-2">{{ 'Score'|trans }}</h4>
|
<h4 class="py-2">{{ 'Score'|trans }}</h4>
|
||||||
<div class="btn-toolbar" role="toolbar">
|
<div class="btn-toolbar" role="toolbar">
|
||||||
<div class="btn-group btn-group-lg me-2">
|
<div class="btn-group btn-group-lg me-2">
|
||||||
<a class="btn btn-primary">{{ 'Start Elimination'|trans }}</a>
|
{# <a class="btn btn-primary">{{ 'Start Elimination'|trans }}</a> #}
|
||||||
<a href="{{ path('app_prepare_elimination', {seasonCode: season.seasonCode, quiz: quiz.id}) }}"
|
<a href="{{ path('app_prepare_elimination', {seasonCode: season.seasonCode, quiz: quiz.id}) }}"
|
||||||
class="btn btn-secondary">{{ 'Prepare Custom Elimination'|trans }}</a>
|
class="btn btn-secondary">{{ 'Prepare Custom Elimination'|trans }}</a>
|
||||||
{%~ if not quiz.eliminations.empty %}
|
{%~ if not quiz.eliminations.empty %}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
{% extends 'quiz/base.html.twig' %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
|
<img src="{{ asset("img/#{colour}.png") }}" class="elimination-screen" id="{{ colour }}"
|
||||||
|
alt="Screen with colour {{ colour }}">
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,20 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
{% extends 'quiz/base.html.twig' %}
|
||||||
|
|
||||||
<title>Hello EliminationController!</title>
|
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<style>
|
{{ form(form) }}
|
||||||
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
|
{% endblock body %}
|
||||||
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="example-wrapper">
|
|
||||||
<h1>Hello {{ controller_name }}! ✅</h1>
|
|
||||||
|
|
||||||
This friendly message is coming from:
|
|
||||||
<ul>
|
|
||||||
<li>Your controller at <code>/app/src/Controller/EliminationController.php</code></li>
|
|
||||||
<li>Your template at <code>/app/templates/elimination/index.html.twig</code></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{% extends 'quiz/base.html.twig' %}
|
{% extends 'quiz/base.html.twig' %}
|
||||||
{% block body %}
|
{% block body %}
|
||||||
{{ season.name }}
|
|
||||||
{{ form(form) }}
|
{{ form(form) }}
|
||||||
{% endblock body %}
|
{% endblock body %}
|
||||||
|
|||||||
190
translations/EasyAdminBundle.nl.xliff
Normal file
190
translations/EasyAdminBundle.nl.xliff
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||||
|
<file source-language="nl" target-language="nl" datatype="plaintext" original="file.ext">
|
||||||
|
<header>
|
||||||
|
<tool tool-id="symfony" tool-name="Symfony"/>
|
||||||
|
</header>
|
||||||
|
<body>
|
||||||
|
<trans-unit id="ecFC4Sv" resname="action.add_new_item">
|
||||||
|
<source>action.add_new_item</source>
|
||||||
|
<target>Voeg een item toe</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="wPEuKmL" resname="action.cancel">
|
||||||
|
<source>action.cancel</source>
|
||||||
|
<target>Annuleren</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Yy_rDAt" resname="action.choose_file">
|
||||||
|
<source>action.choose_file</source>
|
||||||
|
<target>Bestand kiezen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="PO_UHtX" resname="action.close">
|
||||||
|
<source>action.close</source>
|
||||||
|
<target>Sluiten</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cd4XVNn" resname="action.delete">
|
||||||
|
<source>action.delete</source>
|
||||||
|
<target>Verwijderen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="FI_qUZL" resname="action.entity_actions">
|
||||||
|
<source>action.entity_actions</source>
|
||||||
|
<target>Acties</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="b5M9sxm" resname="action.remove_item">
|
||||||
|
<source>action.remove_item</source>
|
||||||
|
<target>Verwijder dit item</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="tKPecTw" resname="action.search">
|
||||||
|
<source>action.search</source>
|
||||||
|
<target>Zoeken</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="_EDCsYO" resname="autocomplete.loading-more-results">
|
||||||
|
<source>autocomplete.loading-more-results</source>
|
||||||
|
<target>Meer resultaten laden…</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Mi9fRIF" resname="autocomplete.no-more-results">
|
||||||
|
<source>autocomplete.no-more-results</source>
|
||||||
|
<target>Niet meer resultaten gevonden…</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="dc37768" resname="autocomplete.no-results-found">
|
||||||
|
<source>autocomplete.no-results-found</source>
|
||||||
|
<target>Geen resultaten gevonden…</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="1QzA7HJ" resname="batch_action_modal.action">
|
||||||
|
<source>batch_action_modal.action</source>
|
||||||
|
<target>Verdergaan</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="HzIn9A_" resname="batch_action_modal.content">
|
||||||
|
<source>batch_action_modal.content</source>
|
||||||
|
<target>Je kan deze actie niet ongedaan maken.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="IvOrJqD" resname="batch_action_modal.title">
|
||||||
|
<source>batch_action_modal.title</source>
|
||||||
|
<target>Wil je alle geselecteerde items bewerken?</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="GTjPPy9" resname="datagrid.hidden_results">
|
||||||
|
<source>datagrid.hidden_results</source>
|
||||||
|
<target>Sommige resultaten konden niet worden weergegeven, toegang geweigerd.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="CO0E0pU" resname="datagrid.no_results">
|
||||||
|
<source>datagrid.no_results</source>
|
||||||
|
<target>Geen resultaten gevonden.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="O8SUipq" resname="delete_modal.content">
|
||||||
|
<source>delete_modal.content</source>
|
||||||
|
<target>Deze actie kan niet ongedaan worden gemaakt.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id=".DbNkeY" resname="delete_modal.title">
|
||||||
|
<source>delete_modal.title</source>
|
||||||
|
<target>Weet je zeker dat je dit item wilt verwijderen?</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="MJQ4k4D" resname="field.code_editor.view_code">
|
||||||
|
<source>field.code_editor.view_code</source>
|
||||||
|
<target>Bekijk code</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="11gUR_y" resname="field.text_editor.view_content">
|
||||||
|
<source>field.text_editor.view_content</source>
|
||||||
|
<target>Bekijk inhoud</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="3Mq5DeM" resname="files">
|
||||||
|
<source>files</source>
|
||||||
|
<target>__files</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="F7_Hyy1" resname="filter.button.apply">
|
||||||
|
<source>filter.button.apply</source>
|
||||||
|
<target>Toepassen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="GapHtez" resname="filter.button.clear">
|
||||||
|
<source>filter.button.clear</source>
|
||||||
|
<target>Wis filters</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="VH1tHkH" resname="filter.title">
|
||||||
|
<source>filter.title</source>
|
||||||
|
<target>Filters</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="3VqDiBO" resname="form.tab.error_badge_title">
|
||||||
|
<source>form.tab.error_badge_title</source>
|
||||||
|
<target>Een ongeldige input|%count% ongeldige inputs</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="S2q7CDj" resname="label.empty">
|
||||||
|
<source>label.empty</source>
|
||||||
|
<target>Leeg</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="0EqWTob" resname="label.inaccessible">
|
||||||
|
<source>label.inaccessible</source>
|
||||||
|
<target>Niet toegankelijk</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="OLmlP81" resname="label.inaccessible.explanation">
|
||||||
|
<source>label.inaccessible.explanation</source>
|
||||||
|
<target>Getter bestaat niet voor dit veld of de eigenschap is niet public</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="fAVSIIs" resname="label.null">
|
||||||
|
<source>label.null</source>
|
||||||
|
<target>Niets</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="IsDUuMi" resname="login_page.forgot_password">
|
||||||
|
<source>login_page.forgot_password</source>
|
||||||
|
<target>Wachtwoord vergeten?</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="uxJWiMn" resname="login_page.password">
|
||||||
|
<source>login_page.password</source>
|
||||||
|
<target>Wachtwoord</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="GNqK_5o" resname="login_page.remember_me">
|
||||||
|
<source>login_page.remember_me</source>
|
||||||
|
<target>Onthoud mij</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="eiGmhDt" resname="login_page.sign_in">
|
||||||
|
<source>login_page.sign_in</source>
|
||||||
|
<target>Inloggen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="iFP0IOu" resname="login_page.username">
|
||||||
|
<source>login_page.username</source>
|
||||||
|
<target>Gebruikersnaam</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="nRSzgzm" resname="page_title.exception">
|
||||||
|
<source>page_title.exception</source>
|
||||||
|
<target>Fout|Fouten</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SaZbUiU" resname="paginator.next">
|
||||||
|
<source>paginator.next</source>
|
||||||
|
<target>Volgende</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ANpWHHW" resname="paginator.previous">
|
||||||
|
<source>paginator.previous</source>
|
||||||
|
<target>Vorige</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ZsypGha" resname="paginator.results">
|
||||||
|
<source>paginator.results</source>
|
||||||
|
<target><![CDATA[{0} Geen resultaten|{1} <strong>1</strong> resultaat|]1,Inf] <strong>%count%</strong> resultaten]]></target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="8ViDiWx" resname="settings.appearance.auto">
|
||||||
|
<source>settings.appearance.auto</source>
|
||||||
|
<target>Automatisch</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="h3pBR4_" resname="settings.appearance.dark">
|
||||||
|
<source>settings.appearance.dark</source>
|
||||||
|
<target>Donker</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="JBbrEd7" resname="settings.appearance.label">
|
||||||
|
<source>settings.appearance.label</source>
|
||||||
|
<target>Weergave</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="vxKYCsn" resname="settings.appearance.light">
|
||||||
|
<source>settings.appearance.light</source>
|
||||||
|
<target>Licht</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="E5cimFA" resname="settings.locale">
|
||||||
|
<source>settings.locale</source>
|
||||||
|
<target>Taal</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id=".eqAPKs" resname="user.anonymous">
|
||||||
|
<source>user.anonymous</source>
|
||||||
|
<target>Anonieme gebruiker</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="kgatv6N" resname="user.logged_in_as">
|
||||||
|
<source>user.logged_in_as</source>
|
||||||
|
<target>Aangemeld als</target>
|
||||||
|
</trans-unit>
|
||||||
|
</body>
|
||||||
|
</file>
|
||||||
|
</xliff>
|
||||||
14
translations/VichUploaderBundle+intl-icu.nl.xliff
Normal file
14
translations/VichUploaderBundle+intl-icu.nl.xliff
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||||
|
<file source-language="nl" target-language="nl" datatype="plaintext" original="file.ext">
|
||||||
|
<header>
|
||||||
|
<tool tool-id="symfony" tool-name="Symfony"/>
|
||||||
|
</header>
|
||||||
|
<body>
|
||||||
|
<trans-unit id="EgM1sAf" resname="download">
|
||||||
|
<source>download</source>
|
||||||
|
<target>download</target>
|
||||||
|
</trans-unit>
|
||||||
|
</body>
|
||||||
|
</file>
|
||||||
|
</xliff>
|
||||||
270
translations/messages+intl-icu.nl.xliff
Normal file
270
translations/messages+intl-icu.nl.xliff
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||||
|
<file source-language="nl" target-language="nl" datatype="plaintext" original="file.ext">
|
||||||
|
<header>
|
||||||
|
<tool tool-id="symfony" tool-name="Symfony"/>
|
||||||
|
</header>
|
||||||
|
<body>
|
||||||
|
<trans-unit id="uyMngrK" resname="Active Quiz">
|
||||||
|
<source>Active Quiz</source>
|
||||||
|
<target>Actieve test</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="g.hyGgB" resname="Add">
|
||||||
|
<source>Add</source>
|
||||||
|
<target>Toevoegen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="pv1legV" resname="Add Candidate">
|
||||||
|
<source>Add Candidate</source>
|
||||||
|
<target>Voeg kandidaat toe</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="7aI6qex" resname="Add Candidates">
|
||||||
|
<source>Add Candidates</source>
|
||||||
|
<target>Voeg kandidaten toe</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ehB6pAw" resname="Add a quiz to %name%">
|
||||||
|
<source>Add a quiz to %name%</source>
|
||||||
|
<target>Voeg een test toe aan %name%</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="qiXD5ve" resname="All Seasons">
|
||||||
|
<source>All Seasons</source>
|
||||||
|
<target>Alle seizoenen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="PaW5ihf" resname="Already have an account? Log in">
|
||||||
|
<source>Already have an account? Log in</source>
|
||||||
|
<target>Heb je al een account? Log in</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id=".QFPbFe" resname="Back">
|
||||||
|
<source>Back</source>
|
||||||
|
<target>Terug</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="T6TIfj7" resname="Candidate">
|
||||||
|
<source>Candidate</source>
|
||||||
|
<target>Kandidaat</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="TiTLBGW" resname="Candidate not found">
|
||||||
|
<source>Candidate not found</source>
|
||||||
|
<target>Kandidaat niet gevonden</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="WJJE4q_" resname="Candidates">
|
||||||
|
<source>Candidates</source>
|
||||||
|
<target>Kandidaten</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sFpB4C2" resname="Correct Answers">
|
||||||
|
<source>Correct Answers</source>
|
||||||
|
<target>Goede antwoorden</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="YrMVdGf" resname="Corrections">
|
||||||
|
<source>Corrections</source>
|
||||||
|
<target>Jokers</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Lu7u8U2" resname="Cound not find candidate with name %name%">
|
||||||
|
<source>Cound not find candidate with name %name%</source>
|
||||||
|
<target>Kon kandidaat met naam %name% niet vinden</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="YQUiB4T" resname="Cound not find candidate with name %name% in elimination.">
|
||||||
|
<source>Cound not find candidate with name %name% in elimination.</source>
|
||||||
|
<target>Kon geen kandidaat vinden met de naam %name% in de eliminatie</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="0DvmToq" resname="Create a season">
|
||||||
|
<source>Create a season</source>
|
||||||
|
<target>Maak een seizoen aan</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wsms_zc" resname="Create an account">
|
||||||
|
<source>Create an account</source>
|
||||||
|
<target>Maak een account aan</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="w9AyAnn" resname="Deactivate Quiz">
|
||||||
|
<source>Deactivate Quiz</source>
|
||||||
|
<target>Deactiveer test</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="R9yHzHv" resname="Download Template">
|
||||||
|
<source>Download Template</source>
|
||||||
|
<target>Download sjabloon</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="JZi_tm0" resname="Email">
|
||||||
|
<source>Email</source>
|
||||||
|
<target>E-mail</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="mSo9TGC" resname="Enter name">
|
||||||
|
<source>Enter name</source>
|
||||||
|
<target>Voer een naam in</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="RnI7jJT" resname="Enter your name">
|
||||||
|
<source>Enter your name</source>
|
||||||
|
<target>Voor je naam in</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="OGiIhMH" resname="Green">
|
||||||
|
<source>Green</source>
|
||||||
|
<target>Groen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="k1X7w12" resname="Invalid season code">
|
||||||
|
<source>Invalid season code</source>
|
||||||
|
<target>Ongeldige seizoencode</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="q0FeoCr" resname="Load Prepared Elimination">
|
||||||
|
<source>Load Prepared Elimination</source>
|
||||||
|
<target>Laad voorbereide eliminatie</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="JKl2Twv" resname="Logout">
|
||||||
|
<source>Logout</source>
|
||||||
|
<target>Uitloggen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="NCItilE" resname="Make active">
|
||||||
|
<source>Make active</source>
|
||||||
|
<target>Maak actief</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="WP2lXKC" resname="Manage">
|
||||||
|
<source>Manage</source>
|
||||||
|
<target>Beheren</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="LZzySF." resname="Manage Quiz">
|
||||||
|
<source>Manage Quiz</source>
|
||||||
|
<target>Beheer test</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="wbMeKOh" resname="Name">
|
||||||
|
<source>Name</source>
|
||||||
|
<target>Naam</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="nOHriCl" resname="No active quiz">
|
||||||
|
<source>No active quiz</source>
|
||||||
|
<target>Geen actieve test</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="swW4qFE" resname="No results">
|
||||||
|
<source>No results</source>
|
||||||
|
<target>Geen resultaten</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="k7Eqnjt" resname="Number of dropouts:">
|
||||||
|
<source>Number of dropouts:</source>
|
||||||
|
<target>Aantal afvallers:</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="PywqOf4" resname="Owner(s)">
|
||||||
|
<source>Owner(s)</source>
|
||||||
|
<target>Eigena(a)r(en)</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="GqmFSHc" resname="Password">
|
||||||
|
<source>Password</source>
|
||||||
|
<target>Wachtwoord</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="6EclFME" resname="Please Confirm your Email">
|
||||||
|
<source>Please Confirm your Email</source>
|
||||||
|
<target>messages</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="lSX_PHJ" resname="Please sign in">
|
||||||
|
<source>Please sign in</source>
|
||||||
|
<target>Log in aub</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ruFGaU." resname="Please upload a valid XLSX file">
|
||||||
|
<source>Please upload a valid XLSX file</source>
|
||||||
|
<target>Upload een geldig XLSX-bestand</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="YG9Osau" resname="Prepare Custom Elimination">
|
||||||
|
<source>Prepare Custom Elimination</source>
|
||||||
|
<target>Bereid aangepaste eliminatie voor</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Rx5irUP" resname="Questions">
|
||||||
|
<source>Questions</source>
|
||||||
|
<target>Vragen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="0tv0gq." resname="Quiz">
|
||||||
|
<source>Quiz</source>
|
||||||
|
<target>Test</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="4BzxOP3" resname="Quiz (xlsx)">
|
||||||
|
<source>Quiz (xlsx)</source>
|
||||||
|
<target>Test (xlsx)</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="nU5BEhV" resname="Quiz Added!">
|
||||||
|
<source>Quiz Added!</source>
|
||||||
|
<target>Test toegevoegd!</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="LbVe.2c" resname="Quiz completed">
|
||||||
|
<source>Quiz completed</source>
|
||||||
|
<target>Test voltooid</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="frxoIkW" resname="Quiz name">
|
||||||
|
<source>Quiz name</source>
|
||||||
|
<target>Testnaam</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="bggVfH9" resname="Quizzes">
|
||||||
|
<source>Quizzes</source>
|
||||||
|
<target>Tests</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="P1HcfAu" resname="Red">
|
||||||
|
<source>Red</source>
|
||||||
|
<target>Rood</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="fGfBzt6" resname="Register">
|
||||||
|
<source>Register</source>
|
||||||
|
<target>Registreren</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="WevL4T_" resname="Remember me">
|
||||||
|
<source>Remember me</source>
|
||||||
|
<target>Onthoud mij</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Z9CSKpk" resname="Repeat Password">
|
||||||
|
<source>Repeat Password</source>
|
||||||
|
<target>Herhaal wachtwoord</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="z9OKodR" resname="Save">
|
||||||
|
<source>Save</source>
|
||||||
|
<target>Opslaan</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="8HUcmWU" resname="Save and start elimination">
|
||||||
|
<source>Save and start elimination</source>
|
||||||
|
<target>Opslaan en start eliminatie</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="uRWqG15" resname="Score">
|
||||||
|
<source>Score</source>
|
||||||
|
<target>Score</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="yH9A3q0" resname="Season">
|
||||||
|
<source>Season</source>
|
||||||
|
<target>Seizoen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="yj8.c2D" resname="Season Code">
|
||||||
|
<source>Season Code</source>
|
||||||
|
<target>Seizoencode</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="1ULw_4S" resname="Season Name">
|
||||||
|
<source>Season Name</source>
|
||||||
|
<target>Seizoennaam</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="kc_J96C" resname="Seasons">
|
||||||
|
<source>Seasons</source>
|
||||||
|
<target>Seizoenen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="pNIxNSX" resname="Sign in">
|
||||||
|
<source>Sign in</source>
|
||||||
|
<target>Log in</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="2QO7aYC" resname="Start Elimination">
|
||||||
|
<source>Start Elimination</source>
|
||||||
|
<target>Start eliminatie</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="9m8DOBg" resname="Submit">
|
||||||
|
<source>Submit</source>
|
||||||
|
<target>Verstuur</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="_z4el3Z" resname="The password fields must match.">
|
||||||
|
<source>The password fields must match.</source>
|
||||||
|
<target>De wachtwoorden moeten overeen komen.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="HuzRgeN" resname="There are no answers for this question">
|
||||||
|
<source>There are no answers for this question</source>
|
||||||
|
<target>Er zijn geen antwoorden voor deze vraag</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Dptvysv" resname="Time">
|
||||||
|
<source>Time</source>
|
||||||
|
<target>Tijd</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="vVQAP9A" resname="Your Seasons">
|
||||||
|
<source>Your Seasons</source>
|
||||||
|
<target>Jouw seizoenen</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="m80cBv0" resname="Your email address has been verified.">
|
||||||
|
<source>Your email address has been verified.</source>
|
||||||
|
<target>Je e-mailadres is geverifieerd.</target>
|
||||||
|
</trans-unit>
|
||||||
|
</body>
|
||||||
|
</file>
|
||||||
|
</xliff>
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
'Active Quiz': 'Actieve test'
|
|
||||||
Add: Toevoegen
|
|
||||||
'Add Candidate': 'Voeg kandidaat toe'
|
|
||||||
'Add Candidates': 'Voeg kandidaten toe'
|
|
||||||
'Add a quiz to %name%': 'Voeg een test toe aan %name%'
|
|
||||||
'All Seasons': 'Alle seizoenen'
|
|
||||||
'Already have an account? Log in': 'Heb je al een account? Log in'
|
|
||||||
Back: Terug
|
|
||||||
Candidate: Kandidaat
|
|
||||||
'Candidate not found': 'Kandidaat niet gevonden'
|
|
||||||
Candidates: Kandidaten
|
|
||||||
'Correct Answers': 'Goede antwoorden'
|
|
||||||
Corrections: Jokers
|
|
||||||
'Cound not find candidate with name %name%': 'Kon kandidaat met naam %name% niet vinden'
|
|
||||||
'Create a season': 'Maak een seizoen aan'
|
|
||||||
'Create an account': 'Maak een account aan'
|
|
||||||
'Deactivate Quiz': 'Deactiveer test'
|
|
||||||
'Download Template': 'Download sjabloon'
|
|
||||||
Email: E-mail
|
|
||||||
'Enter your name': 'Voor je naam in'
|
|
||||||
'Invalid season code': 'Ongeldige seizoencode'
|
|
||||||
'Load Prepared Elimination': 'Laad voorbereide eliminatie'
|
|
||||||
Logout: Uitloggen
|
|
||||||
'Make active': 'Maak actief'
|
|
||||||
Manage: Beheren
|
|
||||||
'Manage Quiz': 'Beheer test'
|
|
||||||
Name: Naam
|
|
||||||
'No active quiz': 'Geen actieve test'
|
|
||||||
'No results': 'Geen resultaten'
|
|
||||||
'Number of dropouts:': 'Aantal afvallers:'
|
|
||||||
Owner(s): Eigena(a)r(en)
|
|
||||||
Password: Wachtwoord
|
|
||||||
'Please Confirm your Email': messages
|
|
||||||
'Please sign in': 'Log in aub'
|
|
||||||
'Please upload a valid XLSX file': 'Upload een geldig XLSX-bestand'
|
|
||||||
'Prepare Custom Elimination': 'Bereid aangepaste eliminatie voor'
|
|
||||||
Questions: Vragen
|
|
||||||
Quiz: Test
|
|
||||||
'Quiz (xlsx)': 'Test (xlsx)'
|
|
||||||
'Quiz Added!': 'Test toegevoegd!'
|
|
||||||
'Quiz completed': 'Test voltooid'
|
|
||||||
'Quiz name': Testnaam
|
|
||||||
Quizzes: Tests
|
|
||||||
Register: Registreren
|
|
||||||
'Remember me': 'Onthoud mij'
|
|
||||||
'Repeat Password': 'Herhaal wachtwoord'
|
|
||||||
Save: Opslaan
|
|
||||||
'Save and start elimination': 'Opslaan en start eliminatie'
|
|
||||||
Score: Score
|
|
||||||
Season: Seizoen
|
|
||||||
'Season Code': Seizoencode
|
|
||||||
'Season Name': Seizoennaam
|
|
||||||
Seasons: Seizoenen
|
|
||||||
'Sign in': 'Log in'
|
|
||||||
'Start Elimination': 'Start eliminatie'
|
|
||||||
Submit: Verstuur
|
|
||||||
'The password fields must match.': 'De wachtwoorden moeten overeen komen.'
|
|
||||||
'There are no answers for this question': 'Er zijn geen antwoorden voor deze vraag'
|
|
||||||
Time: Tijd
|
|
||||||
'Your Seasons': 'Jouw seizoenen'
|
|
||||||
'Your email address has been verified.': 'Je e-mailadres is geverifieerd.'
|
|
||||||
26
translations/validators.nl.xliff
Normal file
26
translations/validators.nl.xliff
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||||
|
<file source-language="nl" target-language="nl" datatype="plaintext" original="file.ext">
|
||||||
|
<header>
|
||||||
|
<tool tool-id="symfony" tool-name="Symfony"/>
|
||||||
|
</header>
|
||||||
|
<body>
|
||||||
|
<trans-unit id="B9r0Hn5" resname="Error">
|
||||||
|
<source>Error</source>
|
||||||
|
<target>Fout</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="B7yoMOR" resname="Please enter a password">
|
||||||
|
<source>Please enter a password</source>
|
||||||
|
<target>Voer je wachtwoord in</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="vsM4tSv" resname="There is already an account with this email">
|
||||||
|
<source>There is already an account with this email</source>
|
||||||
|
<target>Er is al een account met dit e-mailadres</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="_OmnKuR" resname="Your password should be at least {{ limit }} characters">
|
||||||
|
<source>Your password should be at least {{ limit }} characters</source>
|
||||||
|
<target>Je wachtwoord moet minimaal {{ limit }} karakters lang zijn</target>
|
||||||
|
</trans-unit>
|
||||||
|
</body>
|
||||||
|
</file>
|
||||||
|
</xliff>
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
Error: Fout
|
|
||||||
'Please enter a password': 'Voer je wachtwoord in'
|
|
||||||
'There is already an account with this email': 'Er is al een account met dit e-mailadres'
|
|
||||||
'Your password should be at least {{ limit }} characters': 'Je wachtwoord moet minimaal {{ limit }} karakters lang zijn'
|
|
||||||
Reference in New Issue
Block a user