fix: overwrite common lang function to escape returned string

closes #196, fixes #198
This commit is contained in:
Yassine Doghri 2022-04-21 12:53:47 +00:00
parent 92d5cc50a3
commit 4c490c15bb
83 changed files with 403 additions and 348 deletions

View File

@ -3,6 +3,7 @@
declare(strict_types=1);
use App\Libraries\View;
use Config\Services;
use ViewThemes\Theme;
/**
@ -44,3 +45,40 @@ if (! function_exists('view')) {
->render($name, $options, $saveData);
}
}
if (! function_exists('lang')) {
/**
* A convenience method to translate a string or array of them and format the result with the intl extension's
* MessageFormatter.
*
* Overwritten to include an escape parameter (escaped by default).
*
* @param array<int|string, string> $args
*
* @return string|string[]
*/
function lang(string $line, array $args = [], ?string $locale = null, bool $escape = true): string | array
{
$language = Services::language();
// Get active locale
$activeLocale = $language->getLocale();
if ($locale && $locale !== $activeLocale) {
$language->setLocale($locale);
}
$line = $language->getLine($line, $args);
if (! $locale) {
return $escape ? esc($line) : $line;
}
if ($locale === $activeLocale) {
return $escape ? esc($line) : $line;
}
// Reset to active locale
$language->setLocale($activeLocale);
return $escape ? esc($line) : $line;
}
}

View File

@ -92,6 +92,9 @@ class Credit extends Entity
return $this->episode;
}
/**
* @noRector ReturnTypeDeclarationRector
*/
public function getGroupLabel(): string
{
if ($this->person_group === null) {
@ -101,6 +104,9 @@ class Credit extends Entity
return lang("PersonsTaxonomy.persons.{$this->person_group}.label");
}
/**
* @noRector ReturnTypeDeclarationRector
*/
public function getRoleLabel(): string
{
if ($this->person_group === '') {

View File

@ -340,10 +340,10 @@ if (! function_exists('category_label')) {
{
$categoryLabel = '';
if ($category->parent_id !== null) {
$categoryLabel .= lang('Podcast.category_options.' . $category->parent->code) . ' ';
$categoryLabel .= lang('Podcast.category_options.' . $category->parent->code, [], null, false) . ' ';
}
return $categoryLabel . lang('Podcast.category_options.' . $category->code);
return $categoryLabel . lang('Podcast.category_options.' . $category->code, [], null, false);
}
}

View File

@ -18,12 +18,12 @@ return [
'follow' => 'متابعة',
'followTitle' => 'تابع {actorDisplayName} على الفديفرس!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'النشاط',
'episodes' => 'الحلقات',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'الإحصائيات',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
one {# season}
other {# seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
one {# episode}
other {# episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'First episode published on {0, date, medium}',
],
'sponsor' => 'الراعي',
'funding_links' => 'Funding links for {podcastTitle}',

View File

@ -19,47 +19,47 @@ return [
'followTitle' => 'Heuliañ {actorDisplayName} war ar c\'hevrebed!',
'followers' => '{numberOfFollowers, plural,
0 {heulier·ez ebet}
one {<span class="font-semibold">#</span> heulier·ez}
other {<span class="font-semibold">#</span> heulier·ez}
one {# heulier·ez}
other {# heulier·ez}
}',
'posts' => '{numberOfPosts, plural,
0 {kemennadenn ebet}
1 {<span class="font-semibold">#</span> gemennadenn}
2 {<span class="font-semibold">#</span> gemennadenn}
3 {<span class="font-semibold">#</span> c\'hemennadenn}
4 {<span class="font-semibold">#</span> c\'hemennadenn}
9 {<span class="font-semibold">#</span> c\'hemennadenn}
21 {<span class="font-semibold">#</span> gemennadenn}
22 {<span class="font-semibold">#</span> gemennadenn}
23 {<span class="font-semibold">#</span> c\'hemennadenn}
24 {<span class="font-semibold">#</span> c\'hemennadenn}
29 {<span class="font-semibold">#</span> c\'hemennadenn}
31 {<span class="font-semibold">#</span> gemennadenn}
32 {<span class="font-semibold">#</span> gemennadenn}
33 {<span class="font-semibold">#</span> c\'hemennadenn}
34 {<span class="font-semibold">#</span> c\'hemennadenn}
39 {<span class="font-semibold">#</span> c\'hemennadenn}
41 {<span class="font-semibold">#</span> gemennadenn}
42 {<span class="font-semibold">#</span> gemennadenn}
43 {<span class="font-semibold">#</span> c\'hemennadenn}
44 {<span class="font-semibold">#</span> c\'hemennadenn}
49 {<span class="font-semibold">#</span> c\'hemennadenn}
51 {<span class="font-semibold">#</span> gemennadenn}
52 {<span class="font-semibold">#</span> gemennadenn}
53 {<span class="font-semibold">#</span> c\'hemennadenn}
54 {<span class="font-semibold">#</span> c\'hemennadenn}
59 {<span class="font-semibold">#</span> c\'hemennadenn}
61 {<span class="font-semibold">#</span> gemennadenn}
62 {<span class="font-semibold">#</span> gemennadenn}
63 {<span class="font-semibold">#</span> c\'hemennadenn}
64 {<span class="font-semibold">#</span> c\'hemennadenn}
69 {<span class="font-semibold">#</span> c\'hemennadenn}
81 {<span class="font-semibold">#</span> gemennadenn}
82 {<span class="font-semibold">#</span> gemennadenn}
83 {<span class="font-semibold">#</span> c\'hemennadenn}
84 {<span class="font-semibold">#</span> c\'hemennadenn}
89 {<span class="font-semibold">#</span> c\'hemennadenn}
other {<span class="font-semibold">#</span> kemennadenn}
1 {# gemennadenn}
2 {# gemennadenn}
3 {# c\'hemennadenn}
4 {# c\'hemennadenn}
9 {# c\'hemennadenn}
21 {# gemennadenn}
22 {# gemennadenn}
23 {# c\'hemennadenn}
24 {# c\'hemennadenn}
29 {# c\'hemennadenn}
31 {# gemennadenn}
32 {# gemennadenn}
33 {# c\'hemennadenn}
34 {# c\'hemennadenn}
39 {# c\'hemennadenn}
41 {# gemennadenn}
42 {# gemennadenn}
43 {# c\'hemennadenn}
44 {# c\'hemennadenn}
49 {# c\'hemennadenn}
51 {# gemennadenn}
52 {# gemennadenn}
53 {# c\'hemennadenn}
54 {# c\'hemennadenn}
59 {# c\'hemennadenn}
61 {# gemennadenn}
62 {# gemennadenn}
63 {# c\'hemennadenn}
64 {# c\'hemennadenn}
69 {# c\'hemennadenn}
81 {# gemennadenn}
82 {# gemennadenn}
83 {# c\'hemennadenn}
84 {# c\'hemennadenn}
89 {# c\'hemennadenn}
other {# kemennadenn}
}',
'activity' => 'Oberiantiz',
'episodes' => 'Rannoù',
@ -69,49 +69,49 @@ return [
'title' => 'Stadegoù',
'number_of_seasons' => '{0, plural,
0 {koulzad ebet}
1 {<span class="font-semibold">#</span> c\'houlzad}
2 {<span class="font-semibold">#</span> goulzad}
3 {<span class="font-semibold">#</span> c\'houlzad}
4 {<span class="font-semibold">#</span> c\'houlzad}
9 {<span class="font-semibold">#</span> c\'houlzad}
21 {<span class="font-semibold">#</span> c\'houlzad}
22 {<span class="font-semibold">#</span> goulzad}
23 {<span class="font-semibold">#</span> c\'houlzad}
24 {<span class="font-semibold">#</span> c\'houlzad}
29 {<span class="font-semibold">#</span> c\'houlzad}
31 {<span class="font-semibold">#</span> c\'houlzad}
32 {<span class="font-semibold">#</span> goulzad}
33 {<span class="font-semibold">#</span> c\'houlzad}
34 {<span class="font-semibold">#</span> c\'houlzad}
39 {<span class="font-semibold">#</span> c\'houlzad}
41 {<span class="font-semibold">#</span> c\'houlzad}
42 {<span class="font-semibold">#</span> goulzad}
43 {<span class="font-semibold">#</span> c\'houlzad}
44 {<span class="font-semibold">#</span> c\'houlzad}
49 {<span class="font-semibold">#</span> c\'houlzad}
51 {<span class="font-semibold">#</span> c\'houlzad}
52 {<span class="font-semibold">#</span> goulzad}
53 {<span class="font-semibold">#</span> c\'houlzad}
54 {<span class="font-semibold">#</span> c\'houlzad}
59 {<span class="font-semibold">#</span> c\'houlzad}
61 {<span class="font-semibold">#</span> c\'houlzad}
62 {<span class="font-semibold">#</span> goulzad}
63 {<span class="font-semibold">#</span> c\'houlzad}
64 {<span class="font-semibold">#</span> c\'houlzad}
69 {<span class="font-semibold">#</span> c\'houlzad}
81 {<span class="font-semibold">#</span> c\'houlzad}
82 {<span class="font-semibold">#</span> goulzad}
83 {<span class="font-semibold">#</span> c\'houlzad}
84 {<span class="font-semibold">#</span> c\'houlzad}
89 {<span class="font-semibold">#</span> c\'houlzad}
other {<span class="font-semibold">#</span> koulzad}
1 {# c\'houlzad}
2 {# goulzad}
3 {# c\'houlzad}
4 {# c\'houlzad}
9 {# c\'houlzad}
21 {# c\'houlzad}
22 {# goulzad}
23 {# c\'houlzad}
24 {# c\'houlzad}
29 {# c\'houlzad}
31 {# c\'houlzad}
32 {# goulzad}
33 {# c\'houlzad}
34 {# c\'houlzad}
39 {# c\'houlzad}
41 {# c\'houlzad}
42 {# goulzad}
43 {# c\'houlzad}
44 {# c\'houlzad}
49 {# c\'houlzad}
51 {# c\'houlzad}
52 {# goulzad}
53 {# c\'houlzad}
54 {# c\'houlzad}
59 {# c\'houlzad}
61 {# c\'houlzad}
62 {# goulzad}
63 {# c\'houlzad}
64 {# c\'houlzad}
69 {# c\'houlzad}
81 {# c\'houlzad}
82 {# goulzad}
83 {# c\'houlzad}
84 {# c\'houlzad}
89 {# c\'houlzad}
other {# koulzad}
}',
'number_of_episodes' => '{0, plural,
0 {rann ebet}
one {<span class="font-semibold">#</span> rann}
other {<span class="font-semibold">#</span> rann}
one {# rann}
other {# rann}
}',
'first_published_at' => 'Embannet eo bet ar rann gentañ d\'an/d\'ar<span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Embannet eo bet ar rann gentañ d\'an/d\'ar{0, date, medium}',
],
'sponsor' => 'Harpit',
'funding_links' => 'Liammoù evit arc\'hantaouiñ {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Folgen',
'followTitle' => 'Folge {actorDisplayName} im Fediversum',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> Follower}
other {<span class="font-semibold">#</span> Follower}
one {# Follower}
other {# Follower}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> Beitrag}
other {<span class="font-semibold">#</span> Beiträge}
one {# Beitrag}
other {# Beiträge}
}',
'activity' => 'Aktivitäten',
'episodes' => 'Folgen',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Statistiken',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> Staffel}
other {<span class="font-semibold">#</span> Staffeln}
one {# Staffel}
other {# Staffeln}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> Folge}
other {<span class="font-semibold">#</span> Folgen}
one {# Folge}
other {# Folgen}
}',
'first_published_at' => 'Erste Folge veröffentlicht am <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Erste Folge veröffentlicht am {0, date, medium}',
],
'sponsor' => 'Unterstützer',
'funding_links' => 'Links zur Finanzierung von {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Ακολουθήστε',
'followTitle' => 'Ακολουθήστε το {actorDisplayName} στο fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> ακόλουθος}
other {<span class="font-semibold">#</span> ακόλουθοι}
one {# ακόλουθος}
other {# ακόλουθοι}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> δημοσίευση}
other {<span class="font-semibold">#</span> δημοσιεύσεις}
one {# δημοσίευση}
other {# δημοσιεύσεις}
}',
'activity' => 'Δραστηριότητα',
'episodes' => 'Επεισόδια',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Στατιστικά',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> σεζόν}
other {<span class="font-semibold">#</span> σεζόνς}
one {# σεζόν}
other {# σεζόνς}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> επισόδειο}
other {<span class="font-semibold">#</span> επισόδεια}
one {# επισόδειο}
other {# επισόδεια}
}',
'first_published_at' => 'Το πρώτο επεισόδιο δημοσιεύθηκε στις <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Το πρώτο επεισόδιο δημοσιεύθηκε στις {0, date, medium}',
],
'sponsor' => 'Χορηγός',
'funding_links' => 'Σύνδεσμοι χρηματοδότησης για το {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
one {# season}
other {# seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
one {# episode}
other {# episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'First episode published on {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Seguir',
'followTitle' => '¡Sigue a {actorDisplayName} en el fediverso!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> seguidor}
other {<span class="font-semibold">#</span> seguidores}
one {# seguidor}
other {# seguidores}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> publicación}
other {<span class="font-semibold">#</span> publicaciones}
one {# publicación}
other {# publicaciones}
}',
'activity' => 'Actividad',
'episodes' => 'Episodios',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Estadísticas',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> temporada}
other {<span class="font-semibold">#</span> temporadas}
one {# temporada}
other {# temporadas}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episodio}
other {<span class="font-semibold">#</span> episodios}
one {# episodio}
other {# episodios}
}',
'first_published_at' => 'Primer episodio publicado en <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Primer episodio publicado en {0, date, medium}',
],
'sponsor' => 'Patrocinador',
'funding_links' => 'Enlaces de financiación para {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Suivre',
'followTitle' => 'Suivez {actorDisplayName} sur le fédiverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> abonné·e}
other {<span class="font-semibold">#</span> abonné·e·s}
one {# abonné·e}
other {# abonné·e·s}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> publication}
other {<span class="font-semibold">#</span> publications}
one {# publication}
other {# publications}
}',
'activity' => 'Activité',
'episodes' => 'Épisodes',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Statistiques',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> saison}
other {<span class="font-semibold">#</span> saisons}
one {# saison}
other {# saisons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> épisode}
other {<span class="font-semibold">#</span> épisodes}
one {# épisode}
other {# épisodes}
}',
'first_published_at' => 'Premier épisode publié le <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Premier épisode publié le {0, date, medium}',
],
'sponsor' => 'Soutenez-nous',
'funding_links' => 'Liens de financement pour {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
one {# season}
other {# seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
one {# episode}
other {# episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'First episode published on {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
one {# season}
other {# seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
one {# episode}
other {# episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'First episode published on {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Abonneer',
'followTitle' => 'Abonneer op {actorDisplayName} via de fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> abonnee}
other {<span class="font-semibold">#</span> abonnees}
one {# abonnee}
other {# abonnees}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> bericht}
other {<span class="font-semibold">#</span> berichten}
one {# bericht}
other {# berichten}
}',
'activity' => 'Activiteit',
'episodes' => 'Afleveringen',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Statistieken',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> seizoen}
other {<span class="font-semibold">#</span> seizoenen}
one {# seizoen}
other {# seizoenen}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> aflevering}
other {<span class="font-semibold">#</span> afleveringen}
one {# aflevering}
other {# afleveringen}
}',
'first_published_at' => 'Eerste aflevering gepubliceerd op <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Eerste aflevering gepubliceerd op {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Financiering links voor {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Fylg',
'followTitle' => 'Fylg {actorDisplayName} på fødiverset!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> fylgjar}
other {<span class="font-semibold">#</span> fylgjarar}
one {# fylgjar}
other {# fylgjarar}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> innlegg}
other {<span class="font-semibold">#</span> innlegg}
one {# innlegg}
other {# innlegg}
}',
'activity' => 'Aktivitet',
'episodes' => 'Episodar',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Statistikk',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> sesong}
other {<span class="font-semibold">#</span> sesongar}
one {# sesong}
other {# sesongar}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodar}
one {# episode}
other {# episodar}
}',
'first_published_at' => 'Den fyrste episoden vart lagt ut <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Den fyrste episoden vart lagt ut {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Finansieringslenker for {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
one {# season}
other {# seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
one {# episode}
other {# episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'First episode published on {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',

View File

@ -18,13 +18,13 @@ return [
'follow' => 'Obserwuj',
'followTitle' => 'Obserwuj {actorDisplayName} na fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> obserwujący}
other {<span class="font-semibold">#</span> obserwujących}
one {# obserwujący}
other {# obserwujących}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> wpis}
few {<span class="font-semibold">#</span> wpisy}
other {<span class="font-semibold">#</span> wpisów}
one {# wpis}
few {# wpisy}
other {# wpisów}
}',
'activity' => 'Aktywność',
'episodes' => 'Odcinki',
@ -33,16 +33,16 @@ return [
'stats' => [
'title' => 'Statystyki',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> sezon}
few{<span class="font-semibold">#</span> sezony}
other {<span class="font-semibold">#</span> sezonów}
one {# sezon}
few{# sezony}
other {# sezonów}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> odcinek}
few {<span class="font-semibold">#</span> odcinki}
other {<span class="font-semibold">#</span> odcinków}
one {# odcinek}
few {# odcinki}
other {# odcinków}
}',
'first_published_at' => 'Pierwszy odcinek opublikowany <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Pierwszy odcinek opublikowany {0, date, medium}',
],
'sponsor' => 'Sponsoruj',
'funding_links' => 'Linki finansowania dla {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Seguir',
'followTitle' => 'Siga {actorDisplayName} no fediverso!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> seguidor}
other {<span class="font-semibold">#</span> seguidores}
one {# seguidor}
other {# seguidores}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> publicação}
other {<span class="font-semibold">#</span> publicações}
one {# publicação}
other {# publicações}
}',
'activity' => 'Atividade',
'episodes' => 'Episódios',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Estatísticas',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> temporada}
other {<span class="font-semibold">#</span> temporadas}
one {# temporada}
other {# temporadas}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episódio}
other {<span class="font-semibold">#</span> episódios}
one {# episódio}
other {# episódios}
}',
'first_published_at' => 'Primeiro episódio publicado em <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Primeiro episódio publicado em {0, date, medium}',
],
'sponsor' => 'Patrocinador',
'funding_links' => 'Links de financiamento para {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
one {# season}
other {# seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
one {# episode}
other {# episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'First episode published on {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',

View File

@ -18,16 +18,16 @@ return [
'follow' => 'Подписаться',
'followTitle' => 'Подпишитесь на {actorDisplayName} в федивёрсе!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> подписчик}
few {<span class="font-semibold">#</span> подписчики}
many {<span class="font-semibold">#</span> подписчики}
other {<span class="font-semibold">#</span> подписчики}
one {# подписчик}
few {# подписчики}
many {# подписчики}
other {# подписчики}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> пост}
few {<span class="font-semibold">#</span> постов}
many {<span class="font-semibold">#</span> постов}
other {<span class="font-semibold">#</span> постов}
one {# пост}
few {# постов}
many {# постов}
other {# постов}
}',
'activity' => 'Активность',
'episodes' => 'Выпуски',
@ -36,18 +36,18 @@ return [
'stats' => [
'title' => 'Статистика',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> сезон}
few {<span class="font-semibold">#</span> сезоны}
many {<span class="font-semibold">#</span> сезоны}
other {<span class="font-semibold">#</span> сезоны}
one {# сезон}
few {# сезоны}
many {# сезоны}
other {# сезоны}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> эпизод}
few {<span class="font-semibold">#</span> эпизодов}
many {<span class="font-semibold">#</span> эпизодов}
other {<span class="font-semibold">#</span> эпизодов}
one {# эпизод}
few {# эпизодов}
many {# эпизодов}
other {# эпизодов}
}',
'first_published_at' => 'Первый эпизод опубликован <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'Первый эпизод опубликован {0, date, medium}',
],
'sponsor' => 'Спонсор',
'funding_links' => 'Ссылки на финансирование для {podcastTitle}',

View File

@ -18,12 +18,12 @@ return [
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
@ -32,14 +32,14 @@ return [
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
one {# season}
other {# seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
one {# episode}
other {# episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
'first_published_at' => 'First episode published on {0, date, medium}',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',

View File

@ -67,10 +67,15 @@ class CategoryModel extends Model
function (array $result, Category $category): array {
$result[$category->id] = '';
if ($category->parent !== null) {
$result[$category->id] = lang('Podcast.category_options.' . $category->parent->code) . ' ';
$result[$category->id] = lang(
'Podcast.category_options.' . $category->parent->code,
[],
null,
false
) . ' ';
}
$result[$category->id] .= lang('Podcast.category_options.' . $category->code);
$result[$category->id] .= lang('Podcast.category_options.' . $category->code, [], null, false);
return $result;
},
[],

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'ملفات إضافية',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'الحلقات',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -90,7 +90,7 @@ return [
'Emañ ouzhpennet an destenn-mañ e dibenn an holl rannoù. Ul lec\'h mat eo evit lakaat liammoù ho rouedadoù sokial da skouer.',
'additional_files_section_title' => 'Restroù ouzhpenn',
'additional_files_section_subtitle' =>
'Ar restroù-mañ a c\'hell bezañ implijet gant savennoù all evit aesaat an traoù d\'ho selaouerien·ezed.<br />Sellit ouzh {podcastNamespaceLink} evit muioc\'h a ditouroù.',
'Ar restroù-mañ a c\'hell bezañ implijet gant savennoù all evit aesaat an traoù d\'ho selaouerien·ezed. Sellit ouzh {podcastNamespaceLink} evit muioc\'h a ditouroù.',
'location_section_title' => 'Lec\'h',
'location_section_subtitle' => 'Eus peseurt lec\'h ez eus kaoz er rann-mañ?',
'location_name' => 'Anv pe chomlec\'h al lec\'h',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'Dieser Text wird am Ende jeder Episodenbeschreibung hinzugefügt, es ist ein guter Ort, um zum Beispiel Ihre sozialen Links einzufügen.',
'additional_files_section_title' => 'Zusätzliche Dateien',
'additional_files_section_subtitle' =>
'Diese Filter können von anderen Platformen genutzt werden, um eine bessere Nutzererfahrung bieten zu können.<br />Weitere Informationen sind unter {podcastNamespaceLink} zu finden.',
'Diese Filter können von anderen Platformen genutzt werden, um eine bessere Nutzererfahrung bieten zu können. Weitere Informationen sind unter {podcastNamespaceLink} zu finden.',
'location_section_title' => 'Standort',
'location_section_subtitle' => 'Über welchen Ort handelt diese Folge?',
'location_name' => 'Standortname oder Adresse',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'Keine Folge gefunden!',
'follow' => 'Folgen',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> Follower}
other {<span class="font-semibold">#</span> Follower}
one {# Follower}
other {# Follower}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> Beitrag}
other {<span class="font-semibold">#</span> Beiträge}
one {# Beitrag}
other {# Beiträge}
}',
'activity' => 'Aktivitäten',
'episodes' => 'Folgen',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'Dieses Verfahren kann lange dauern.<br/>Da die aktuelle Version keinen Fortschritt anzeigt, während sie läuft, werden Sie keine Aktuallisierung mehr sehen, bis sie fertig ist.<br/>Im Falle eines Timeout-Fehlers erhöhen Sie den `max_execution_time` Wert.',
'Dieses Verfahren kann lange dauern. Da die aktuelle Version keinen Fortschritt anzeigt, während sie läuft, werden Sie keine Aktuallisierung mehr sehen, bis sie fertig ist. Im Falle eines Timeout-Fehlers erhöhen Sie den `max_execution_time` Wert.',
'old_podcast_section_title' => 'Der zu importierende Podcast',
'old_podcast_section_subtitle' =>
'Stellen Sie sicher, dass Sie die Rechte für diesen Podcast besitzen, bevor Sie ihn importieren. Vervielfältigung und Ausstrahlung eines Podcasts ohne die entsprechenden Rechte sind Piraterie und strafbar.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'Este texto se añade al final de cada descripción de episodios, es un buen lugar para introducir sus enlaces sociales, por ejemplo.',
'additional_files_section_title' => 'Archivos adicionales',
'additional_files_section_subtitle' =>
'Estos archivos pueden ser usados por otras plataformas para proporcionar una mejor experiencia a tu audiencia.<br />Ver el {podcastNamespaceLink} para más información.',
'Estos archivos pueden ser usados por otras plataformas para proporcionar una mejor experiencia a tu audiencia. Ver el {podcastNamespaceLink} para más información.',
'location_section_title' => 'Ubicación',
'location_section_subtitle' => '¿De qué lugar trata este episodio?',
'location_name' => 'Nombre o dirección de ubicación',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'Ce texte est ajouté à la fin de chaque description dépisode, cest un bon endroit pour placer vos liens sociaux par exemple.',
'additional_files_section_title' => 'Fichiers additionels',
'additional_files_section_subtitle' =>
'Ces fichiers pourront être utilisées par dautres plate-formes pour procurer une meilleure expérience à vos auditeurs.<br />Consulter le {podcastNamespaceLink} pour plus dinformations.',
'Ces fichiers pourront être utilisées par dautres plate-formes pour procurer une meilleure expérience à vos auditeurs. Consulter le {podcastNamespaceLink} pour plus dinformations.',
'location_section_title' => 'Localisation',
'location_section_subtitle' => 'De quel lieu cet épisode parle-t-il?',
'location_name' => 'Nom ou adresse du lieu',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'Aucun épisode trouvé!',
'follow' => 'Suivre',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> abonné·e}
other {<span class="font-semibold">#</span> abonné·e·s}
one {# abonné·e}
other {# abonné·e·s}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> publication}
other {<span class="font-semibold">#</span> publications}
one {# publication}
other {# publications}
}',
'activity' => 'Activité',
'episodes' => 'Épisodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'Cette procédure peut prendre du temps.<br/>Dans la mesure où la version actuelle ne montre aucune progression durant lexécution, vous ne pourrez voir aucun changement avant la fin.<br/>En cas derreur de timeout, augmentez la valeur de `max_execution_time`.',
'Cette procédure peut prendre du temps. Dans la mesure où la version actuelle ne montre aucune progression durant lexécution, vous ne pourrez voir aucun changement avant la fin. En cas derreur de timeout, augmentez la valeur de `max_execution_time`.',
'old_podcast_section_title' => 'Le podcast à importer',
'old_podcast_section_subtitle' =>
'Assurez-vous dêtre détenteur des droits du podcast avant de limporter. Copier et diffuser un podcast sans en détenir les droits est assimilable à de la contrefaçon et est passible de poursuites.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'Denne teksten ligg på slutten av kvar episodeskildring, og er ein god stad å ha lenker til td. sosiale nettverk.',
'additional_files_section_title' => 'Fleire filer',
'additional_files_section_subtitle' =>
'Desse filene kan brukast av andre plattformer for å gje publikum ei betre oppleving.<br />Sjå {podcastNamespaceLink} for meir informasjon.',
'Desse filene kan brukast av andre plattformer for å gje publikum ei betre oppleving. Sjå {podcastNamespaceLink} for meir informasjon.',
'location_section_title' => 'Stad',
'location_section_subtitle' => 'Kva stad handlar denne episoden om?',
'location_name' => 'Stadnamn eller adresse',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'Fann ingen episode!',
'follow' => 'Fylg',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> fylgjar}
other {<span class="font-semibold">#</span> fylgjarar}
one {# fylgjar}
other {# fylgjarar}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> innlegg}
other {<span class="font-semibold">#</span> innlegg}
one {# innlegg}
other {# innlegg}
}',
'activity' => 'Aktivitet',
'episodes' => 'Episodar',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'Dette kan ta lang tid.<br/>Denne versjonen syner ikkje framgangen medan importen går, så du vil ikkje sjå noko før han er ferdig.<br/>Viss du får feil med tidsavbrot, aukar du `max_execution_time`-verdien.',
'Dette kan ta lang tid. Denne versjonen syner ikkje framgangen medan importen går, så du vil ikkje sjå noko før han er ferdig. Viss du får feil med tidsavbrot, aukar du `max_execution_time`-verdien.',
'old_podcast_section_title' => 'Podkast å importera',
'old_podcast_section_subtitle' =>
'Syt for at du har rettane til podkasten før du importerer han. Å kopiera og kringkasta ein podkast utan løyve er ulovleg og straffbart.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -90,7 +90,7 @@ return [
'Ten tekst jest dodawany na końcu każdego opisu odcinka; jest to dobre miejsce do wpisania np. linków społecznościowych.',
'additional_files_section_title' => 'Dodatkowe pliki',
'additional_files_section_subtitle' =>
'Pliki te mogą być używane przez inne platformy, aby zapewnić lepsze wrażenia odbiorcom.<br />Więcej informacji znajdziesz w {podcastNamespaceLink}.',
'Pliki te mogą być używane przez inne platformy, aby zapewnić lepsze wrażenia odbiorcom. Więcej informacji znajdziesz w {podcastNamespaceLink}.',
'location_section_title' => 'Lokalizacja',
'location_section_subtitle' => 'O jakim miejscu jest ten odcinek?',
'location_name' => 'Nazwa lub adres lokalizacji',

View File

@ -227,13 +227,13 @@ return [
'no_episode' => 'Nie znaleziono odcinków!',
'follow' => 'Obserwuj',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> obserwujący}
other {<span class="font-semibold">#</span> obserwujących}
one {# obserwujący}
other {# obserwujących}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> wpis}
few {<span class="font-semibold">#</span> wpisy}
other {<span class="font-semibold">#</span> wpisów}
one {# wpis}
few {# wpisy}
other {# wpisów}
}',
'activity' => 'Aktywność',
'episodes' => 'Odcinki',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'Ta procedura może zająć dużo czasu.<br/>Ponieważ bieżąca wersja nie pokazuje żadnego postępu podczas działania, nie zobaczysz żadnych aktualizacji dopóki nie zostanie wykonana.<br/>W przypadku błędu przekroczenia limitu czasu, zwiększ wartość `max_execution_time`.',
'Ta procedura może zająć dużo czasu. Ponieważ bieżąca wersja nie pokazuje żadnego postępu podczas działania, nie zobaczysz żadnych aktualizacji dopóki nie zostanie wykonana. W przypadku błędu przekroczenia limitu czasu, zwiększ wartość `max_execution_time`.',
'old_podcast_section_title' => 'Podcast do zaimportowania',
'old_podcast_section_subtitle' =>
'Upewnij się, że masz prawa do tego podcastu zanim go zaimportujesz. Kopiowanie i nadawanie podcastu bez odpowiednich praw jest piractwem i podlega ściganiu.',

View File

@ -89,7 +89,7 @@ return [
'Este texto é adicionado no final de cada descrição de episódio, é um bom lugar para inserir seus links sociais por exemplo.',
'additional_files_section_title' => 'Arquivos adicionais',
'additional_files_section_subtitle' =>
'Estes arquivos podem ser usados por outras plataformas para fornecer uma melhor experiência ao seu público.<br />Veja {podcastNamespaceLink} para mais informações.',
'Estes arquivos podem ser usados por outras plataformas para fornecer uma melhor experiência ao seu público. Veja {podcastNamespaceLink} para mais informações.',
'location_section_title' => 'Localização',
'location_section_subtitle' => 'Sobre que lugar é este episódio?',
'location_name' => 'Nome ou endereço da localização',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'Nenhum episódio encontrado!',
'follow' => 'Seguir',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> seguidor}
other {<span class="font-semibold">#</span> seguidores}
one {# seguidor}
other {# seguidores}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> publicação}
other {<span class="font-semibold">#</span> publicações}
one {# publicação}
other {# publicações}
}',
'activity' => 'Atividade',
'episodes' => 'Episódios',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'Este procedimento pode levar muito tempo.<br/>Como a versão atual não mostra nenhum progresso enquanto é executada, você não verá nada atualizado até que seja finalizado.<br/>Em caso de erro de tempo limite, aumente o valor de `max_execution_time`.',
'Este procedimento pode levar muito tempo. Como a versão atual não mostra nenhum progresso enquanto é executada, você não verá nada atualizado até que seja finalizado. Em caso de erro de tempo limite, aumente o valor de `max_execution_time`.',
'old_podcast_section_title' => 'O podcast para importar',
'old_podcast_section_subtitle' =>
'Certifique-se de possuir os direitos para esse podcast antes de importá-lo. Copiar e transmitir um podcast sem os direitos adequados é uma pirataria e corre o risco de ser processado.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -89,7 +89,7 @@ return [
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
'additional_files_section_title' => 'Additional files',
'additional_files_section_subtitle' =>
'These files may be used by other platforms to provide better experience to your audience.<br />See the {podcastNamespaceLink} for more information.',
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
'location_section_title' => 'Location',
'location_section_subtitle' => 'What place is this episode about?',
'location_name' => 'Location name or address',

View File

@ -227,12 +227,12 @@ return [
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
one {# follower}
other {# followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
one {# post}
other {# posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',

View File

@ -10,7 +10,7 @@ declare(strict_types=1);
return [
'warning' =>
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
'old_podcast_section_title' => 'The podcast to import',
'old_podcast_section_subtitle' =>
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',

View File

@ -39,6 +39,9 @@ class AnalyticsPodcastsByCountry extends Entity
'hits' => 'integer',
];
/**
* @noRector ReturnTypeDeclarationRector
*/
public function getLabels(): string
{
return lang('Countries.' . $this->attributes['labels']);

View File

@ -44,6 +44,9 @@ class AnalyticsPodcastsByRegion extends Entity
'hits' => 'integer',
];
/**
* @noRector ReturnTypeDeclarationRector
*/
public function getCountryCode(): string
{
return lang('Countries.' . $this->attributes['country_code']);

View File

@ -12,6 +12,6 @@
'castopod' =>
'<a class="inline-flex font-semibold hover:underline focus:ring-accent" href="https://castopod.org/" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a> ' .
CP_VERSION,
]) ?>
], null, false) ?>
</footer>
</aside>

View File

@ -100,6 +100,6 @@
<small><?= lang('Common.powered_by', [
'castopod' =>
'<a class="inline-flex font-semibold hover:underline focus:ring-accent" href="https://castopod.org/" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a>',
]) ?></small>
], null, false) ?></small>
</footer>
</body>

View File

@ -56,6 +56,6 @@
<small><?= lang('Common.powered_by', [
'castopod' =>
'<a class="underline hover:no-underline focus:ring-accent" href="https://castopod.org/" target="_blank" rel="noreferrer noopener">Castopod</a>',
]) ?></small>
], null, false) ?></small>
</footer>
</body>

View File

@ -59,6 +59,6 @@
<small><?= lang('Common.powered_by', [
'castopod' =>
'<a class="inline-flex font-semibold hover:underline focus:ring-accent" href="https://castopod.org/" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a>',
]) ?></small>
], null, false) ?></small>
</footer>
</body>

View File

@ -66,7 +66,7 @@
<p><?= lang('Common.powered_by', [
'castopod' =>
'<a class="inline-flex font-semibold text-skin-muted hover:underline focus:ring-accent" href="https://castopod.org" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a>',
]) ?></p>
], null, false) ?></p>
</div>
</footer>
</div>

View File

@ -70,6 +70,6 @@
<?= lang('Common.powered_by', [
'castopod' =>
'<a class="inline-flex font-semibold hover:underline focus:ring-accent" href="https://castopod.org" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a>',
]) ?>
], null, false) ?>
</footer>
</body>

View File

@ -61,6 +61,6 @@
<?= lang('Common.powered_by', [
'castopod' =>
'<a class="inline-flex font-semibold hover:underline focus:ring-accent" href="https://castopod.org" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a>',
]) ?>
], null, false) ?>
</footer>
</body>

View File

@ -34,6 +34,6 @@
<small class="py-4 text-center border-t border-subtle"><?= lang('Common.powered_by', [
'castopod' =>
'<a class="inline-flex font-semibold hover:underline focus:ring-accent" href="https://castopod.org/" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a>',
]) ?></small>
], null, false) ?></small>
</footer>
</body>

View File

@ -30,6 +30,6 @@
<small><?= lang('Common.powered_by', [
'castopod' =>
'<a class="inline-flex font-semibold hover:underline focus:ring-accent" href="https://castopod.org" target="_blank" rel="noreferrer noopener">Castopod' . icon('castopod', 'ml-1 text-lg', 'social') . '</a>',
]) ?></small>
], null, false) ?></small>
</footer>
</body>