Skip to content

Commit

Permalink
Add localization dropdown to test site
Browse files Browse the repository at this point in the history
  • Loading branch information
curry684 committed Jan 16, 2025
1 parent 384c033 commit 1fee02f
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 6 deletions.
2 changes: 1 addition & 1 deletion tests/Fixture/config/services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration
parameters:
default_locale: en
locales: en|nl
locales: en|nl|fr|de|ru

services:
# default configuration for services in *this* file
Expand Down
7 changes: 7 additions & 0 deletions tests/Fixture/src/Controller/PageController.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ public function fakeSuccess(Request $request): Response

return $this->render('form.html.twig', [
'form' => $form->createView(),
'languages' => self::getLanguages(),
]);
}

Expand All @@ -97,6 +98,12 @@ private function finishRequest(FormInterface $form, Request $request): Response

return $this->render('form.html.twig', [
'form' => $form->createView(),
'languages' => self::getLanguages(),
]);
}

private static function getLanguages(): array
{
return array_map(fn (string $match) => mb_substr($match, -7, 2), glob(__DIR__ . '/../../../../translations/antispam+intl-icu.[a-z][a-z].yaml'));
}
}
29 changes: 24 additions & 5 deletions tests/Fixture/templates/base.html.twig
Original file line number Diff line number Diff line change
@@ -1,28 +1,47 @@
<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<html lang="{{ app.request.locale }}" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ title }}</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha256-PI8n5gCcz9cQqQXm3PEtDuPG8qx9oFsFctPg0S5zb8g=" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha256-3gQJhtmj7YnV1fmtbVcnAV6eI4ws0Tr48bVZCThtCGQ=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@floating-ui/[email protected]"></script>
<script src="https://cdn.jsdelivr.net/npm/@floating-ui/[email protected]"></script>
{% block stylesheets %}
{% endblock %}

{% block javascripts %}
{% endblock %}
</head>
<body>
<div class="container my-3">
<h1>{{ title|default('No title set') }}</h1>
<header class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container">
<a class="navbar-brand" href="/">{{ title|default('No title set') }}</a>
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
{% trans %}Languages{% endtrans %}
</a>
<ul class="dropdown-menu">
{% for language in languages %}
<li><a class="dropdown-item" href="/{{ language }}/">{{ ('languages.native.' ~ language)|trans }}</a></li>
{% endfor %}
</ul>
</li>
</ul>
</div>
</header>
<main class="container my-3">
{% for message in app.session.flashBag.get('message') %}
<div class="alert alert-primary alert-dismissible fade show">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endfor %}
{% block body %}{% endblock %}
</div>
</main>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
</body>
</html>
11 changes: 11 additions & 0 deletions tests/Fixture/translations/messages+intl-icu.en.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Name: Name
Email: Email
Message: Message
Submit: Submit

languages.native:
en: English
fr: Français
de: Deutsch
nl: Nederlands
ru: русский
4 changes: 4 additions & 0 deletions tests/Fixture/translations/messages+intl-icu.nl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Name: Naam
Email: Emailadres
Message: Bericht
Submit: Versturen

0 comments on commit 1fee02f

Please sign in to comment.