mirror of
https://github.com/ad-aures/castopod.git
synced 2026-04-13 11:37:46 +02:00
chore: new Crowdin updates
This commit is contained in:
parent
3ce6541003
commit
9843ce3882
288 changed files with 9149 additions and 867 deletions
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'كافة حلقات البودكاست',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'العودة إلى البودكاست',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -38,5 +38,6 @@ return [
|
|||
other {# evezhiadenn}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Holl rannoù ar podkast',
|
||||
'episodes_recycle_bin' => 'Poubellenn',
|
||||
'back_to_podcast' => 'Mont d\'ar podkast en-dro',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -23,44 +23,44 @@ return [
|
|||
other {# heulier·ez}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
0 {kemennadenn ebet}
|
||||
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}
|
||||
}',
|
||||
0 {kemennadenn ebet}
|
||||
1 {# gemennadenn}
|
||||
2 {# gemennadenn}
|
||||
3 {# c\'hemennadenn}
|
||||
4 {# c\'hemennadenn}
|
||||
9 {# c\'hemennadenn}
|
||||
other {# kemennadenn}
|
||||
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}
|
||||
}',
|
||||
'activity' => 'Oberiantiz',
|
||||
'episodes' => 'Rannoù',
|
||||
'episodes_title' => 'Rannoù {podcastTitle}',
|
||||
|
|
@ -68,50 +68,50 @@ return [
|
|||
'stats' => [
|
||||
'title' => 'Stadegoù',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
0 {koulzad ebet}
|
||||
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}
|
||||
}',
|
||||
0 {koulzad ebet}
|
||||
1 {# c\'houlzad}
|
||||
2 {# goulzad}
|
||||
3 {# c\'houlzad}
|
||||
4 {# c\'houlzad}
|
||||
9 {# c\'houlzad}
|
||||
other {# koulzad}
|
||||
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}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
0 {rann ebet}
|
||||
one {# rann}
|
||||
other {# rann}
|
||||
}',
|
||||
'first_published_at' => 'Embannet eo bet ar rann gentañ d\'an/d\'ar{0, date, medium}',
|
||||
0 {rann ebet}
|
||||
one {# rann}
|
||||
other {# rann}
|
||||
}',
|
||||
'first_published_at' => 'Embannet eo bet ar rann gentañ d\'ar/d\'an {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Harpit',
|
||||
'funding_links' => 'Liammoù evit arc\'hantaouiñ {podcastTitle}',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ return [
|
|||
one {# Person}
|
||||
other {# Personen}
|
||||
}',
|
||||
'persons_list' => 'Personen',
|
||||
'persons_list' => 'Mitwirkende',
|
||||
'back_to_episodes' => 'Zurück zu Folgen von {podcast}',
|
||||
'comments' => 'Kommentare',
|
||||
'activity' => 'Aktivitäten',
|
||||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# Kommentare}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Alle Podcast-Folgen',
|
||||
'episodes_recycle_bin' => 'Papierkorb',
|
||||
'back_to_podcast' => 'Zurück zum Podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'feed' => 'RSS-feed',
|
||||
'feed' => 'RSS-Feed',
|
||||
'season' => 'Staffel {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} Folgen ({episodeCount})',
|
||||
'list_of_episodes_season' =>
|
||||
|
|
@ -18,28 +18,28 @@ return [
|
|||
'follow' => 'Folgen',
|
||||
'followTitle' => 'Folge {actorDisplayName} im Fediversum',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# Follower}
|
||||
other {# Follower}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# Beitrag}
|
||||
other {# Beiträge}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Aktivitäten',
|
||||
'episodes' => 'Folgen',
|
||||
'episodes' => 'Episoden',
|
||||
'episodes_title' => 'Folgen von {podcastTitle}',
|
||||
'about' => 'Über',
|
||||
'stats' => [
|
||||
'title' => 'Statistiken',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# Staffel}
|
||||
other {# Staffeln}
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# Folge}
|
||||
other {# Folgen}
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'Erste Folge veröffentlicht am {0, date, medium}',
|
||||
'first_published_at' => 'Erste Episode veröffentlicht am {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Unterstützer',
|
||||
'funding_links' => 'Links zur Finanzierung von {podcastTitle}',
|
||||
|
|
@ -49,5 +49,5 @@ return [
|
|||
one {# Person}
|
||||
other {# Personen}
|
||||
}',
|
||||
'persons_list' => 'Personen',
|
||||
'persons_list' => 'Mitwirkende',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ return [
|
|||
'reply_to' => 'Antorten auf @{actorUsername}',
|
||||
'form' => [
|
||||
'message_placeholder' => 'Scheibe eine Nachricht…',
|
||||
'episode_message_placeholder' => 'Schreibe eine Nachricht für die Folge…',
|
||||
'episode_url_placeholder' => 'URL der Folge',
|
||||
'episode_message_placeholder' => 'Schreibe eine Nachricht für die Episode…',
|
||||
'episode_url_placeholder' => 'URL der Episode',
|
||||
'reply_to_placeholder' => 'Antworten auf @{actorUsername}',
|
||||
'submit' => 'Senden',
|
||||
'submit_reply' => 'Antwort senden',
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# σχόλια}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Όλα τα επεισόδια του podcast',
|
||||
'episodes_recycle_bin' => 'Κάδος Aνακύκλωσης',
|
||||
'back_to_podcast' => 'Μετάβαση πίσω στο podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ return [
|
|||
'stats' => [
|
||||
'title' => 'Στατιστικά',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# σεζόν}
|
||||
other {# σεζόνς}
|
||||
one {# κύκλος}
|
||||
other {# κύκλοι}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# επισόδειο}
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comentarios}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Todos los episodios del podcast',
|
||||
'episodes_recycle_bin' => 'Papelera de reciclaje',
|
||||
'back_to_podcast' => 'Regresar al podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ return [
|
|||
one {# episodio}
|
||||
other {# episodios}
|
||||
}',
|
||||
'first_published_at' => 'Primer episodio publicado en {0, date, medium}',
|
||||
'first_published_at' => 'Primer episodio publicado el {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Patrocinador',
|
||||
'funding_links' => 'Enlaces de financiación para {podcastTitle}',
|
||||
|
|
|
|||
34
app/Language/fa/Comment.php
Normal file
34
app/Language/fa/Comment.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
|
||||
'back_to_comments' => 'Back to comments',
|
||||
'form' => [
|
||||
'episode_message_placeholder' => 'Write a comment…',
|
||||
'reply_to_placeholder' => 'Reply to @{actorUsername}',
|
||||
'submit' => 'Send',
|
||||
'submit_reply' => 'Reply',
|
||||
],
|
||||
'likes' => '{numberOfLikes, plural,
|
||||
one {# like}
|
||||
other {# likes}
|
||||
}',
|
||||
'replies' => '{numberOfReplies, plural,
|
||||
one {# reply}
|
||||
other {# replies}
|
||||
}',
|
||||
'like' => 'Like',
|
||||
'reply' => 'Reply',
|
||||
'view_replies' => 'View replies ({numberOfReplies})',
|
||||
'block_actor' => 'Block user @{actorUsername}',
|
||||
'block_domain' => 'Block domain @{actorDomain}',
|
||||
'delete' => 'Delete comment',
|
||||
];
|
||||
29
app/Language/fa/Common.php
Normal file
29
app/Language/fa/Common.php
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'yes' => 'Yes',
|
||||
'no' => 'No',
|
||||
'cancel' => 'Cancel',
|
||||
'optional' => 'Optional',
|
||||
'close' => 'Close',
|
||||
'home' => 'Home',
|
||||
'explicit' => 'Explicit',
|
||||
'powered_by' => 'Powered by {castopod}',
|
||||
'go_back' => 'Go back',
|
||||
'play_episode_button' => [
|
||||
'play' => 'Play',
|
||||
'playing' => 'Playing',
|
||||
],
|
||||
'read_more' => 'Read more',
|
||||
'read_less' => 'Read less',
|
||||
'see_more' => 'See more',
|
||||
'see_less' => 'See less',
|
||||
];
|
||||
34
app/Language/fa/Episode.php
Normal file
34
app/Language/fa/Episode.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'season_abbr' => 'S{seasonNumber}',
|
||||
'number' => 'Episode {episodeNumber}',
|
||||
'number_abbr' => 'Ep. {episodeNumber}',
|
||||
'season_episode' => 'Season {seasonNumber} episode {episodeNumber}',
|
||||
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
|
||||
'persons' => '{personsCount, plural,
|
||||
one {# person}
|
||||
other {# persons}
|
||||
}',
|
||||
'persons_list' => 'Persons',
|
||||
'back_to_episodes' => 'Back to episodes of {podcast}',
|
||||
'comments' => 'Comments',
|
||||
'activity' => 'Activity',
|
||||
'description' => 'Episode description',
|
||||
'number_of_comments' => '{numberOfComments, plural,
|
||||
one {# comment}
|
||||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
];
|
||||
37
app/Language/fa/Fediverse.php
Normal file
37
app/Language/fa/Fediverse.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'your_handle' => 'Your handle',
|
||||
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
|
||||
'follow' => [
|
||||
'label' => 'Follow',
|
||||
'title' => 'Follow {actorDisplayName}',
|
||||
'subtitle' => 'You are going to follow:',
|
||||
'accountNotFound' => 'The account could not be found.',
|
||||
'remoteFollowNotAllowed' => 'Seems like the account server does not allow remote follows…',
|
||||
'submit' => 'Proceed to follow',
|
||||
],
|
||||
'favourite' => [
|
||||
'title' => "Favourite {actorDisplayName}'s post",
|
||||
'subtitle' => 'You are going to favourite:',
|
||||
'submit' => 'Proceed to favourite',
|
||||
],
|
||||
'reblog' => [
|
||||
'title' => "Share {actorDisplayName}'s post",
|
||||
'subtitle' => 'You are going to share:',
|
||||
'submit' => 'Proceed to share',
|
||||
],
|
||||
'reply' => [
|
||||
'title' => "Reply to {actorDisplayName}'s post",
|
||||
'subtitle' => 'You are going to reply to:',
|
||||
'submit' => 'Proceed to reply',
|
||||
],
|
||||
];
|
||||
20
app/Language/fa/Home.php
Normal file
20
app/Language/fa/Home.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'sort_by' => 'Sort by',
|
||||
'sort_options' => [
|
||||
'activity' => 'Recent activity',
|
||||
'created_desc' => 'Newest first',
|
||||
'created_asc' => 'Oldest first',
|
||||
],
|
||||
'no_podcast' => 'No podcast found',
|
||||
];
|
||||
17
app/Language/fa/Page.php
Normal file
17
app/Language/fa/Page.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => 'Back to home',
|
||||
'map' => [
|
||||
'title' => 'Map',
|
||||
'description' => 'Discover podcast episodes on {siteName} that are placed on a map! Travel through the map and listen to episodes that talk about specific locations.',
|
||||
],
|
||||
];
|
||||
53
app/Language/fa/Podcast.php
Normal file
53
app/Language/fa/Podcast.php
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'feed' => 'RSS Podcast feed',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
'list_of_episodes_season' =>
|
||||
'Season {seasonNumber} episodes ({episodeCount})',
|
||||
'no_episode' => 'No episode found!',
|
||||
'follow' => 'Follow',
|
||||
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activity',
|
||||
'episodes' => 'Episodes',
|
||||
'episodes_title' => 'Episodes of {podcastTitle}',
|
||||
'about' => 'About',
|
||||
'stats' => [
|
||||
'title' => 'Stats',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Sponsor',
|
||||
'funding_links' => 'Funding links for {podcastTitle}',
|
||||
'find_on' => 'Find {podcastTitle} on',
|
||||
'listen_on' => 'Listen on',
|
||||
'persons' => '{personsCount, plural,
|
||||
one {# person}
|
||||
other {# persons}
|
||||
}',
|
||||
'persons_list' => 'Persons',
|
||||
];
|
||||
40
app/Language/fa/Post.php
Normal file
40
app/Language/fa/Post.php
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "{actorDisplayName}'s post",
|
||||
'back_to_actor_posts' => 'Back to {actor} posts',
|
||||
'actor_shared' => '{actor} shared',
|
||||
'reply_to' => 'Reply to @{actorUsername}',
|
||||
'form' => [
|
||||
'message_placeholder' => 'Write a message…',
|
||||
'episode_message_placeholder' => 'Write a message for the episode…',
|
||||
'episode_url_placeholder' => 'Episode URL',
|
||||
'reply_to_placeholder' => 'Reply to @{actorUsername}',
|
||||
'submit' => 'Send',
|
||||
'submit_reply' => 'Reply',
|
||||
],
|
||||
'favourites' => '{numberOfFavourites, plural,
|
||||
one {# favourite}
|
||||
other {# favourites}
|
||||
}',
|
||||
'reblogs' => '{numberOfReblogs, plural,
|
||||
one {# share}
|
||||
other {# shares}
|
||||
}',
|
||||
'replies' => '{numberOfReplies, plural,
|
||||
one {# reply}
|
||||
other {# replies}
|
||||
}',
|
||||
'expand' => 'Expand post',
|
||||
'block_actor' => 'Block user @{actorUsername}',
|
||||
'block_domain' => 'Block domain @{actorDomain}',
|
||||
'delete' => 'Delete post',
|
||||
];
|
||||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# commentaires}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Tous les épisodes du podcast',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Revenir au podcast',
|
||||
];
|
||||
|
|
|
|||
38
app/Language/gd/Comment.php
Normal file
38
app/Language/gd/Comment.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "Am beachd aig {actorDisplayName} air {episodeTitle}",
|
||||
'back_to_comments' => 'Air ais dha na beachdan',
|
||||
'form' => [
|
||||
'episode_message_placeholder' => 'Sgrìobh beachd…',
|
||||
'reply_to_placeholder' => 'Freagair gu @{actorUsername}',
|
||||
'submit' => 'Cuir',
|
||||
'submit_reply' => 'Freagair',
|
||||
],
|
||||
'likes' => '{numberOfLikes, plural,
|
||||
one {# annsachd}
|
||||
two {# annsachd}
|
||||
few {# annsachdan}
|
||||
other {# annsachd}
|
||||
}',
|
||||
'replies' => '{numberOfReplies, plural,
|
||||
one {# fhreagairt}
|
||||
two {# fhreagairt}
|
||||
few {# freagairtean}
|
||||
other {# freagairt}
|
||||
}',
|
||||
'like' => 'Cuir ris na h-annsachdan',
|
||||
'reply' => 'Freagair',
|
||||
'view_replies' => 'Seall na freagairtean ({numberOfReplies})',
|
||||
'block_actor' => 'Bac an cleachdaiche @{actorUsername}',
|
||||
'block_domain' => 'Bac an àrainn @{actorDomain}',
|
||||
'delete' => 'Sguab às am beachd',
|
||||
];
|
||||
29
app/Language/gd/Common.php
Normal file
29
app/Language/gd/Common.php
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'yes' => 'Tha',
|
||||
'no' => 'Chan eil',
|
||||
'cancel' => 'Sguir dheth',
|
||||
'optional' => 'Roghainneil',
|
||||
'close' => 'Dùin',
|
||||
'home' => 'Dachaigh',
|
||||
'explicit' => 'Frionasach',
|
||||
'powered_by' => 'Le cumhachd {castopod}',
|
||||
'go_back' => 'Air ais',
|
||||
'play_episode_button' => [
|
||||
'play' => 'Cluich',
|
||||
'playing' => '’Ga chluich',
|
||||
],
|
||||
'read_more' => 'Leugh an còrr',
|
||||
'read_less' => 'Leugh nas lugha dheth',
|
||||
'see_more' => 'Seall barrachd dheth',
|
||||
'see_less' => 'Seall nas lugha dheth',
|
||||
];
|
||||
38
app/Language/gd/Episode.php
Normal file
38
app/Language/gd/Episode.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'season' => 'Seusan {seasonNumber}',
|
||||
'season_abbr' => 'S{seasonNumber}',
|
||||
'number' => 'Eapasod {episodeNumber}',
|
||||
'number_abbr' => 'Eap. {episodeNumber}',
|
||||
'season_episode' => 'Seusan {seasonNumber} eapasod {episodeNumber}',
|
||||
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
|
||||
'persons' => '{personsCount, plural,
|
||||
one {# neach}
|
||||
two {# dhuine}
|
||||
few {# daoine}
|
||||
other {# duine}
|
||||
}',
|
||||
'persons_list' => 'Daoine',
|
||||
'back_to_episodes' => 'Air ais dha na h-eapasodan aig {podcast}',
|
||||
'comments' => 'Beachdan',
|
||||
'activity' => 'Gnìomhachd',
|
||||
'description' => 'Tuairisgeul an eapasoid',
|
||||
'number_of_comments' => '{numberOfComments, plural,
|
||||
one {# bheachd}
|
||||
two {# bheachd}
|
||||
few {# beachdan}
|
||||
other {# beachd}
|
||||
}',
|
||||
'all_podcast_episodes' => 'A h-uile eapasod a’ phod-chraolaidh',
|
||||
'episodes_recycle_bin' => 'Am biona',
|
||||
'back_to_podcast' => 'Air ais dhan phod-chraoladh',
|
||||
];
|
||||
37
app/Language/gd/Fediverse.php
Normal file
37
app/Language/gd/Fediverse.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'your_handle' => 'An t-aithnichear agad',
|
||||
'your_handle_hint' => 'Cuir a-steach an @ainm_cleachdaiche@àrainn leis a ghabhas tu gnìomh.',
|
||||
'follow' => [
|
||||
'label' => 'Lean air',
|
||||
'title' => 'Lean air {actorDisplayName}',
|
||||
'subtitle' => 'Tha thu gu bhith leantainn air:',
|
||||
'accountNotFound' => 'Cha deach an cunntas a lorg.',
|
||||
'remoteFollowNotAllowed' => 'Tha coltas nach gabh am frithealaiche ri leantainn chèin…',
|
||||
'submit' => 'Lean air adhart gus leantainn air',
|
||||
],
|
||||
'favourite' => [
|
||||
'title' => "Cuir am post aig {actorDisplayName} ris na h-annsachdan",
|
||||
'subtitle' => 'Cuiridh tu seo ris na h-annsachdan:',
|
||||
'submit' => 'Lean air adhart gus a chur ris na h-annsachdan',
|
||||
],
|
||||
'reblog' => [
|
||||
'title' => "Co-roinn am post aig {actorDisplayName}",
|
||||
'subtitle' => 'Tha thu gu bhith co-roinneadh:',
|
||||
'submit' => 'Lean air adhart gus a cho-roinneadh',
|
||||
],
|
||||
'reply' => [
|
||||
'title' => "Freagair dhan phost aig {actorDisplayName}",
|
||||
'subtitle' => 'Tha thu gu bhith freagairt gu:',
|
||||
'submit' => 'Lean air adhart gus freagairt dha',
|
||||
],
|
||||
];
|
||||
20
app/Language/gd/Home.php
Normal file
20
app/Language/gd/Home.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'A h-uile pod-chraoladh',
|
||||
'sort_by' => 'Seòrsaich a-rèir',
|
||||
'sort_options' => [
|
||||
'activity' => 'A ghnìomhachd as ùire',
|
||||
'created_desc' => 'As ùire an toiseach',
|
||||
'created_asc' => 'As sine an toiseach',
|
||||
],
|
||||
'no_podcast' => 'Cha deach pod-chraoladh a lorg',
|
||||
];
|
||||
17
app/Language/gd/Page.php
Normal file
17
app/Language/gd/Page.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => 'Dhachaigh',
|
||||
'map' => [
|
||||
'title' => 'Mapa',
|
||||
'description' => 'Lorg eapasodan pod-chraolaidh air {siteName} a chaidh a chur air a’ mhapa! Seòl am mapa is èist ri eapasodan a bhruidhneas mu àitichean sònraichte.',
|
||||
],
|
||||
];
|
||||
63
app/Language/gd/Podcast.php
Normal file
63
app/Language/gd/Podcast.php
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'feed' => 'Inbhir RSS a’ pod-chraolaidh',
|
||||
'season' => 'Seusan {seasonNumber}',
|
||||
'list_of_episodes_year' => 'Eapasodan {year} ({episodeCount})',
|
||||
'list_of_episodes_season' =>
|
||||
'Eapasodan seusan {seasonNumber} ({episodeCount})',
|
||||
'no_episode' => 'Cha deach eapasod a lorg!',
|
||||
'follow' => 'Lean air',
|
||||
'followTitle' => 'Lean air {actorDisplayName} sa cho-shaoghal!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# neach-leantainn}
|
||||
two {# luchd-leantainn}
|
||||
few {# luchd-leantainn}
|
||||
other {# luchd-leantainn}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# phost}
|
||||
two {# phost}
|
||||
few {# postaichean}
|
||||
other {# post}
|
||||
}',
|
||||
'activity' => 'Gnìomhachd',
|
||||
'episodes' => 'Eapasodan',
|
||||
'episodes_title' => 'Eapasodan aig {podcastTitle}',
|
||||
'about' => 'Mu dhèidhinn',
|
||||
'stats' => [
|
||||
'title' => 'Stadastaireachd',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# seusan}
|
||||
two {# sheusan}
|
||||
few {# seusanan}
|
||||
other {# seusan}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# eapasod}
|
||||
two {# eapasod}
|
||||
few {# eapasodan}
|
||||
other {# eapasod}
|
||||
}',
|
||||
'first_published_at' => 'Chaidh a’ chiad eapasod fhoillseachadh {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Taic maoineachaidh',
|
||||
'funding_links' => 'Ceanglaichean maoineachaidh dha {podcastTitle}',
|
||||
'find_on' => 'Lorg {podcastTitle} air',
|
||||
'listen_on' => 'Èist ris air',
|
||||
'persons' => '{personsCount, plural,
|
||||
one {# neach}
|
||||
two {# dhuine}
|
||||
few {# daoine}
|
||||
other {# duine}
|
||||
}',
|
||||
'persons_list' => 'Daoine',
|
||||
];
|
||||
46
app/Language/gd/Post.php
Normal file
46
app/Language/gd/Post.php
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "Post aig {actorDisplayName}",
|
||||
'back_to_actor_posts' => 'Air ais gu postaichean {actor}',
|
||||
'actor_shared' => 'Cho-roinn {actor}',
|
||||
'reply_to' => 'Freagair gu @{actorUsername}',
|
||||
'form' => [
|
||||
'message_placeholder' => 'Sgrìobh teachdaireachd…',
|
||||
'episode_message_placeholder' => 'Sgrìobh teachdaireachd dhan eapasod',
|
||||
'episode_url_placeholder' => 'URL an eapasoid',
|
||||
'reply_to_placeholder' => 'Freagair gu @{actorUsername}',
|
||||
'submit' => 'Cuir',
|
||||
'submit_reply' => 'Freagair',
|
||||
],
|
||||
'favourites' => '{numberOfFavourites, plural,
|
||||
one {# annsachd}
|
||||
two {# annsachd}
|
||||
few {# annsachdan}
|
||||
other {# annsachd}
|
||||
}',
|
||||
'reblogs' => '{numberOfReblogs, plural,
|
||||
one {# cho-roinneadh}
|
||||
two {# cho-roinneadh}
|
||||
few {# co-roinnidhean}
|
||||
other {# co-roinneadh}
|
||||
}',
|
||||
'replies' => '{numberOfReplies, plural,
|
||||
one {# fhreagairt}
|
||||
two {# fhreagairt}
|
||||
few {# freagairtean}
|
||||
other {# freagairt}
|
||||
}',
|
||||
'expand' => 'Leudaich am post',
|
||||
'block_actor' => 'Bac an cleachdaiche @{actorUsername}',
|
||||
'block_domain' => 'Bac an àrainn @{actorDomain}',
|
||||
'delete' => 'Sguab às am post',
|
||||
];
|
||||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# reacties}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Alle podcast afleveringen',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Terug naar podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -18,12 +18,12 @@ return [
|
|||
'follow' => 'Abonneer',
|
||||
'followTitle' => 'Abonneer op {actorDisplayName} via de fediverse!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# abonnee}
|
||||
other {# abonnees}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# bericht}
|
||||
other {# berichten}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activiteit',
|
||||
'episodes' => 'Afleveringen',
|
||||
|
|
@ -32,14 +32,14 @@ return [
|
|||
'stats' => [
|
||||
'title' => 'Statistieken',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# seizoen}
|
||||
other {# seizoenen}
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# aflevering}
|
||||
other {# afleveringen}
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'Eerste aflevering gepubliceerd op {0, date, medium}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Sponsor',
|
||||
'funding_links' => 'Financiering links voor {podcastTitle}',
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# kommentarar}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Alle podkast-episodane',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Gå tilbake til podkasten',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -18,12 +18,12 @@ return [
|
|||
'follow' => 'Fylg',
|
||||
'followTitle' => 'Fylg {actorDisplayName} på fødiverset!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# fylgjar}
|
||||
other {# fylgjarar}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# innlegg}
|
||||
other {# innlegg}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Aktivitet',
|
||||
'episodes' => 'Episodar',
|
||||
|
|
@ -32,14 +32,14 @@ return [
|
|||
'stats' => [
|
||||
'title' => 'Statistikk',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# sesong}
|
||||
other {# sesongar}
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# episode}
|
||||
other {# episodar}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'Den fyrste episoden vart lagt ut {0, date, medium}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Sponsor',
|
||||
'funding_links' => 'Finansieringslenker for {podcastTitle}',
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -31,5 +31,6 @@ return [
|
|||
other {# komentarzy}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Wszystkie odcinki podcastu',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Wróć do podkastu',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -18,13 +18,12 @@ return [
|
|||
'follow' => 'Obserwuj',
|
||||
'followTitle' => 'Obserwuj {actorDisplayName} na fediverse!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# obserwujący}
|
||||
other {# obserwujących}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# wpis}
|
||||
few {# wpisy}
|
||||
other {# wpisów}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Aktywność',
|
||||
'episodes' => 'Odcinki',
|
||||
|
|
@ -33,16 +32,14 @@ return [
|
|||
'stats' => [
|
||||
'title' => 'Statystyki',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# sezon}
|
||||
few{# sezony}
|
||||
other {# sezonów}
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# odcinek}
|
||||
few {# odcinki}
|
||||
other {# odcinków}
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'Pierwszy odcinek opublikowany {0, date, medium}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Sponsoruj',
|
||||
'funding_links' => 'Linki finansowania dla {podcastTitle}',
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comentários}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Todos os episódios de podcast',
|
||||
'episodes_recycle_bin' => 'Lixeira',
|
||||
'back_to_podcast' => 'Voltar para o podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ return [
|
|||
}',
|
||||
'first_published_at' => 'Primeiro episódio publicado em {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Patrocinador',
|
||||
'sponsor' => 'Apoiar',
|
||||
'funding_links' => 'Links de financiamento para {podcastTitle}',
|
||||
'find_on' => 'Encontrar {podcastTitle} em',
|
||||
'listen_on' => 'Ouvir em',
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -33,5 +33,6 @@ return [
|
|||
other {# комментариев}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Все выпуски подкаста',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Вернуться к подкасту',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -18,16 +18,12 @@ return [
|
|||
'follow' => 'Подписаться',
|
||||
'followTitle' => 'Подпишитесь на {actorDisplayName} в федивёрсе!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# подписчик}
|
||||
few {# подписчики}
|
||||
many {# подписчики}
|
||||
other {# подписчики}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# пост}
|
||||
few {# постов}
|
||||
many {# постов}
|
||||
other {# постов}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Активность',
|
||||
'episodes' => 'Выпуски',
|
||||
|
|
@ -36,18 +32,14 @@ return [
|
|||
'stats' => [
|
||||
'title' => 'Статистика',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# сезон}
|
||||
few {# сезоны}
|
||||
many {# сезоны}
|
||||
other {# сезоны}
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# эпизод}
|
||||
few {# эпизодов}
|
||||
many {# эпизодов}
|
||||
other {# эпизодов}
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'Первый эпизод опубликован {0, date, medium}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Спонсор',
|
||||
'funding_links' => 'Ссылки на финансирование для {podcastTitle}',
|
||||
|
|
|
|||
34
app/Language/sk/Comment.php
Normal file
34
app/Language/sk/Comment.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
|
||||
'back_to_comments' => 'Späť na komentáre',
|
||||
'form' => [
|
||||
'episode_message_placeholder' => 'Napísať komentár…',
|
||||
'reply_to_placeholder' => 'Reply to @{actorUsername}',
|
||||
'submit' => 'Poslať',
|
||||
'submit_reply' => 'Odpovedať',
|
||||
],
|
||||
'likes' => '{numberOfLikes, plural,
|
||||
one {# like}
|
||||
other {# likes}
|
||||
}',
|
||||
'replies' => '{numberOfReplies, plural,
|
||||
one {# reply}
|
||||
other {# replies}
|
||||
}',
|
||||
'like' => 'Obľúbené',
|
||||
'reply' => 'Odpovedať',
|
||||
'view_replies' => 'Ukázať odpoved/e ({numberOfReplies})',
|
||||
'block_actor' => 'Blokovať užívateľa @{actorUsername}',
|
||||
'block_domain' => 'Blokovať doménu @{actorDomain}',
|
||||
'delete' => 'Vymazať komentár',
|
||||
];
|
||||
29
app/Language/sk/Common.php
Normal file
29
app/Language/sk/Common.php
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'yes' => 'Áno',
|
||||
'no' => 'Nie',
|
||||
'cancel' => 'Zrušiť',
|
||||
'optional' => 'Voliteľné',
|
||||
'close' => 'Zavrieť',
|
||||
'home' => 'Domov',
|
||||
'explicit' => 'Chúlostivé',
|
||||
'powered_by' => 'Poháňané cez {castopod}',
|
||||
'go_back' => 'Ísť späť',
|
||||
'play_episode_button' => [
|
||||
'play' => 'Prehrať',
|
||||
'playing' => 'Prehrávané',
|
||||
],
|
||||
'read_more' => 'Čítať viac',
|
||||
'read_less' => 'Zobraziť menej',
|
||||
'see_more' => 'Pozrieť viac',
|
||||
'see_less' => 'Pozrieť menej',
|
||||
];
|
||||
34
app/Language/sk/Episode.php
Normal file
34
app/Language/sk/Episode.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'season' => 'Séria {seasonNumber}',
|
||||
'season_abbr' => 'S{seasonNumber}',
|
||||
'number' => 'Epizóda {episodeNumber}',
|
||||
'number_abbr' => 'Ep. {episodeNumber}',
|
||||
'season_episode' => 'Sezóna {seasonNumber} epizóda {episodeNumber}',
|
||||
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
|
||||
'persons' => '{personsCount, plural,
|
||||
one {# person}
|
||||
other {# persons}
|
||||
}',
|
||||
'persons_list' => 'Persons',
|
||||
'back_to_episodes' => 'Späť k epizódam {podcast}',
|
||||
'comments' => 'Komentáre',
|
||||
'activity' => 'Aktivita',
|
||||
'description' => 'Popis epizódy',
|
||||
'number_of_comments' => '{numberOfComments, plural,
|
||||
one {# comment}
|
||||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'Všetky epizódy podcastu',
|
||||
'episodes_recycle_bin' => 'Kôš',
|
||||
'back_to_podcast' => 'Späť na podcast',
|
||||
];
|
||||
37
app/Language/sk/Fediverse.php
Normal file
37
app/Language/sk/Fediverse.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'your_handle' => 'Vaša prezývka',
|
||||
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
|
||||
'follow' => [
|
||||
'label' => 'Nasledovať',
|
||||
'title' => 'Nasledovať {actorDisplayName}',
|
||||
'subtitle' => 'Budete nasledovať:',
|
||||
'accountNotFound' => 'Účet nemožno nájsť.',
|
||||
'remoteFollowNotAllowed' => 'Seems like the account server does not allow remote follows…',
|
||||
'submit' => 'Pokračovať k nasledovaniu',
|
||||
],
|
||||
'favourite' => [
|
||||
'title' => "Obľúbiť si príspevok od {actorDisplayName}",
|
||||
'subtitle' => 'Idete si obľúbiť:',
|
||||
'submit' => 'Pokračovať k obľúbeniu',
|
||||
],
|
||||
'reblog' => [
|
||||
'title' => "Zdieľať príspevok od {actorDisplayName}",
|
||||
'subtitle' => 'Budete zdieľať:',
|
||||
'submit' => 'Pokračovať pre zdieľanie',
|
||||
],
|
||||
'reply' => [
|
||||
'title' => "Odpovedať na príspevok od {actorDisplayName}",
|
||||
'subtitle' => 'Idete odpovedať na:',
|
||||
'submit' => 'Pokračovať k odpovedi',
|
||||
],
|
||||
];
|
||||
20
app/Language/sk/Home.php
Normal file
20
app/Language/sk/Home.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'Všetky podcasty',
|
||||
'sort_by' => 'Zoradiť podľa',
|
||||
'sort_options' => [
|
||||
'activity' => 'Nedávna aktivita',
|
||||
'created_desc' => 'Od najnovšieho',
|
||||
'created_asc' => 'Od najstaršieho',
|
||||
],
|
||||
'no_podcast' => 'Žiadne podcasty nenájdené',
|
||||
];
|
||||
17
app/Language/sk/Page.php
Normal file
17
app/Language/sk/Page.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => 'Späť na úvod',
|
||||
'map' => [
|
||||
'title' => 'Mapa',
|
||||
'description' => 'Discover podcast episodes on {siteName} that are placed on a map! Travel through the map and listen to episodes that talk about specific locations.',
|
||||
],
|
||||
];
|
||||
53
app/Language/sk/Podcast.php
Normal file
53
app/Language/sk/Podcast.php
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'feed' => 'RSS zdroj podcastu',
|
||||
'season' => 'Séria {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} epizódy ({episodeCount})',
|
||||
'list_of_episodes_season' =>
|
||||
'Sezóna {seasonNumber} epizódy ({episodeCount})',
|
||||
'no_episode' => 'Žiadne epizódy nenájdené!',
|
||||
'follow' => 'Nasledovať',
|
||||
'followTitle' => 'Nasledovať {actorDisplayName} na fediverse!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Aktivita',
|
||||
'episodes' => 'Epizódy',
|
||||
'episodes_title' => 'Epizódy {podcastTitle}',
|
||||
'about' => 'O',
|
||||
'stats' => [
|
||||
'title' => 'Štatistiky',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Sponzor',
|
||||
'funding_links' => 'Funding links for {podcastTitle}',
|
||||
'find_on' => 'Find {podcastTitle} on',
|
||||
'listen_on' => 'Počúvajte na',
|
||||
'persons' => '{personsCount, plural,
|
||||
one {# person}
|
||||
other {# persons}
|
||||
}',
|
||||
'persons_list' => 'Persons',
|
||||
];
|
||||
40
app/Language/sk/Post.php
Normal file
40
app/Language/sk/Post.php
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "{actorDisplayName}'s post",
|
||||
'back_to_actor_posts' => 'Back to {actor} posts',
|
||||
'actor_shared' => '{actor} shared',
|
||||
'reply_to' => 'Reply to @{actorUsername}',
|
||||
'form' => [
|
||||
'message_placeholder' => 'Write a message…',
|
||||
'episode_message_placeholder' => 'Write a message for the episode…',
|
||||
'episode_url_placeholder' => 'Episode URL',
|
||||
'reply_to_placeholder' => 'Reply to @{actorUsername}',
|
||||
'submit' => 'Send',
|
||||
'submit_reply' => 'Reply',
|
||||
],
|
||||
'favourites' => '{numberOfFavourites, plural,
|
||||
one {# favourite}
|
||||
other {# favourites}
|
||||
}',
|
||||
'reblogs' => '{numberOfReblogs, plural,
|
||||
one {# share}
|
||||
other {# shares}
|
||||
}',
|
||||
'replies' => '{numberOfReplies, plural,
|
||||
one {# reply}
|
||||
other {# replies}
|
||||
}',
|
||||
'expand' => 'Expand post',
|
||||
'block_actor' => 'Block user @{actorUsername}',
|
||||
'block_domain' => 'Block domain @{actorDomain}',
|
||||
'delete' => 'Vymazať príspevok',
|
||||
];
|
||||
|
|
@ -29,5 +29,6 @@ return [
|
|||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'episodes_recycle_bin' => 'Recycle bin',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -2,36 +2,37 @@
|
|||
sidebarDepth: 2
|
||||
---
|
||||
|
||||
# Welcome 👋
|
||||
# Καλώς Ήλθατε 👋
|
||||
|
||||
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars]
|
||||
|
||||
Castopod is a free & open-source hosting platform made for podcasters who want
|
||||
engage and interact with their audience.
|
||||
Το Castopod είναι μια δωρεάν & ανοικτού κώδικα πλατφόρμα φιλοξενίας podcast που
|
||||
κατασκευάζεται για podcasters που θέλουν να συμμετάσχουν και να αλληλεπιδράσουν
|
||||
με το κοινό τους.
|
||||
|
||||
Castopod is easy to install and was built on top of
|
||||
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
|
||||
small footprint.
|
||||
Το Castopod είναι εύκολο στην εγκατάσταση και χτίστηκε με το
|
||||
[CodeIgniter4](https://codeigniter.com/), ένα ισχυρό PHP framework με ένα πολύ
|
||||
μικρό αποτύπωμα.
|
||||
|
||||
::: info Status
|
||||
::: πληροφορίες κατάστασης
|
||||
|
||||
Castopod is currently in **beta** but already quite stable and used by
|
||||
podcasters around the world!
|
||||
Το Castopod είναι επί του παρόντος σε **beta** αλλά ήδη αρκετά σταθερό και
|
||||
χρησιμοποιείται από podcasters γύρω από τον κόσμο!
|
||||
|
||||
:::
|
||||
|
||||
<div class="flex items-center">
|
||||
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Εγκατάσταση<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
</div>
|
||||
|
||||
## Features
|
||||
## Χαρακτηριστικά
|
||||
|
||||
- 🌱 Free & open-source (AGPL v3 License)
|
||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||
belong to you, and you only
|
||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||
chapters, location, persons, soundbites, …
|
||||
- 💬 Built-in social network:
|
||||
- 🌱 Δωρεάν & open-source (AGPL v3 License)
|
||||
- 🔐 Εστιάζει στην κυριαρχία των δεδομένων: το περιεχόμενο, το κοινό και
|
||||
τα αναλυτικά στοιχεία ανήκουν σε εσάς μόνο
|
||||
- ◆ Podcasting 2.0 χαρακτηριστικά: GUID, κλειδωμένο, μεταγραφές,
|
||||
χρηματοδότηση, κεφάλαια, τοποθεσία, πρόσωπα, soundbites, …
|
||||
- 💬 Ενσωματωμένο κοινωνικό δίκτυο:
|
||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||
- 📈 Built-in analytics:
|
||||
|
|
@ -60,7 +61,7 @@ podcasters around the world!
|
|||
- 🌎 i18n support: translated in English, French & Polish with more to
|
||||
come!
|
||||
|
||||
## Motivation
|
||||
## Κίνητρα
|
||||
|
||||
The podcasting ecosystem is decentralized by nature: you can create your podcast
|
||||
as an RSS file, publish it on the web and have it shared everywhere online.
|
||||
|
|
@ -201,16 +202,23 @@ backers. If you'd like to help, please consider
|
|||
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||
|
||||
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[release-badge]:
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
|
||||
[license-badge]:
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
|
||||
[contributions-badge]:
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
[semantic-release]: https://github.com/semantic-release/semantic-release
|
||||
[semantic-release-badge]:
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
[discord]: https://castopod.org/discord
|
||||
[discord-badge]: https://img.shields.io/badge/chat-on%20discord-7389D8
|
||||
[stars]: https://github.com/ad-aures/castopod/stargazers
|
||||
[stars-badge]:
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
[crowdin]: https://translate.castopod.org/project/castopod
|
||||
[crowdin-badge]: https://badges.crowdin.net/castopod/localized.svg
|
||||
|
|
|
|||
|
|
@ -5,138 +5,151 @@ sidebarDepth: 3
|
|||
|
||||
# ¿Cómo instalar Castopod?
|
||||
|
||||
Castopod era de todas maneras fácil de instalar. Ya sea usando alojamiento
|
||||
dedicado o compartido, se puede instalar en la mayoría de servidores web
|
||||
Castopod está pensado para ser fácil de instalar. Ya sea usando un alojamiento
|
||||
dedicado o compartido, puedes instalarlo en la mayoría de servidores web
|
||||
compatibles con PHP-MySQL.
|
||||
|
||||
## Requirements
|
||||
::: Nota informativa
|
||||
|
||||
- PHP v8.0 or higher
|
||||
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
|
||||
- HTTPS support
|
||||
Esta sección de la documentación te ayudará a configurar Castopod para la
|
||||
producción. Si estás buscando participar en el desarrollo de Castopod, debes
|
||||
pasar a la sección de contribuciones.
|
||||
|
||||
### PHP v8.0 or higher
|
||||
:::
|
||||
|
||||
PHP version 8.0 or higher is required, with the following extensions installed:
|
||||
## Requerimientos
|
||||
|
||||
- PHP v8.0 o superior
|
||||
- MySQL versión 5.7 o superior o MariaDB versión 10.2 o superior
|
||||
- Soporte HTTPS
|
||||
|
||||
### PHP v8.0 o superior
|
||||
|
||||
Se requiere PHP versión 8.0 o superior con las siguientes extensiones
|
||||
instaladas:
|
||||
|
||||
- [intl](https://php.net/manual/en/intl.requirements.php)
|
||||
- [libcurl](https://php.net/manual/en/curl.requirements.php)
|
||||
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
|
||||
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
|
||||
**PNG** and **WEBP** libraries.
|
||||
- [gd](https://www.php.net/manual/en/image.installation.php) con librerias
|
||||
**JPEG**, **PNG** y **WEBP**.
|
||||
- [exif](https://www.php.net/manual/en/exif.installation.php)
|
||||
|
||||
Additionally, make sure that the following extensions are enabled in your PHP:
|
||||
Adicionalmente, asegúrate que las siguientes extensiones están habilitadas en tu
|
||||
PHP:
|
||||
|
||||
- json (enabled by default - don't turn it off)
|
||||
- xml (enabled by default - don't turn it off)
|
||||
- json (habilitada por defecto - no la desactives)
|
||||
- xml (habilitada por defecto - no la desactives)
|
||||
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
|
||||
|
||||
### MySQL compatible database
|
||||
### Base de datos compatible con MySQL
|
||||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
> Recomendamos usar [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: aviso Aviso
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
Castopod solo funciona con base de datos compatible con MySQL 5.7 o superior. Se
|
||||
romperá con la version previa MySQL v5.6 por ejemplo, ya que su vida terminó el
|
||||
5 de febrero de 2021.
|
||||
|
||||
:::
|
||||
|
||||
You will need the server hostname, database name, username and password to
|
||||
complete the installation process. If you do not have these, please contact your
|
||||
server administrator.
|
||||
Necesitarás el nombre del anfitrión del servidor, nombre de la base de datos,
|
||||
usuario y contraseña para completar el proceso de instalación. Si no los tienes,
|
||||
por favor, contacta al administrador del servidor.
|
||||
|
||||
#### Privileges
|
||||
#### Privilegios
|
||||
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`.
|
||||
Los usuarios deben tener al menos estos privilegios en la base de datos para que
|
||||
Castopod funcione: `CREAR`, `ALTERAR`, `BORRAR`, `EJECUTAR`, `INDICE`,
|
||||
`INSERTAR`, `SELECCIONAR`, `ACTUALIZAR`.
|
||||
|
||||
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
|
||||
### (Opcional) FFmpeg v4.1.8 o superior para clips de video
|
||||
|
||||
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you
|
||||
want to generate Video Clips. The following extensions must be installed:
|
||||
Se requiere [FFmpeg](https://www.ffmpeg.org/) versión 4.1.8 o superior si
|
||||
quieres general clips de video. Se debe instalar las siguientes extensiones:
|
||||
|
||||
- **FreeType 2** library for
|
||||
- Librería **FreeType 2** para
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
||||
### (Optional) Other recommendations
|
||||
### (Opcional) Otras recomendaciones
|
||||
|
||||
- Redis for better cache performances.
|
||||
- CDN for static files caching and better performances.
|
||||
- e-mail gateway for lost passwords.
|
||||
- Redis para mejores rendimientos de caché.
|
||||
- CDN para almacenamiento en caché de archivos estáticos y mejores rendimientos.
|
||||
- puerta de enlace de email para pérdidas de contraseña.
|
||||
|
||||
## Install instructions
|
||||
## Instrucciones de instalación
|
||||
|
||||
### Pre-requisites
|
||||
### Prerequisitos
|
||||
|
||||
0. Get a Web Server with [requirements](#requirements) installed
|
||||
1. Create a MySQL database for Castopod with a user having access and
|
||||
modification privileges (for more info, see
|
||||
[MySQL compatible database](#mysql-compatible-database)).
|
||||
2. Activate HTTPS on your domain with an _SSL certificate_.
|
||||
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
|
||||
the web server if you haven’t already.
|
||||
- ⚠️ Set the web server document root to the `public/` sub-folder within the
|
||||
`castopod` folder.
|
||||
4. Add **cron tasks** on your web server for various background processes
|
||||
(replace the paths accordingly):
|
||||
0. Consigue un Servidor Web con [requerimientos](#requirements) instalados
|
||||
1. Crea una base de datos MySQL para Castopod con un usuario que tenga acceso y
|
||||
privilegios de modificación (para más información, ver
|
||||
[MySQL base de datos compatible](#mysql-compatible-database)).
|
||||
2. Activa HTTPS en tu domino con un _certificado SSL_.
|
||||
3. Descarga y descomprime el último [paquete Castopod](https://castopod.org/) en
|
||||
el servidor de la web si aún no lo has hecho.
|
||||
- ⚠️ Establece la raiz del documento del servidor web en la subcarpeta
|
||||
`pública/` en la carpeta `castopod`.
|
||||
4. Añade **cron tasks** en tu servidor web para varios procesos en segundo plano
|
||||
(reemplaza las rutas accorde con):
|
||||
|
||||
- For social features to work properly, this task is used to broadcast social
|
||||
activities to your followers on the fediverse:
|
||||
- Para que las características sociales funcionen correctamente, esta tarea
|
||||
se utiliza para transmitir las actividades sociales a tus seguidores en el
|
||||
Fediverso:
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php actividades programadas
|
||||
```
|
||||
|
||||
- For having your episodes be broadcasted on open hubs upon publication using
|
||||
[WebSub](https://en.wikipedia.org/wiki/WebSub):
|
||||
- Para que tus episodios sean transmitidos en hubs abiertos sobre
|
||||
publicaciones usando [WebSub](https://en.wikipedia.org/wiki/WebSub):
|
||||
|
||||
```bash
|
||||
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
|
||||
* * * * * /usr/local/bin/php /castopod/public/index.php publicaciones-websub-programadas
|
||||
```
|
||||
|
||||
- For Video Clips to be created (see
|
||||
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
|
||||
- Para crear Clips de video (ver
|
||||
[requerimientos FFmpeg ](#ffmpeg-v418-or-higher-for-video-clips)):
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php clips-devideo-programados
|
||||
```
|
||||
|
||||
> These tasks run **every minute**. You may set the frequency depending on
|
||||
> your needs: every 5, 10 minutes or more.
|
||||
> Estas tareas se ejecutan **cada minuto**. Debes establecer la frecuencia
|
||||
> dependiendo de tus necesidades: cada 5, 10 minutos o más.
|
||||
|
||||
### (recommended) Install Wizard
|
||||
### (recomendado) Instalar Wizard
|
||||
|
||||
1. Run the Castopod install script by going to the install wizard page
|
||||
(`https://your_domain_name.com/cp-install`) in your favorite web browser.
|
||||
2. Follow the instructions on your screen.
|
||||
1. Ejecuta el script de instalación de Castopod yendo a la página de instalación
|
||||
de wizard (`https://your_domain_name.com/cp-install`) en tu navegador web
|
||||
preferido.
|
||||
2. Sigue las instrucciones de la pantalla.
|
||||
3. ¡Empieza a crear podcasting!
|
||||
|
||||
::: Nota de información
|
||||
::: Nota informativa
|
||||
|
||||
El script de instalación escribe un archivo `.env` en la raíz del paquete. If
|
||||
you cannot go through the install wizard, you can
|
||||
[create and update the `.env` file manually](#alternative-manual-configuration).
|
||||
El script de instalación escribe un archivo `.env` en la raiz de paquete. Si no
|
||||
puedes completar la instalación de wizard, puedes
|
||||
[crear y actualizar el archivo `.env` manualmente](#alternative-manual-configuration).
|
||||
|
||||
:::
|
||||
|
||||
## Community packages
|
||||
## Paquetes de la comunidad
|
||||
|
||||
If you don't want to bother with installing Castopod manually, you may use one
|
||||
of the packages created and maintained by the open-source community.
|
||||
Si no quieres molestarte en instalar Castopod manualmente, puedes usar uno de
|
||||
los paquetes creados y mantenidos por la comunidad de código abierto.
|
||||
|
||||
### Install with YunoHost
|
||||
### Instalar con YunoHost
|
||||
|
||||
[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux
|
||||
made up of free and open-source software packages. It manages the hardships of
|
||||
self-hosting for you.
|
||||
[YunoHost](https://yunohost.org/) es una distribuidora basada en Debian
|
||||
GNU/Linux compuesta por paquetes de software libres y de código abierto. It
|
||||
manages the hardships of self-hosting for you.
|
||||
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
|
||||
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
|
||||
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
|
||||
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Instalar Castopod con YunoHost" class="align-middle" />
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
|
||||
|
|
@ -146,18 +159,18 @@ Repo</a>
|
|||
|
||||
</div>
|
||||
|
||||
### Install with Docker
|
||||
### Instalar con Docker
|
||||
|
||||
If you wish to use Docker to install Castopod, it is possible thanks to
|
||||
Si desea utilizar Docker para instalar Castopod, ¡es posible gracias a
|
||||
[Romain de Laage](https://mamot.fr/@rdelaage)!
|
||||
|
||||
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
|
||||
with
|
||||
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Instalar
|
||||
con
|
||||
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
|
||||
::: info Note
|
||||
::: Nota de información
|
||||
|
||||
Given high demand for docker, we plan on maintaining an official Castopod Docker
|
||||
image directly into the Castopod repository.
|
||||
Dada la alta demanda de docker, planeamos mantener una imagen oficial del Docker
|
||||
de Castopod directamente en el repositorio de Castopod.
|
||||
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -1,92 +1,100 @@
|
|||
---
|
||||
title: Update
|
||||
title: Actualización
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# How to update Castopod?
|
||||
# ¿Cómo actualizar Castopod?
|
||||
|
||||
After installing Castopod, you may want to update your instance to the latest
|
||||
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
|
||||
improvements ⚡.
|
||||
Después de instalar Castopod, es posible que quieras actualizar tu instancia a
|
||||
la última versión para disfrutar de las últimas características ✨, correcciones
|
||||
de errores 🐛 y mejoras de rendimiento ⚡.
|
||||
|
||||
## Automatic update instructions
|
||||
## Instrucciones de actualización automática
|
||||
|
||||
> Coming soon... 👀
|
||||
> Próximamente... 👀
|
||||
|
||||
## Manual update instructions
|
||||
## Instrucciones de actualización manual
|
||||
|
||||
1. Go to the
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
|
||||
see if your instance is up to date with the latest Castopod version
|
||||
1. Vaya a la página de
|
||||
[lanzamientos](https://code.castopod.org/adaures/castopod/-/releases) y vea
|
||||
si su instancia está actualizada con la última versión de Castopod
|
||||
|
||||
- cf.
|
||||
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
|
||||
[¿Dónde puedo encontrar mi versión de Castopod?](#where-can-i-find-my-castopod-version)
|
||||
|
||||
2. Download the latest release package named `Castopod Package`, you may choose
|
||||
between the `zip` or `tar.gz` archives
|
||||
2. Descargue el último paquete de lanzamiento llamado `Paquete Castopod`, puede
|
||||
elegir entre los archivos `zip` o `tar.gz`
|
||||
|
||||
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
|
||||
- ⚠️ Asegúrate de descargar el paquete de Castopod y **NO** el código fuente
|
||||
|
||||
3. On your server:
|
||||
3. En tu servidor:
|
||||
|
||||
- Remove all files except `.env` and `public/media`
|
||||
- Copy the new files from the downloaded package into your server
|
||||
- Eliminar todos los archivos excepto `.env` y la carpeta `public/media`
|
||||
- Copie los nuevos archivos del paquete descargado en su servidor
|
||||
|
||||
::: info Note
|
||||
::: Nota de información
|
||||
|
||||
You may need to reset files permissions as during the install process.
|
||||
Check [Security Concerns](./security.md).
|
||||
Es posible que necesite restablecer los permisos de los archivos después el
|
||||
proceso de instalación. Compruebe
|
||||
[preocupaciones de seguridad](./security.md).
|
||||
|
||||
:::
|
||||
|
||||
4. Releases may come with additional update instructions (see
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
|
||||
are usually database migration scripts in `.sql` format to update your
|
||||
database schema.
|
||||
4. Las versiones pueden venir con instrucciones de actualización adicionales
|
||||
(véase la página de
|
||||
[lanzamientos](https://code.castopod.org/adaures/castopod/-/releases)).
|
||||
Generalmente son scripts de migración de base de datos en formato `.sql` para
|
||||
actualizar su esquema de base de datos.
|
||||
|
||||
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
|
||||
line to update the database along with the package files!
|
||||
- I haven't updated my instance in a long time… What should I do?
|
||||
- 👉 ¡Asegúrate de ejecutar los scripts en tu panel phpmyadmin o usando la
|
||||
línea de comandos para actualizar la base de datos junto con los archivos
|
||||
de paquete!
|
||||
- cf.
|
||||
|
||||
5. If you are using redis, clear your cache.
|
||||
6. ✨ Enjoy your fresh instance, you're all done!
|
||||
No he actualizado mi instancia en mucho tiempo… ¿Qué debo hacer?</p></li> </ul>
|
||||
|
||||
## Frequently asked questions (FAQ)
|
||||
5. Si estás usando redis, limpia tu caché.
|
||||
|
||||
### Where can I find my Castopod version?
|
||||
6. ✨ ¡Disfruta de tu instancia recién instalada, todo listo!
|
||||
|
||||
Go to your Castopod admin panel, the version is displayed on the bottom left
|
||||
corner.
|
||||
## Preguntas Frecuentes (FAQ)
|
||||
|
||||
Alternatively, you can find the version in the `app > Config > Constants.php`
|
||||
file.
|
||||
### ¿Dónde puedo encontrar mi versión de Castopod?
|
||||
|
||||
### [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
|
||||
Ve al panel de administración de Castopod, la versión se muestra en la esquina
|
||||
inferior izquierda.
|
||||
|
||||
No problem! No problem! Just get the latest release as described above. Only,
|
||||
when going through the release instructions (4), perform them sequentially, from
|
||||
the oldest to the newest.
|
||||
Alternativamente, puedes encontrar la versión en el archivo
|
||||
`app > Config > Constants.php`.
|
||||
|
||||
> You may want to backup your instance depending on how long you haven't updated
|
||||
> Castopod.
|
||||
### No he actualizado mi instancia en mucho tiempo… ¿Qué debo hacer?
|
||||
|
||||
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
|
||||
¡No hay problema! Sólo obtenga la última versión tal y como se describe
|
||||
anteriormente. Simplemente cuando vaya a través de las instrucciones de
|
||||
lanzamiento (4), realice la actualización secuencialmente, desde el más antiguo
|
||||
hasta el más reciente.
|
||||
|
||||
> Puede que quieras hacer una copia de seguridad de tu instancia dependiendo del
|
||||
> tiempo que no hayas actualizado Castopod.
|
||||
|
||||
Por ejemplo, si estás en `v1.0.0-alpha.42` y te gustaría actualizar a
|
||||
`v1.0.0-beta.1`:
|
||||
|
||||
0. (highly recommended) Make a backup of your files and database.
|
||||
0. (altamente recomendado) Haga una copia de seguridad de sus archivos y base de
|
||||
datos.
|
||||
|
||||
1. Download the latest release, overwrite your files whilst keeping `.env` and
|
||||
1. Descarga la última versión, sobrescribe tus archivos manteniendo `.env` y
|
||||
`public/media`.
|
||||
|
||||
2. Go through each release update instructions sequentially (from oldest to
|
||||
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
|
||||
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
|
||||
2. Repase las instrucciones de actualización de cada versión secuencialmente (de
|
||||
más antiguo a más reciente) comenzando con `v1.0.0-alpha. 3`,
|
||||
`v1.0.0-alpha.44`, `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
|
||||
|
||||
3. ✨ Enjoy your fresh instance, you're all done!
|
||||
3. ✨ ¡Disfruta de tu instancia recién instalada, todo listo!
|
||||
|
||||
### Should I make a backup before updating?
|
||||
### ¿Debo hacer una copia de seguridad antes de actualizar?
|
||||
|
||||
We advise you do, so you don't lose everything if anything goes wrong!
|
||||
Te aconsejamos que hagas, así que no lo pierdas todo si algo sale mal!
|
||||
|
||||
More generally, we advise you make regular backups of your Castopod files and
|
||||
database to prevent you from losing it all…
|
||||
De manera más general, te aconsejamos hacer copias de seguridad regulares de tus
|
||||
archivos de Castopod y base de datos para evitar que pierdas todo…
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ por podcasters alrededor de el mundo!
|
|||
- 🌱 Gratis & de código abierto (AGPL v3 Licencia)
|
||||
- 🔐 Centrado en la soberanía de los datos: su contenido, audiencia, y
|
||||
analíticas le pertenecen a usted, y solo a usted
|
||||
- Funciones de Podcasting 2.0: GUID, protección y bloqueo del podcast,
|
||||
transcripciones, fondos, capítulos, ubicación, personas, sonidos, …
|
||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||
chapters, location, persons, soundbites, …
|
||||
- :speech \_balloon: Red social integrada:
|
||||
- 🚀 Castopod es parte del Fediverso, una red social descentralizada
|
||||
- ❤️ Crear mensajes, compartir, favoritos y comentarios en episodios
|
||||
|
|
@ -204,23 +204,16 @@ contribuyentes. Si quieres ayudar, por favor considera colaborar con
|
|||
[Licencia pública general GNU v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||
|
||||
Copyright © 2020-presente, [Ad Aures](https://adaures.com/).
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[release-badge]:
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
|
||||
[license-badge]:
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
|
||||
[contributions-badge]:
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
[semantic-release]: https://github.com/semantic-release/semantic-release
|
||||
[semantic-release-badge]:
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
[discord]: https://castopod.org/discord
|
||||
[discord-badge]: https://img.shields.io/badge/chat-on%20discord-7389D8
|
||||
[stars]: https://github.com/ad-aures/castopod/stargazers
|
||||
[stars-badge]:
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
[crowdin]: https://translate.castopod.org/project/castopod
|
||||
[crowdin-badge]: https://badges.crowdin.net/castopod/localized.svg
|
||||
|
|
|
|||
170
docs/src/fa/getting-started/install.md
Normal file
170
docs/src/fa/getting-started/install.md
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
---
|
||||
title: Installation
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# How to install Castopod?
|
||||
|
||||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
|
||||
- HTTPS support
|
||||
|
||||
### PHP v8.0 or higher
|
||||
|
||||
PHP version 8.0 or higher is required, with the following extensions installed:
|
||||
|
||||
- [intl](https://php.net/manual/en/intl.requirements.php)
|
||||
- [libcurl](https://php.net/manual/en/curl.requirements.php)
|
||||
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
|
||||
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
|
||||
**PNG** and **WEBP** libraries.
|
||||
- [exif](https://www.php.net/manual/en/exif.installation.php)
|
||||
|
||||
Additionally, make sure that the following extensions are enabled in your PHP:
|
||||
|
||||
- json (enabled by default - don't turn it off)
|
||||
- xml (enabled by default - don't turn it off)
|
||||
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
|
||||
|
||||
### MySQL compatible database
|
||||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
|
||||
:::
|
||||
|
||||
You will need the server hostname, database name, username and password to
|
||||
complete the installation process. If you do not have these, please contact your
|
||||
server administrator.
|
||||
|
||||
#### Privileges
|
||||
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`.
|
||||
|
||||
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
|
||||
|
||||
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you
|
||||
want to generate Video Clips. The following extensions must be installed:
|
||||
|
||||
- **FreeType 2** library for
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
||||
### (Optional) Other recommendations
|
||||
|
||||
- Redis for better cache performances.
|
||||
- CDN for static files caching and better performances.
|
||||
- e-mail gateway for lost passwords.
|
||||
|
||||
## Install instructions
|
||||
|
||||
### Pre-requisites
|
||||
|
||||
0. Get a Web Server with [requirements](#requirements) installed
|
||||
1. Create a MySQL database for Castopod with a user having access and
|
||||
modification privileges (for more info, see
|
||||
[MySQL compatible database](#mysql-compatible-database)).
|
||||
2. Activate HTTPS on your domain with an _SSL certificate_.
|
||||
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
|
||||
the web server if you haven’t already.
|
||||
- ⚠️ Set the web server document root to the `public/` sub-folder within the
|
||||
`castopod` folder.
|
||||
4. Add **cron tasks** on your web server for various background processes
|
||||
(replace the paths accordingly):
|
||||
|
||||
- For social features to work properly, this task is used to broadcast social
|
||||
activities to your followers on the fediverse:
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
|
||||
```
|
||||
|
||||
- For having your episodes be broadcasted on open hubs upon publication using
|
||||
[WebSub](https://en.wikipedia.org/wiki/WebSub):
|
||||
|
||||
```bash
|
||||
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
|
||||
```
|
||||
|
||||
- For Video Clips to be created (see
|
||||
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
|
||||
```
|
||||
|
||||
> These tasks run **every minute**. You may set the frequency depending on
|
||||
> your needs: every 5, 10 minutes or more.
|
||||
|
||||
### (recommended) Install Wizard
|
||||
|
||||
1. Run the Castopod install script by going to the install wizard page
|
||||
(`https://your_domain_name.com/cp-install`) in your favorite web browser.
|
||||
2. Follow the instructions on your screen.
|
||||
3. Start podcasting!
|
||||
|
||||
::: info Note
|
||||
|
||||
The install script writes a `.env` file in the package root. If you cannot go
|
||||
through the install wizard, you can
|
||||
[create and update the `.env` file manually](#alternative-manual-configuration).
|
||||
|
||||
:::
|
||||
|
||||
## Community packages
|
||||
|
||||
If you don't want to bother with installing Castopod manually, you may use one
|
||||
of the packages created and maintained by the open-source community.
|
||||
|
||||
### Install with YunoHost
|
||||
|
||||
[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux
|
||||
made up of free and open-source software packages. It manages the hardships of
|
||||
self-hosting for you.
|
||||
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
|
||||
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
|
||||
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
|
||||
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
|
||||
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
|
||||
Repo</a>
|
||||
|
||||
</div>
|
||||
|
||||
### Install with Docker
|
||||
|
||||
If you wish to use Docker to install Castopod, it is possible thanks to
|
||||
[Romain de Laage](https://mamot.fr/@rdelaage)!
|
||||
|
||||
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
|
||||
with
|
||||
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
|
||||
::: info Note
|
||||
|
||||
Given high demand for docker, we plan on maintaining an official Castopod Docker
|
||||
image directly into the Castopod repository.
|
||||
|
||||
:::
|
||||
26
docs/src/fa/getting-started/security.md
Normal file
26
docs/src/fa/getting-started/security.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: Security
|
||||
---
|
||||
|
||||
# Security concerns
|
||||
|
||||
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
|
||||
framework that encourages
|
||||
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
|
||||
|
||||
To maximize your instance's safety and prevent any malicious attack, we
|
||||
recommend you update all your Castopod files permissions after installation or
|
||||
updates (to avoid any prior permission error):
|
||||
|
||||
- `writable/` folder must be **readable** and **writable**.
|
||||
- `public/media/` folder must be **readable** and **writable**.
|
||||
- any other file must be set to **readonly**.
|
||||
|
||||
For instance, if you are using Apache or NGINX with Ubuntu you may do the
|
||||
following:
|
||||
|
||||
```bash
|
||||
sudo chown -R root:root /path/to/castopod
|
||||
sudo chown -R www-data:www-data /path/to/castopod/writable
|
||||
sudo chown -R www-data:www-data /path/to/castopod/public/media
|
||||
```
|
||||
93
docs/src/fa/getting-started/update.md
Normal file
93
docs/src/fa/getting-started/update.md
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
title: Update
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# How to update Castopod?
|
||||
|
||||
After installing Castopod, you may want to update your instance to the latest
|
||||
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
|
||||
improvements ⚡.
|
||||
|
||||
## Automatic update instructions
|
||||
|
||||
> Coming soon... 👀
|
||||
|
||||
## Manual update instructions
|
||||
|
||||
1. Go to the
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
|
||||
see if your instance is up to date with the latest Castopod version
|
||||
|
||||
- cf.
|
||||
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
|
||||
|
||||
2. Download the latest release package named `Castopod Package`, you may choose
|
||||
between the `zip` or `tar.gz` archives
|
||||
|
||||
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
|
||||
|
||||
3. On your server:
|
||||
|
||||
- Remove all files except `.env` and `public/media`
|
||||
- Copy the new files from the downloaded package into your server
|
||||
|
||||
::: info Note
|
||||
|
||||
You may need to reset files permissions as during the install process.
|
||||
Check [Security Concerns](./security.md).
|
||||
|
||||
:::
|
||||
|
||||
4. Releases may come with additional update instructions (see
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
|
||||
are usually database migration scripts in `.sql` format to update your
|
||||
database schema.
|
||||
|
||||
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
|
||||
line to update the database along with the package files!
|
||||
- cf.
|
||||
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
|
||||
|
||||
5. If you are using redis, clear your cache.
|
||||
6. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
## Frequently asked questions (FAQ)
|
||||
|
||||
### Where can I find my Castopod version?
|
||||
|
||||
Go to your Castopod admin panel, the version is displayed on the bottom left
|
||||
corner.
|
||||
|
||||
Alternatively, you can find the version in the `app > Config > Constants.php`
|
||||
file.
|
||||
|
||||
### I haven't updated my instance in a long time… What should I do?
|
||||
|
||||
No problem! Just get the latest release as described above. Only, when going
|
||||
through the release instructions (4), perform them sequentially, from the oldest
|
||||
to the newest.
|
||||
|
||||
> You may want to backup your instance depending on how long you haven't updated
|
||||
> Castopod.
|
||||
|
||||
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
|
||||
`v1.0.0-beta.1`:
|
||||
|
||||
0. (highly recommended) Make a backup of your files and database.
|
||||
|
||||
1. Download the latest release, overwrite your files whilst keeping `.env` and
|
||||
`public/media`.
|
||||
|
||||
2. Go through each release update instructions sequentially (from oldest to
|
||||
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
|
||||
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
|
||||
|
||||
3. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
### Should I make a backup before updating?
|
||||
|
||||
We advise you do, so you don't lose everything if anything goes wrong!
|
||||
|
||||
More generally, we advise you make regular backups of your Castopod files and
|
||||
database to prevent you from losing it all…
|
||||
216
docs/src/fa/index.md
Normal file
216
docs/src/fa/index.md
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
---
|
||||
sidebarDepth: 2
|
||||
---
|
||||
|
||||
# Welcome 👋
|
||||
|
||||
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars]
|
||||
|
||||
Castopod is a free & open-source hosting platform made for podcasters who want
|
||||
engage and interact with their audience.
|
||||
|
||||
Castopod is easy to install and was built on top of
|
||||
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
|
||||
small footprint.
|
||||
|
||||
::: info Status
|
||||
|
||||
Castopod is currently in **beta** but already quite stable and used by
|
||||
podcasters around the world!
|
||||
|
||||
:::
|
||||
|
||||
<div class="flex items-center">
|
||||
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
</div>
|
||||
|
||||
## Features
|
||||
|
||||
- 🌱 Free & open-source (AGPL v3 License)
|
||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||
belong to you, and you only
|
||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||
chapters, location, persons, soundbites, …
|
||||
- 💬 Built-in social network:
|
||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||
- 📈 Built-in analytics:
|
||||
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||
- 🪙 Standard IABv2 audience measurement
|
||||
- 🏡 On-premises analytics, no third party involved
|
||||
- 📢 Built-in marketing tools:
|
||||
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||
- 📱 PWA: install as a standalone app
|
||||
- 🎨 Customizable theme colors
|
||||
- 🎬 Generate ready-to-share Video clips from episodes
|
||||
- 🔉 Generate soundbites
|
||||
- ▶️ Embeddable player, embed your episodes on any website
|
||||
- 💸 Monetization:
|
||||
- 🔗 Funding links
|
||||
- 📲 listen-to-click ads
|
||||
- 🤝 value4value / WebMonetization
|
||||
- 📡 Publish your episodes everywhere with RSS:
|
||||
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||
- ⚡ Broadcast your episodes instantly with WebSub
|
||||
- 📥 Podcast import: move your existing podcast into Castopod
|
||||
- 📤 Move your podcast out of Castopod
|
||||
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||
- 👥 Multi-user: add contributors and set roles
|
||||
- 🌎 i18n support: translated in English, French & Polish with more to
|
||||
come!
|
||||
|
||||
## Motivation
|
||||
|
||||
The podcasting ecosystem is decentralized by nature: you can create your podcast
|
||||
as an RSS file, publish it on the web and have it shared everywhere online.
|
||||
|
||||
It is in fact one of the only media to have stayed this way for a long time.
|
||||
|
||||
As usages are evolving, more and more people are getting into podcasts: whether
|
||||
it is creators finding new ways to share their ideas, or listeners in the search
|
||||
for better content.
|
||||
|
||||
With podcasting becoming more widely used, some companies are trying to shift it
|
||||
towards a more controlled and centralized medium.
|
||||
|
||||
Castopod was created in an effort to provide an open and sustainable alternative
|
||||
to hosting your podcasts, promoting decentralization to ensure that podcasters
|
||||
creativity can express itself.
|
||||
|
||||
This project is pushed by the open-source community, and specifically by the
|
||||
[Fediverse](https://fediverse.party/en/fediverse/) and
|
||||
[Podcasting 2.0](https://podcastindex.org/) movements.
|
||||
|
||||
## Comparison with other solutions
|
||||
|
||||
We believe that a solution is not necessarily right for everyone, it highly
|
||||
depends on your needs. So, here are comparisons with other tools to help you to
|
||||
gauge whether Castopod is the right fit for you.
|
||||
|
||||
### Castopod vs Wordpress
|
||||
|
||||
Castopod is often referred to as "the Wordpress for podcasts" because of the
|
||||
similarities between the two. In some ways this is true. And actually, Castopod
|
||||
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
|
||||
from the community and the number of websites running it.
|
||||
|
||||
Just like Wordpress, Castopod is free & open source, built using PHP with a
|
||||
MySQL database and is packaged in a way that you can easily install on most web
|
||||
servers.
|
||||
|
||||
Wordpress is a great way to create your website and extend it with plugins to
|
||||
get what you want. It is a full fledged CMS that helps you get any type of
|
||||
website online.
|
||||
|
||||
On the other hand, Castopod is meant to address the podcasters needs
|
||||
specifically, focusing on podcasting, and nothing else. You don't need any
|
||||
plugin to get you started on your podcasting journey.
|
||||
|
||||
This allows optimizing the processes specific to podcasting: ranging from the
|
||||
creation of your podcasts and the publication of new episodes all the way to
|
||||
broadcasting, marketing and analytics.
|
||||
|
||||
Finally, depending on your needs, Wordpress and Castopod can even live side by
|
||||
side as they share the same requirements!
|
||||
|
||||
### Castopod vs Funkwhale
|
||||
|
||||
Funkwhale is a self-hosted, modern free and open-source music server. Just as
|
||||
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
|
||||
interoperability between the two.
|
||||
|
||||
Funkwhale was initially built around music. And later on, as the project
|
||||
evolved, the ability to host podcasts was introduced.
|
||||
|
||||
Unlike Funkwhale, Castopod has been designed and built around podcasting
|
||||
exclusively. This allows easier implementation for features related to the
|
||||
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
|
||||
chapters, locations, persons, …).
|
||||
|
||||
So, you should probably use Funkwhale if you want to host your music, and use
|
||||
Castopod if you want to host your podcasts.
|
||||
|
||||
### Castopod vs other podcast hosts
|
||||
|
||||
There are many solutions for you to host your podcasts, some of which are really
|
||||
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
|
||||
Podcasting 2.0 wagon just like Castopod!
|
||||
|
||||
Each of these solutions differ from one another, you may compare with the
|
||||
[list of features](#features).
|
||||
|
||||
That being said, there are two main differences with other podcasting solutions:
|
||||
|
||||
- Castopod can be self-hosted and is the only solution that allows you to keep
|
||||
full control over what you produce. Also, as it is open-source, you can even
|
||||
customize it as you wish.
|
||||
|
||||
- Castopod is the only solution that currently integrates both a decentralized
|
||||
social network with ActivityPub as well as many of the podcasting 2.0
|
||||
features, hoping to bridge the gap between the two.
|
||||
|
||||
## Contributing
|
||||
|
||||
Love Castopod and would like to help? Take a look at the following documentation
|
||||
to get you started.
|
||||
|
||||
### Code of conduct
|
||||
|
||||
Castopod has adopted a Code of Conduct that we expect project participants to
|
||||
adhere to. Please read the
|
||||
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
|
||||
so that you can understand what actions will and will not be tolerated.
|
||||
|
||||
### Contributing guide
|
||||
|
||||
Read our [contributing guide](./contributing/guidelines.md) to learn about our
|
||||
development process, how to propose bugfixes and improvements, and how to build
|
||||
and test your changes to Castopod.
|
||||
|
||||
## Contact
|
||||
|
||||
You may reach us for help or ask any question you have on:
|
||||
|
||||
- [Discord](https://castopod.org/discord) (for direct interaction with
|
||||
developers and the community)
|
||||
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
|
||||
feature requests & bug reports)
|
||||
|
||||
Alternatively, you can follow us on social media platforms to get news about
|
||||
Castopod:
|
||||
|
||||
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
|
||||
- [Twitter](https://twitter.com/castopod)
|
||||
- [LinkedIn](https://linkedin.com/company/castopod)
|
||||
- [Facebook](https://www.facebook.com/castopod)
|
||||
|
||||
## Sponsors
|
||||
|
||||
The ongoing development of Castopod is made possible with the support of its
|
||||
backers. If you'd like to help, please consider
|
||||
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
|
||||
|
||||
<div class="flex flex-wrap gap-x-16 gap-y-8">
|
||||
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
|
||||
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
|
||||
</div>
|
||||
|
||||
## License
|
||||
|
||||
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||
|
||||
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
|
||||
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
|
||||
[semantic-release]: https://github.com/semantic-release/semantic-release
|
||||
[discord]: https://castopod.org/discord
|
||||
[stars]: https://github.com/ad-aures/castopod/stargazers
|
||||
[crowdin]: https://translate.castopod.org/project/castopod
|
||||
|
|
@ -9,6 +9,14 @@ Castopod a été pensé pour être facile à installer. Que vous utilisiez un
|
|||
hébergement dédié ou mutualisé, vous pouvez l'installer sur la plupart des
|
||||
serveurs web compatibles avec PHP-MySQL.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Prérequis
|
||||
|
||||
- PHP v8.0 ou supérieure
|
||||
|
|
@ -17,8 +25,7 @@ serveurs web compatibles avec PHP-MySQL.
|
|||
|
||||
### PHP v8.0 ou supérieure
|
||||
|
||||
La version 8.0 ou supérieure de PHP est requise, avec les extensions suivantes
|
||||
installées :
|
||||
PHP version 8.0 or higher is required, with the following extensions installed:
|
||||
|
||||
- [intl](https://www.php.net/manual/fr/intl.requirements.php)
|
||||
- [libcurl](https://www.php.net/manual/fr/curl.requirements.php)
|
||||
|
|
@ -27,8 +34,7 @@ installées :
|
|||
**PNG** et bibliothèques **WEBP**.
|
||||
- [exif](https://www.php.net/manual/fr/exif.installation.php)
|
||||
|
||||
De plus, assurez-vous que les extensions suivantes sont activées dans votre PHP
|
||||
:
|
||||
Additionally, make sure that the following extensions are enabled in your PHP:
|
||||
|
||||
- json (activé par défaut - ne le désactivez pas)
|
||||
- xml (activé par défaut - ne pas le désactiver)
|
||||
|
|
@ -38,30 +44,27 @@ De plus, assurez-vous que les extensions suivantes sont activées dans votre PHP
|
|||
|
||||
> Nous vous recommandons d'utiliser [MariaDB](https://mariadb.org).
|
||||
|
||||
::: avertissement
|
||||
::: warning Warning
|
||||
|
||||
Castopod ne fonctionne qu'avec les bases de données compatibles MySQL 5.7 ou
|
||||
supérieures. Les versions 5.6 (dont le support a cessé le 5 février 2021) ou
|
||||
précédentes de MySQL ne fonctionneront pas.
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
|
||||
:::
|
||||
|
||||
Vous aurez besoin du nom d'hôte du serveur, du nom de la base de données, du nom
|
||||
d'utilisateur et du mot de passe pour terminer le processus d'installation. Si
|
||||
vous ne disposez pas de ces informations, veuillez contacter votre
|
||||
administrateur.
|
||||
You will need the server hostname, database name, username and password to
|
||||
complete the installation process. If you do not have these, please contact your
|
||||
server administrator.
|
||||
|
||||
#### Droits d'accès
|
||||
|
||||
L'utilisateur doit avoir au moins ces droits d'accès sur la base de données pour
|
||||
que Castopod fonctionne : `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`,
|
||||
`INSERT`, `SELECT`, `UPDATE`.
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`.
|
||||
|
||||
### (Facultatif) FFmpeg v4.1.8 ou supérieur pour les clips vidéo
|
||||
|
||||
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 ou supérieure est requis si vous
|
||||
souhaitez générer des Clips Vidéo. Les extensions suivantes doivent être
|
||||
installées :
|
||||
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you
|
||||
want to generate Video Clips. The following extensions must be installed:
|
||||
|
||||
- bibliothèque **FreeType 2** pour
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
|
@ -121,24 +124,24 @@ installées :
|
|||
2. Suivez les instructions affichée.
|
||||
3. Commencer à baladodiffuser !
|
||||
|
||||
::: info Nota Bene
|
||||
::: info Note
|
||||
|
||||
Le script install crée un fichier `.env` à la racine du paquet. Si vous ne
|
||||
pouvez pas passer par l'assistant d'installation, vous pouvez
|
||||
[créer et mettre à jour le fichier `.env` manuellement](#alternative-manual-configuration).
|
||||
The install script writes a `.env` file in the package root. If you cannot go
|
||||
through the install wizard, you can
|
||||
[create and update the `.env` file manually](#alternative-manual-configuration).
|
||||
|
||||
:::
|
||||
|
||||
## Paquets fournis par la communauté
|
||||
|
||||
Si vous ne voulez pas vous soucier d'installer Castopod manuellement, vous
|
||||
pouvez utiliser un des paquets créés et maintenus par la communauté open-source.
|
||||
If you don't want to bother with installing Castopod manually, you may use one
|
||||
of the packages created and maintained by the open-source community.
|
||||
|
||||
### Installer avec YunoHost
|
||||
|
||||
[YunoHost](https://yunohost.org/) est une distribution basée sur Debian
|
||||
GNU/Linux composée de paquets logiciels libres et open-source. Il simplifie
|
||||
l'auto-hébergement pour vous.
|
||||
[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux
|
||||
made up of free and open-source software packages. It manages the hardships of
|
||||
self-hosting for you.
|
||||
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
|
||||
|
|
@ -155,16 +158,16 @@ Github</a>
|
|||
|
||||
### Installer avec Docker
|
||||
|
||||
Si vous souhaitez utiliser Docker pour installer Castopod, c'est possible grâce
|
||||
à [Romain de Laage](https://mamot.fr/@rdelaage)!
|
||||
If you wish to use Docker to install Castopod, it is possible thanks to
|
||||
[Romain de Laage](https://mamot.fr/@rdelaage)!
|
||||
|
||||
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Installer
|
||||
avec
|
||||
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
|
||||
::: info Nota Bene
|
||||
::: info Note
|
||||
|
||||
Étant donné la forte demande de Docker, nous prévoyons de maintenir une image
|
||||
officielle de Castopod Docker directement dans le dépôt Castopod.
|
||||
Given high demand for docker, we plan on maintaining an official Castopod Docker
|
||||
image directly into the Castopod repository.
|
||||
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ petite taille.
|
|||
::: info Statut
|
||||
|
||||
Castopod est actuellement en **version beta** mais est déjà suffisamment stable
|
||||
et est utilisé par des podcasters partout autour du monde !
|
||||
et est utilisé par des podcasters autour partout dans le monde !
|
||||
|
||||
:::
|
||||
|
||||
|
|
@ -27,8 +27,8 @@ et est utilisé par des podcasters partout autour du monde !
|
|||
## Fonctionnalités
|
||||
|
||||
- 🌱 Libre, gratuit & open-source (Licence AGPL v3)
|
||||
- 🔐 Focalisé sur la souveraineté des données : votre contenu, votre
|
||||
audience et vos statistiques vous appartiennent, et à vous seulement
|
||||
- 🔐 focalisé sur la souveraineté des données : votre contenu, votre
|
||||
audience et vos statiistiques vous appartiennent, et à vous seulement
|
||||
- 🪄 Fonctionnalités de Podcasting 2.0 : GUID, verrouillage,
|
||||
transcriptions, financement, chapitres, géo-localisation, intervenants,
|
||||
extraits sonores, …
|
||||
|
|
@ -61,8 +61,8 @@ et est utilisé par des podcasters partout autour du monde !
|
|||
- 🔀 Multi-locataire : hébergez autant de podcasts que vous le souhaitez
|
||||
- 👥 Multi-utilisateur : ajoutez des contributeurs et définissez leurs
|
||||
rôles
|
||||
- 🌎 Multilingue: traduit en Anglais, Français, Polonais, Allemand &
|
||||
Brésilien… et bien d'autres à venir !
|
||||
- 🌎 support i18n: traduit en Anglais, Français, Polonais, Allemand &
|
||||
Brésilien… et bientôt d'autres à venir !
|
||||
|
||||
## Pourquoi Castopod ?
|
||||
|
||||
|
|
@ -89,9 +89,9 @@ Ce projet s'appuie sur la communauté open-source, plus spécifiquement sur le
|
|||
|
||||
## Comparaison avec d'autres solutions
|
||||
|
||||
Nous pensons qu'une solution n'est pas forcément adaptée à tous, tout dépend vos
|
||||
besoins. Voici donc un comparatif avec d'autres outils qui vous aidera à juger
|
||||
si Castopod est fait pour vous.
|
||||
Nous pensons qu'une solution n'est pas adaptée à tous, tout dépend vos besoins.
|
||||
Voici donc un comparatif avec d'autres outils qui vous aidera à juger si
|
||||
Castopod est fait pour vous.
|
||||
|
||||
### Castopod vs Wordpress
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ plupart des serveurs web.
|
|||
|
||||
Wordpress est un excellent outil pour créer votre site web et de l'étendre avec
|
||||
des plugins pour faire ce que vous souhaitez. C'est un CMS à part entière qui
|
||||
vous permet de mettre en ligne tout type de site web.
|
||||
vous permet de mettre en line tout type de site web.
|
||||
|
||||
Castopod quant à lui est destiné à répondre aux besoins spécifiques des
|
||||
podcasteurs, en se concentrant sur les podcasts et rien d'autre. Vous n'avez
|
||||
|
|
|
|||
170
docs/src/gd/getting-started/install.md
Normal file
170
docs/src/gd/getting-started/install.md
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
---
|
||||
title: Installation
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# How to install Castopod?
|
||||
|
||||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
|
||||
- HTTPS support
|
||||
|
||||
### PHP v8.0 or higher
|
||||
|
||||
PHP version 8.0 or higher is required, with the following extensions installed:
|
||||
|
||||
- [intl](https://php.net/manual/en/intl.requirements.php)
|
||||
- [libcurl](https://php.net/manual/en/curl.requirements.php)
|
||||
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
|
||||
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
|
||||
**PNG** and **WEBP** libraries.
|
||||
- [exif](https://www.php.net/manual/en/exif.installation.php)
|
||||
|
||||
Additionally, make sure that the following extensions are enabled in your PHP:
|
||||
|
||||
- json (enabled by default - don't turn it off)
|
||||
- xml (enabled by default - don't turn it off)
|
||||
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
|
||||
|
||||
### MySQL compatible database
|
||||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
|
||||
:::
|
||||
|
||||
You will need the server hostname, database name, username and password to
|
||||
complete the installation process. If you do not have these, please contact your
|
||||
server administrator.
|
||||
|
||||
#### Privileges
|
||||
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`.
|
||||
|
||||
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
|
||||
|
||||
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you
|
||||
want to generate Video Clips. The following extensions must be installed:
|
||||
|
||||
- **FreeType 2** library for
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
||||
### (Optional) Other recommendations
|
||||
|
||||
- Redis for better cache performances.
|
||||
- CDN for static files caching and better performances.
|
||||
- e-mail gateway for lost passwords.
|
||||
|
||||
## Install instructions
|
||||
|
||||
### Pre-requisites
|
||||
|
||||
0. Get a Web Server with [requirements](#requirements) installed
|
||||
1. Create a MySQL database for Castopod with a user having access and
|
||||
modification privileges (for more info, see
|
||||
[MySQL compatible database](#mysql-compatible-database)).
|
||||
2. Activate HTTPS on your domain with an _SSL certificate_.
|
||||
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
|
||||
the web server if you haven’t already.
|
||||
- ⚠️ Set the web server document root to the `public/` sub-folder within the
|
||||
`castopod` folder.
|
||||
4. Add **cron tasks** on your web server for various background processes
|
||||
(replace the paths accordingly):
|
||||
|
||||
- For social features to work properly, this task is used to broadcast social
|
||||
activities to your followers on the fediverse:
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
|
||||
```
|
||||
|
||||
- For having your episodes be broadcasted on open hubs upon publication using
|
||||
[WebSub](https://en.wikipedia.org/wiki/WebSub):
|
||||
|
||||
```bash
|
||||
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
|
||||
```
|
||||
|
||||
- For Video Clips to be created (see
|
||||
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
|
||||
```
|
||||
|
||||
> These tasks run **every minute**. You may set the frequency depending on
|
||||
> your needs: every 5, 10 minutes or more.
|
||||
|
||||
### (recommended) Install Wizard
|
||||
|
||||
1. Run the Castopod install script by going to the install wizard page
|
||||
(`https://your_domain_name.com/cp-install`) in your favorite web browser.
|
||||
2. Follow the instructions on your screen.
|
||||
3. Start podcasting!
|
||||
|
||||
::: info Note
|
||||
|
||||
The install script writes a `.env` file in the package root. If you cannot go
|
||||
through the install wizard, you can
|
||||
[create and update the `.env` file manually](#alternative-manual-configuration).
|
||||
|
||||
:::
|
||||
|
||||
## Community packages
|
||||
|
||||
If you don't want to bother with installing Castopod manually, you may use one
|
||||
of the packages created and maintained by the open-source community.
|
||||
|
||||
### Install with YunoHost
|
||||
|
||||
[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux
|
||||
made up of free and open-source software packages. It manages the hardships of
|
||||
self-hosting for you.
|
||||
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
|
||||
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
|
||||
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
|
||||
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
|
||||
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
|
||||
Repo</a>
|
||||
|
||||
</div>
|
||||
|
||||
### Install with Docker
|
||||
|
||||
If you wish to use Docker to install Castopod, it is possible thanks to
|
||||
[Romain de Laage](https://mamot.fr/@rdelaage)!
|
||||
|
||||
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
|
||||
with
|
||||
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
|
||||
::: info Note
|
||||
|
||||
Given high demand for docker, we plan on maintaining an official Castopod Docker
|
||||
image directly into the Castopod repository.
|
||||
|
||||
:::
|
||||
26
docs/src/gd/getting-started/security.md
Normal file
26
docs/src/gd/getting-started/security.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: Security
|
||||
---
|
||||
|
||||
# Security concerns
|
||||
|
||||
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
|
||||
framework that encourages
|
||||
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
|
||||
|
||||
To maximize your instance's safety and prevent any malicious attack, we
|
||||
recommend you update all your Castopod files permissions after installation or
|
||||
updates (to avoid any prior permission error):
|
||||
|
||||
- `writable/` folder must be **readable** and **writable**.
|
||||
- `public/media/` folder must be **readable** and **writable**.
|
||||
- any other file must be set to **readonly**.
|
||||
|
||||
For instance, if you are using Apache or NGINX with Ubuntu you may do the
|
||||
following:
|
||||
|
||||
```bash
|
||||
sudo chown -R root:root /path/to/castopod
|
||||
sudo chown -R www-data:www-data /path/to/castopod/writable
|
||||
sudo chown -R www-data:www-data /path/to/castopod/public/media
|
||||
```
|
||||
93
docs/src/gd/getting-started/update.md
Normal file
93
docs/src/gd/getting-started/update.md
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
title: Update
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# How to update Castopod?
|
||||
|
||||
After installing Castopod, you may want to update your instance to the latest
|
||||
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
|
||||
improvements ⚡.
|
||||
|
||||
## Automatic update instructions
|
||||
|
||||
> Coming soon... 👀
|
||||
|
||||
## Manual update instructions
|
||||
|
||||
1. Go to the
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
|
||||
see if your instance is up to date with the latest Castopod version
|
||||
|
||||
- cf.
|
||||
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
|
||||
|
||||
2. Download the latest release package named `Castopod Package`, you may choose
|
||||
between the `zip` or `tar.gz` archives
|
||||
|
||||
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
|
||||
|
||||
3. On your server:
|
||||
|
||||
- Remove all files except `.env` and `public/media`
|
||||
- Copy the new files from the downloaded package into your server
|
||||
|
||||
::: info Note
|
||||
|
||||
You may need to reset files permissions as during the install process.
|
||||
Check [Security Concerns](./security.md).
|
||||
|
||||
:::
|
||||
|
||||
4. Releases may come with additional update instructions (see
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
|
||||
are usually database migration scripts in `.sql` format to update your
|
||||
database schema.
|
||||
|
||||
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
|
||||
line to update the database along with the package files!
|
||||
- cf.
|
||||
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
|
||||
|
||||
5. If you are using redis, clear your cache.
|
||||
6. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
## Frequently asked questions (FAQ)
|
||||
|
||||
### Where can I find my Castopod version?
|
||||
|
||||
Go to your Castopod admin panel, the version is displayed on the bottom left
|
||||
corner.
|
||||
|
||||
Alternatively, you can find the version in the `app > Config > Constants.php`
|
||||
file.
|
||||
|
||||
### I haven't updated my instance in a long time… What should I do?
|
||||
|
||||
No problem! Just get the latest release as described above. Only, when going
|
||||
through the release instructions (4), perform them sequentially, from the oldest
|
||||
to the newest.
|
||||
|
||||
> You may want to backup your instance depending on how long you haven't updated
|
||||
> Castopod.
|
||||
|
||||
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
|
||||
`v1.0.0-beta.1`:
|
||||
|
||||
0. (highly recommended) Make a backup of your files and database.
|
||||
|
||||
1. Download the latest release, overwrite your files whilst keeping `.env` and
|
||||
`public/media`.
|
||||
|
||||
2. Go through each release update instructions sequentially (from oldest to
|
||||
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
|
||||
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
|
||||
|
||||
3. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
### Should I make a backup before updating?
|
||||
|
||||
We advise you do, so you don't lose everything if anything goes wrong!
|
||||
|
||||
More generally, we advise you make regular backups of your Castopod files and
|
||||
database to prevent you from losing it all…
|
||||
216
docs/src/gd/index.md
Normal file
216
docs/src/gd/index.md
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
---
|
||||
sidebarDepth: 2
|
||||
---
|
||||
|
||||
# Welcome 👋
|
||||
|
||||
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars]
|
||||
|
||||
Castopod is a free & open-source hosting platform made for podcasters who want
|
||||
engage and interact with their audience.
|
||||
|
||||
Castopod is easy to install and was built on top of
|
||||
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
|
||||
small footprint.
|
||||
|
||||
::: info Status
|
||||
|
||||
Castopod is currently in **beta** but already quite stable and used by
|
||||
podcasters around the world!
|
||||
|
||||
:::
|
||||
|
||||
<div class="flex items-center">
|
||||
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
</div>
|
||||
|
||||
## Features
|
||||
|
||||
- 🌱 Free & open-source (AGPL v3 License)
|
||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||
belong to you, and you only
|
||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||
chapters, location, persons, soundbites, …
|
||||
- 💬 Built-in social network:
|
||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||
- 📈 Built-in analytics:
|
||||
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||
- 🪙 Standard IABv2 audience measurement
|
||||
- 🏡 On-premises analytics, no third party involved
|
||||
- 📢 Built-in marketing tools:
|
||||
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||
- 📱 PWA: install as a standalone app
|
||||
- 🎨 Customizable theme colors
|
||||
- 🎬 Generate ready-to-share Video clips from episodes
|
||||
- 🔉 Generate soundbites
|
||||
- ▶️ Embeddable player, embed your episodes on any website
|
||||
- 💸 Monetization:
|
||||
- 🔗 Funding links
|
||||
- 📲 listen-to-click ads
|
||||
- 🤝 value4value / WebMonetization
|
||||
- 📡 Publish your episodes everywhere with RSS:
|
||||
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||
- ⚡ Broadcast your episodes instantly with WebSub
|
||||
- 📥 Podcast import: move your existing podcast into Castopod
|
||||
- 📤 Move your podcast out of Castopod
|
||||
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||
- 👥 Multi-user: add contributors and set roles
|
||||
- 🌎 i18n support: translated in English, French & Polish with more to
|
||||
come!
|
||||
|
||||
## Motivation
|
||||
|
||||
The podcasting ecosystem is decentralized by nature: you can create your podcast
|
||||
as an RSS file, publish it on the web and have it shared everywhere online.
|
||||
|
||||
It is in fact one of the only media to have stayed this way for a long time.
|
||||
|
||||
As usages are evolving, more and more people are getting into podcasts: whether
|
||||
it is creators finding new ways to share their ideas, or listeners in the search
|
||||
for better content.
|
||||
|
||||
With podcasting becoming more widely used, some companies are trying to shift it
|
||||
towards a more controlled and centralized medium.
|
||||
|
||||
Castopod was created in an effort to provide an open and sustainable alternative
|
||||
to hosting your podcasts, promoting decentralization to ensure that podcasters
|
||||
creativity can express itself.
|
||||
|
||||
This project is pushed by the open-source community, and specifically by the
|
||||
[Fediverse](https://fediverse.party/en/fediverse/) and
|
||||
[Podcasting 2.0](https://podcastindex.org/) movements.
|
||||
|
||||
## Comparison with other solutions
|
||||
|
||||
We believe that a solution is not necessarily right for everyone, it highly
|
||||
depends on your needs. So, here are comparisons with other tools to help you to
|
||||
gauge whether Castopod is the right fit for you.
|
||||
|
||||
### Castopod vs Wordpress
|
||||
|
||||
Castopod is often referred to as "the Wordpress for podcasts" because of the
|
||||
similarities between the two. In some ways this is true. And actually, Castopod
|
||||
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
|
||||
from the community and the number of websites running it.
|
||||
|
||||
Just like Wordpress, Castopod is free & open source, built using PHP with a
|
||||
MySQL database and is packaged in a way that you can easily install on most web
|
||||
servers.
|
||||
|
||||
Wordpress is a great way to create your website and extend it with plugins to
|
||||
get what you want. It is a full fledged CMS that helps you get any type of
|
||||
website online.
|
||||
|
||||
On the other hand, Castopod is meant to address the podcasters needs
|
||||
specifically, focusing on podcasting, and nothing else. You don't need any
|
||||
plugin to get you started on your podcasting journey.
|
||||
|
||||
This allows optimizing the processes specific to podcasting: ranging from the
|
||||
creation of your podcasts and the publication of new episodes all the way to
|
||||
broadcasting, marketing and analytics.
|
||||
|
||||
Finally, depending on your needs, Wordpress and Castopod can even live side by
|
||||
side as they share the same requirements!
|
||||
|
||||
### Castopod vs Funkwhale
|
||||
|
||||
Funkwhale is a self-hosted, modern free and open-source music server. Just as
|
||||
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
|
||||
interoperability between the two.
|
||||
|
||||
Funkwhale was initially built around music. And later on, as the project
|
||||
evolved, the ability to host podcasts was introduced.
|
||||
|
||||
Unlike Funkwhale, Castopod has been designed and built around podcasting
|
||||
exclusively. This allows easier implementation for features related to the
|
||||
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
|
||||
chapters, locations, persons, …).
|
||||
|
||||
So, you should probably use Funkwhale if you want to host your music, and use
|
||||
Castopod if you want to host your podcasts.
|
||||
|
||||
### Castopod vs other podcast hosts
|
||||
|
||||
There are many solutions for you to host your podcasts, some of which are really
|
||||
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
|
||||
Podcasting 2.0 wagon just like Castopod!
|
||||
|
||||
Each of these solutions differ from one another, you may compare with the
|
||||
[list of features](#features).
|
||||
|
||||
That being said, there are two main differences with other podcasting solutions:
|
||||
|
||||
- Castopod can be self-hosted and is the only solution that allows you to keep
|
||||
full control over what you produce. Also, as it is open-source, you can even
|
||||
customize it as you wish.
|
||||
|
||||
- Castopod is the only solution that currently integrates both a decentralized
|
||||
social network with ActivityPub as well as many of the podcasting 2.0
|
||||
features, hoping to bridge the gap between the two.
|
||||
|
||||
## Contributing
|
||||
|
||||
Love Castopod and would like to help? Take a look at the following documentation
|
||||
to get you started.
|
||||
|
||||
### Code of conduct
|
||||
|
||||
Castopod has adopted a Code of Conduct that we expect project participants to
|
||||
adhere to. Please read the
|
||||
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
|
||||
so that you can understand what actions will and will not be tolerated.
|
||||
|
||||
### Contributing guide
|
||||
|
||||
Read our [contributing guide](./contributing/guidelines.md) to learn about our
|
||||
development process, how to propose bugfixes and improvements, and how to build
|
||||
and test your changes to Castopod.
|
||||
|
||||
## Contact
|
||||
|
||||
You may reach us for help or ask any question you have on:
|
||||
|
||||
- [Discord](https://castopod.org/discord) (for direct interaction with
|
||||
developers and the community)
|
||||
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
|
||||
feature requests & bug reports)
|
||||
|
||||
Alternatively, you can follow us on social media platforms to get news about
|
||||
Castopod:
|
||||
|
||||
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
|
||||
- [Twitter](https://twitter.com/castopod)
|
||||
- [LinkedIn](https://linkedin.com/company/castopod)
|
||||
- [Facebook](https://www.facebook.com/castopod)
|
||||
|
||||
## Sponsors
|
||||
|
||||
The ongoing development of Castopod is made possible with the support of its
|
||||
backers. If you'd like to help, please consider
|
||||
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
|
||||
|
||||
<div class="flex flex-wrap gap-x-16 gap-y-8">
|
||||
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
|
||||
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
|
||||
</div>
|
||||
|
||||
## License
|
||||
|
||||
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||
|
||||
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
|
||||
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
|
||||
[semantic-release]: https://github.com/semantic-release/semantic-release
|
||||
[discord]: https://castopod.org/discord
|
||||
[stars]: https://github.com/ad-aures/castopod/stargazers
|
||||
[crowdin]: https://translate.castopod.org/project/castopod
|
||||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -9,6 +9,14 @@ Det er meininga at Castopod skal vera lett å installera. Uansett om du bruker
|
|||
eige eller delt vevhotell, kan du installera på dei fleste maskiner som har PHP
|
||||
og MySQL.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Krav
|
||||
|
||||
- PHP v8.0 eller nyare
|
||||
|
|
@ -17,7 +25,7 @@ og MySQL.
|
|||
|
||||
### PHP v8.0 eller nyare
|
||||
|
||||
PHP versjon 8.0 er eit krav, med desse utvidingane:
|
||||
PHP version 8.0 or higher is required, with the following extensions installed:
|
||||
|
||||
- [intl](https://php.net/manual/en/intl.requirements.php)
|
||||
- [libcurl](https://php.net/manual/en/curl.requirements.php)
|
||||
|
|
@ -26,8 +34,7 @@ PHP versjon 8.0 er eit krav, med desse utvidingane:
|
|||
**PNG**- og **WEBP**-biblioteka.
|
||||
- [exif](https://www.php.net/manual/en/exif.installation.php)
|
||||
|
||||
I tillegg må du passa på at desse utvidingane er skrudde på i PHP-installasjonen
|
||||
din:
|
||||
Additionally, make sure that the following extensions are enabled in your PHP:
|
||||
|
||||
- json (vanlegvis aktivt - ikkje skru det av)
|
||||
- xml (vanlegvis aktivt - ikkje skru det av)
|
||||
|
|
@ -37,28 +44,27 @@ din:
|
|||
|
||||
> Me tilrår [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning Åtvaring
|
||||
::: warning Warning
|
||||
|
||||
Castopod verkar berre med databasar som støttar MySQL 5.7 eller nyare. MySQL 5.6
|
||||
eller eldre vil ikkje fungera, ettersom den versjonen vart forelda i
|
||||
februar 2021.
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
|
||||
:::
|
||||
|
||||
Du treng vertsnamnet til tenaren, databasenamnet, brukarnamnet og passordet til
|
||||
databasen for å fullføra installeringa. Viss du ikkje har desse, må du kontakta
|
||||
administratoren for tenarmaskina di.
|
||||
You will need the server hostname, database name, username and password to
|
||||
complete the installation process. If you do not have these, please contact your
|
||||
server administrator.
|
||||
|
||||
#### Tilgangsrettar
|
||||
|
||||
Brukaren må minst ha desse tilgangsrettane på databasen for at Castopod skal
|
||||
fungera: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`,
|
||||
`UPDATE`.
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`.
|
||||
|
||||
### (Eventuelt) FFmpeg v4.1.8 eller nyare for filmklypp
|
||||
|
||||
Du treng [FFmpeg](https://www.ffmpeg.org/) versjon 4.1.8 viss du vil laga
|
||||
filmklypp. Desse utvidingane må vera installerte:
|
||||
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you
|
||||
want to generate Video Clips. The following extensions must be installed:
|
||||
|
||||
- **FreeType 2**-biblioteket for
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
|
@ -115,25 +121,24 @@ filmklypp. Desse utvidingane må vera installerte:
|
|||
2. Fylg framgangsmåten på skjermen.
|
||||
3. Start å podkasta!
|
||||
|
||||
::: info
|
||||
::: info Note
|
||||
|
||||
Installasjonsskriptet lagar ei`.env`-fil i rotmappa til pakka. Viss du ikkje kan
|
||||
bruka autoinstalleringa, kan du
|
||||
[oppretta og oppdatera `.env`-fila manuelt](#alternative-manual-configuration).
|
||||
The install script writes a `.env` file in the package root. If you cannot go
|
||||
through the install wizard, you can
|
||||
[create and update the `.env` file manually](#alternative-manual-configuration).
|
||||
|
||||
:::
|
||||
|
||||
## Pakker frå brukarsamfunnet
|
||||
|
||||
Viss du ikkje vil bry deg med å installera Castopod manuelt, kan du bruka ei av
|
||||
pakkene som brukarsamfunnet har laga. Det er tilhengjarar og brukarar av open
|
||||
kjeldekode som lagar og vedlikeheld desse pakkene.
|
||||
If you don't want to bother with installing Castopod manually, you may use one
|
||||
of the packages created and maintained by the open-source community.
|
||||
|
||||
### Installer med Yunohost
|
||||
|
||||
[Yunohost](https://yunohost.org/) er ein Linux-distribusjon som er bygd på
|
||||
Debian GNU/Linux og som inneheld frie og opne program. Yunohost tek seg av det
|
||||
meste som har med oppsett av eigen vevtenar å gjera.
|
||||
[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux
|
||||
made up of free and open-source software packages. It manages the hardships of
|
||||
self-hosting for you.
|
||||
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
|
||||
|
|
@ -149,16 +154,16 @@ meste som har med oppsett av eigen vevtenar å gjera.
|
|||
|
||||
### Installer med Docker
|
||||
|
||||
Viss du vil bruka Docker til å installera Castopod, er det mogleg takk vere
|
||||
If you wish to use Docker to install Castopod, it is possible thanks to
|
||||
[Romain de Laage](https://mamot.fr/@rdelaage)!
|
||||
|
||||
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Installer
|
||||
med
|
||||
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
|
||||
::: info
|
||||
::: info Note
|
||||
|
||||
Etter som mange spør etter Docker-installasjon, planlegg me å laga ei offisiell
|
||||
Docker-pakke for Castopod her i vårt eige arkiv.
|
||||
Given high demand for docker, we plan on maintaining an official Castopod Docker
|
||||
image directly into the Castopod repository.
|
||||
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -22,16 +22,21 @@ over heile verda bruker det!
|
|||
:::
|
||||
|
||||
<div class="flex items-center">
|
||||
<a href="/nn-NO/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Installer<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Installer<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
</div>
|
||||
|
||||
## Funksjonar
|
||||
|
||||
- 🌱 Fri og open (AGPL v3-lisens)
|
||||
- 🌱 Fri og open (AGPL v3-lisens) <<<<<<< HEAD
|
||||
- 🔐 Legg vekt på at du eig dine eigne data: innhaldet, publikum og
|
||||
analysedata høyrer deg til, og berre deg
|
||||
- 🪄 Podkasting 2.0-funksjonar: GUID, låsing, transkribering,
|
||||
finansiering, kapittel, stader, personar, lydbetar…
|
||||
finansiering, kapittel, stader, personar, lydbetar… =======
|
||||
- 🔐 Legg vekt på at du eig dine eigne data: innhaldet, publikum og
|
||||
analysedata høyrer deg til, og berre deg
|
||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||
chapters, location, persons, soundbites, …
|
||||
> > > > > > > 88098377 (New translations index.md (Norwegian Nynorsk))
|
||||
- 💬 Innebygd sosialt nettverk:
|
||||
- 🚀 Castopod er ein del av fødiverset, som er eit desentralisert
|
||||
sosialt nettverk
|
||||
|
|
@ -199,7 +204,7 @@ lesa korleis du
|
|||
|
||||
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||
|
||||
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
|
||||
Copyright © 2020-d.d., [Ad Aures](https://adaures.com/).
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[release-badge]:
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -206,6 +206,11 @@ https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
|||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -9,6 +9,14 @@ Castopod foi pensado para ser fácil de instalar. Seja usando hospedagem dedicad
|
|||
ou compartilhada, você pode instalá-lo na maioria dos servidores web compatíveis
|
||||
com PHP-MySQL.
|
||||
|
||||
::: info Nota
|
||||
|
||||
Esta seção da documentação o ajudará a configurar o Castopod para produção. Se
|
||||
você deseja participar do desenvolvimento do Castopod, pode pular para a seção
|
||||
de contribuição.
|
||||
|
||||
:::
|
||||
|
||||
## Requisitos
|
||||
|
||||
- PHP v8.0 ou superior
|
||||
|
|
@ -17,7 +25,7 @@ com PHP-MySQL.
|
|||
|
||||
### PHP v8.0 ou superior
|
||||
|
||||
É necessário PHP versão 8.0 ou superior com as seguintes extensões instaladas:
|
||||
É necessário PHP versão 8.0 ou superior, com as seguintes extensões instaladas:
|
||||
|
||||
- [intl](https://php.net/manual/en/intl.requirements.php)
|
||||
- [libcurl](https://php.net/manual/en/curl.requirements.php)
|
||||
|
|
@ -39,9 +47,9 @@ seu PHP:
|
|||
|
||||
::: warning Aviso
|
||||
|
||||
Castopod só funciona com bancos de dados compatíveis com MySQL 5.7 ou superior.
|
||||
Vai quebrar com a versão anteiror do MySQL, v5.6, por exemplo, pois teve seu
|
||||
ciclo encerrado em 5 de fevereiro de 2021.
|
||||
Castopod só funciona com bancos de dados MySQL 5.7 ou superior compatíveis. Vai
|
||||
quebrar com a versão anterior MySQL v5.6, por exemplo, pois foi encerrada em 5
|
||||
de fevereiro de 2021.
|
||||
|
||||
:::
|
||||
|
||||
|
|
@ -51,14 +59,14 @@ entre em contato com o administrador do servidor.
|
|||
|
||||
#### Privilégios
|
||||
|
||||
O usuário deve ter pelo menos estes privilégios no banco de dados para que o
|
||||
Castopod funcione: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`,
|
||||
O usuário deve ter pelo menos esses privilégios no banco de dados do Castopod
|
||||
para funcionar: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`,
|
||||
`SELECT`, `UPDATE`.
|
||||
|
||||
### (Opcional) FFmpeg v4.1.8 ou superior para Clipes de Vídeo
|
||||
|
||||
[FFmpeg](https://www.ffmpeg.org/) versão 4.1.8 ou superior é necessário se você
|
||||
deseja gerar Clipes de Vídeo. As seguintes extensões devem ser instaladas:
|
||||
deseja gerar Video Clips. As seguintes extensões devem ser instaladas:
|
||||
|
||||
- Biblioteca **FreeType 2** para
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
|
@ -133,7 +141,7 @@ usar um dos pacotes criados e mantidos pela comunidade de código aberto.
|
|||
### Instalar com YunoHost
|
||||
|
||||
[YunoHost](https://yunohost.org/) é uma distribuição baseada no Debian GNU/Linux
|
||||
composta por pacotes de software livre e de código aberto. Ele gerencia as
|
||||
composto por pacotes de software livre e de código aberto. Ele gerencia as
|
||||
dificuldades de auto-hospedagem para você.
|
||||
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ podcasters em todo o mundo!
|
|||
:::
|
||||
|
||||
<div class="flex items-center">
|
||||
<a href="/pt-BR/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Instalar<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Instalar<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
</div>
|
||||
|
||||
## Funcionalidades
|
||||
|
|
@ -29,8 +29,8 @@ podcasters em todo o mundo!
|
|||
- 🌱 Livre & de código aberto (Licença AGPL v3)
|
||||
- 🔐 Focado na soberania de dados: seu conteúdo, público e análises
|
||||
pertence a você, e somente você
|
||||
- 🪄 Recursos de Podcasting 2.0: GUID, bloqueado, transcrições,
|
||||
financiamento, capítulos, localização, pessoas, clipes de áudio, …
|
||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||
chapters, location, persons, soundbites, …
|
||||
- 💬 Rede social integrada:
|
||||
- 🚀 Castopod é parte do Fediverso, uma rede social descentralizada
|
||||
- ❤️ Crie publicações, compartilhe, favorite e comente em episódios
|
||||
|
|
@ -188,11 +188,11 @@ sobre o Castopod:
|
|||
- [LinkedIn](https://linkedin.com/company/castopod)
|
||||
- [Facebook](https://www.facebook.com/castopod)
|
||||
|
||||
## Patrocinadores
|
||||
## Apoiadores
|
||||
|
||||
O desenvolvimento contínuo do Castopod é possível com o apoio de seus
|
||||
patrocinadores. Se você quiser ajudar, por favor considere
|
||||
[patrocinar o desenvolvimento do Castopod](https://opencollective.com/castopod/contribute).
|
||||
apoiadores. Se você quiser ajudar, por favor considere
|
||||
[apoiar o desenvolvimento do Castopod](https://opencollective.com/castopod/contribute).
|
||||
|
||||
<div class="flex flex-wrap gap-x-16 gap-y-8">
|
||||
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Logo de Ad Aures" class="h-16" /></a>
|
||||
|
|
@ -203,24 +203,17 @@ patrocinadores. Se você quiser ajudar, por favor considere
|
|||
|
||||
[Licença Pública Geral GNU Affero v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||
|
||||
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
|
||||
Copyright © 2020-presente, [Ad Aures](https://adaures.com/).
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[release-badge]:
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
|
||||
[license-badge]:
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
|
||||
[contributions-badge]:
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
[semantic-release]: https://github.com/semantic-release/semantic-release
|
||||
[semantic-release-badge]:
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
[discord]: https://castopod.org/discord
|
||||
[discord-badge]: https://img.shields.io/badge/chat-on%20discord-7389D8
|
||||
[stars]: https://github.com/ad-aures/castopod/stargazers
|
||||
[stars-badge]:
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
[crowdin]: https://translate.castopod.org/project/castopod
|
||||
[crowdin-badge]: https://badges.crowdin.net/castopod/localized.svg
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
170
docs/src/sk/getting-started/install.md
Normal file
170
docs/src/sk/getting-started/install.md
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
---
|
||||
title: Installation
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# How to install Castopod?
|
||||
|
||||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
|
||||
- HTTPS support
|
||||
|
||||
### PHP v8.0 or higher
|
||||
|
||||
PHP version 8.0 or higher is required, with the following extensions installed:
|
||||
|
||||
- [intl](https://php.net/manual/en/intl.requirements.php)
|
||||
- [libcurl](https://php.net/manual/en/curl.requirements.php)
|
||||
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
|
||||
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
|
||||
**PNG** and **WEBP** libraries.
|
||||
- [exif](https://www.php.net/manual/en/exif.installation.php)
|
||||
|
||||
Additionally, make sure that the following extensions are enabled in your PHP:
|
||||
|
||||
- json (enabled by default - don't turn it off)
|
||||
- xml (enabled by default - don't turn it off)
|
||||
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
|
||||
|
||||
### MySQL compatible database
|
||||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
|
||||
:::
|
||||
|
||||
You will need the server hostname, database name, username and password to
|
||||
complete the installation process. If you do not have these, please contact your
|
||||
server administrator.
|
||||
|
||||
#### Privileges
|
||||
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`.
|
||||
|
||||
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
|
||||
|
||||
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you
|
||||
want to generate Video Clips. The following extensions must be installed:
|
||||
|
||||
- **FreeType 2** library for
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
||||
### (Optional) Other recommendations
|
||||
|
||||
- Redis for better cache performances.
|
||||
- CDN for static files caching and better performances.
|
||||
- e-mail gateway for lost passwords.
|
||||
|
||||
## Install instructions
|
||||
|
||||
### Pre-requisites
|
||||
|
||||
0. Get a Web Server with [requirements](#requirements) installed
|
||||
1. Create a MySQL database for Castopod with a user having access and
|
||||
modification privileges (for more info, see
|
||||
[MySQL compatible database](#mysql-compatible-database)).
|
||||
2. Activate HTTPS on your domain with an _SSL certificate_.
|
||||
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
|
||||
the web server if you haven’t already.
|
||||
- ⚠️ Set the web server document root to the `public/` sub-folder within the
|
||||
`castopod` folder.
|
||||
4. Add **cron tasks** on your web server for various background processes
|
||||
(replace the paths accordingly):
|
||||
|
||||
- For social features to work properly, this task is used to broadcast social
|
||||
activities to your followers on the fediverse:
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
|
||||
```
|
||||
|
||||
- For having your episodes be broadcasted on open hubs upon publication using
|
||||
[WebSub](https://en.wikipedia.org/wiki/WebSub):
|
||||
|
||||
```bash
|
||||
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
|
||||
```
|
||||
|
||||
- For Video Clips to be created (see
|
||||
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
|
||||
|
||||
```bash
|
||||
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
|
||||
```
|
||||
|
||||
> These tasks run **every minute**. You may set the frequency depending on
|
||||
> your needs: every 5, 10 minutes or more.
|
||||
|
||||
### (recommended) Install Wizard
|
||||
|
||||
1. Run the Castopod install script by going to the install wizard page
|
||||
(`https://your_domain_name.com/cp-install`) in your favorite web browser.
|
||||
2. Follow the instructions on your screen.
|
||||
3. Start podcasting!
|
||||
|
||||
::: info Note
|
||||
|
||||
The install script writes a `.env` file in the package root. If you cannot go
|
||||
through the install wizard, you can
|
||||
[create and update the `.env` file manually](#alternative-manual-configuration).
|
||||
|
||||
:::
|
||||
|
||||
## Community packages
|
||||
|
||||
If you don't want to bother with installing Castopod manually, you may use one
|
||||
of the packages created and maintained by the open-source community.
|
||||
|
||||
### Install with YunoHost
|
||||
|
||||
[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux
|
||||
made up of free and open-source software packages. It manages the hardships of
|
||||
self-hosting for you.
|
||||
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
|
||||
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
|
||||
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
|
||||
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
|
||||
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
|
||||
Repo</a>
|
||||
|
||||
</div>
|
||||
|
||||
### Install with Docker
|
||||
|
||||
If you wish to use Docker to install Castopod, it is possible thanks to
|
||||
[Romain de Laage](https://mamot.fr/@rdelaage)!
|
||||
|
||||
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
|
||||
with
|
||||
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
|
||||
::: info Note
|
||||
|
||||
Given high demand for docker, we plan on maintaining an official Castopod Docker
|
||||
image directly into the Castopod repository.
|
||||
|
||||
:::
|
||||
26
docs/src/sk/getting-started/security.md
Normal file
26
docs/src/sk/getting-started/security.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: Security
|
||||
---
|
||||
|
||||
# Security concerns
|
||||
|
||||
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
|
||||
framework that encourages
|
||||
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
|
||||
|
||||
To maximize your instance's safety and prevent any malicious attack, we
|
||||
recommend you update all your Castopod files permissions after installation or
|
||||
updates (to avoid any prior permission error):
|
||||
|
||||
- `writable/` folder must be **readable** and **writable**.
|
||||
- `public/media/` folder must be **readable** and **writable**.
|
||||
- any other file must be set to **readonly**.
|
||||
|
||||
For instance, if you are using Apache or NGINX with Ubuntu you may do the
|
||||
following:
|
||||
|
||||
```bash
|
||||
sudo chown -R root:root /path/to/castopod
|
||||
sudo chown -R www-data:www-data /path/to/castopod/writable
|
||||
sudo chown -R www-data:www-data /path/to/castopod/public/media
|
||||
```
|
||||
93
docs/src/sk/getting-started/update.md
Normal file
93
docs/src/sk/getting-started/update.md
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
title: Update
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# How to update Castopod?
|
||||
|
||||
After installing Castopod, you may want to update your instance to the latest
|
||||
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
|
||||
improvements ⚡.
|
||||
|
||||
## Automatic update instructions
|
||||
|
||||
> Coming soon... 👀
|
||||
|
||||
## Manual update instructions
|
||||
|
||||
1. Go to the
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
|
||||
see if your instance is up to date with the latest Castopod version
|
||||
|
||||
- cf.
|
||||
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
|
||||
|
||||
2. Download the latest release package named `Castopod Package`, you may choose
|
||||
between the `zip` or `tar.gz` archives
|
||||
|
||||
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
|
||||
|
||||
3. On your server:
|
||||
|
||||
- Remove all files except `.env` and `public/media`
|
||||
- Copy the new files from the downloaded package into your server
|
||||
|
||||
::: info Note
|
||||
|
||||
You may need to reset files permissions as during the install process.
|
||||
Check [Security Concerns](./security.md).
|
||||
|
||||
:::
|
||||
|
||||
4. Releases may come with additional update instructions (see
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
|
||||
are usually database migration scripts in `.sql` format to update your
|
||||
database schema.
|
||||
|
||||
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
|
||||
line to update the database along with the package files!
|
||||
- cf.
|
||||
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
|
||||
|
||||
5. If you are using redis, clear your cache.
|
||||
6. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
## Frequently asked questions (FAQ)
|
||||
|
||||
### Where can I find my Castopod version?
|
||||
|
||||
Go to your Castopod admin panel, the version is displayed on the bottom left
|
||||
corner.
|
||||
|
||||
Alternatively, you can find the version in the `app > Config > Constants.php`
|
||||
file.
|
||||
|
||||
### I haven't updated my instance in a long time… What should I do?
|
||||
|
||||
No problem! Just get the latest release as described above. Only, when going
|
||||
through the release instructions (4), perform them sequentially, from the oldest
|
||||
to the newest.
|
||||
|
||||
> You may want to backup your instance depending on how long you haven't updated
|
||||
> Castopod.
|
||||
|
||||
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
|
||||
`v1.0.0-beta.1`:
|
||||
|
||||
0. (highly recommended) Make a backup of your files and database.
|
||||
|
||||
1. Download the latest release, overwrite your files whilst keeping `.env` and
|
||||
`public/media`.
|
||||
|
||||
2. Go through each release update instructions sequentially (from oldest to
|
||||
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
|
||||
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
|
||||
|
||||
3. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
### Should I make a backup before updating?
|
||||
|
||||
We advise you do, so you don't lose everything if anything goes wrong!
|
||||
|
||||
More generally, we advise you make regular backups of your Castopod files and
|
||||
database to prevent you from losing it all…
|
||||
216
docs/src/sk/index.md
Normal file
216
docs/src/sk/index.md
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
---
|
||||
sidebarDepth: 2
|
||||
---
|
||||
|
||||
# Welcome 👋
|
||||
|
||||
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars]
|
||||
|
||||
Castopod is a free & open-source hosting platform made for podcasters who want
|
||||
engage and interact with their audience.
|
||||
|
||||
Castopod is easy to install and was built on top of
|
||||
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
|
||||
small footprint.
|
||||
|
||||
::: info Status
|
||||
|
||||
Castopod is currently in **beta** but already quite stable and used by
|
||||
podcasters around the world!
|
||||
|
||||
:::
|
||||
|
||||
<div class="flex items-center">
|
||||
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
|
||||
</div>
|
||||
|
||||
## Features
|
||||
|
||||
- 🌱 Free & open-source (AGPL v3 License)
|
||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||
belong to you, and you only
|
||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||
chapters, location, persons, soundbites, …
|
||||
- 💬 Built-in social network:
|
||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||
- 📈 Built-in analytics:
|
||||
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||
- 🪙 Standard IABv2 audience measurement
|
||||
- 🏡 On-premises analytics, no third party involved
|
||||
- 📢 Built-in marketing tools:
|
||||
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||
- 📱 PWA: install as a standalone app
|
||||
- 🎨 Customizable theme colors
|
||||
- 🎬 Generate ready-to-share Video clips from episodes
|
||||
- 🔉 Generate soundbites
|
||||
- ▶️ Embeddable player, embed your episodes on any website
|
||||
- 💸 Monetization:
|
||||
- 🔗 Funding links
|
||||
- 📲 listen-to-click ads
|
||||
- 🤝 value4value / WebMonetization
|
||||
- 📡 Publish your episodes everywhere with RSS:
|
||||
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||
- ⚡ Broadcast your episodes instantly with WebSub
|
||||
- 📥 Podcast import: move your existing podcast into Castopod
|
||||
- 📤 Move your podcast out of Castopod
|
||||
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||
- 👥 Multi-user: add contributors and set roles
|
||||
- 🌎 i18n support: translated in English, French & Polish with more to
|
||||
come!
|
||||
|
||||
## Motivation
|
||||
|
||||
The podcasting ecosystem is decentralized by nature: you can create your podcast
|
||||
as an RSS file, publish it on the web and have it shared everywhere online.
|
||||
|
||||
It is in fact one of the only media to have stayed this way for a long time.
|
||||
|
||||
As usages are evolving, more and more people are getting into podcasts: whether
|
||||
it is creators finding new ways to share their ideas, or listeners in the search
|
||||
for better content.
|
||||
|
||||
With podcasting becoming more widely used, some companies are trying to shift it
|
||||
towards a more controlled and centralized medium.
|
||||
|
||||
Castopod was created in an effort to provide an open and sustainable alternative
|
||||
to hosting your podcasts, promoting decentralization to ensure that podcasters
|
||||
creativity can express itself.
|
||||
|
||||
This project is pushed by the open-source community, and specifically by the
|
||||
[Fediverse](https://fediverse.party/en/fediverse/) and
|
||||
[Podcasting 2.0](https://podcastindex.org/) movements.
|
||||
|
||||
## Comparison with other solutions
|
||||
|
||||
We believe that a solution is not necessarily right for everyone, it highly
|
||||
depends on your needs. So, here are comparisons with other tools to help you to
|
||||
gauge whether Castopod is the right fit for you.
|
||||
|
||||
### Castopod vs Wordpress
|
||||
|
||||
Castopod is often referred to as "the Wordpress for podcasts" because of the
|
||||
similarities between the two. In some ways this is true. And actually, Castopod
|
||||
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
|
||||
from the community and the number of websites running it.
|
||||
|
||||
Just like Wordpress, Castopod is free & open source, built using PHP with a
|
||||
MySQL database and is packaged in a way that you can easily install on most web
|
||||
servers.
|
||||
|
||||
Wordpress is a great way to create your website and extend it with plugins to
|
||||
get what you want. It is a full fledged CMS that helps you get any type of
|
||||
website online.
|
||||
|
||||
On the other hand, Castopod is meant to address the podcasters needs
|
||||
specifically, focusing on podcasting, and nothing else. You don't need any
|
||||
plugin to get you started on your podcasting journey.
|
||||
|
||||
This allows optimizing the processes specific to podcasting: ranging from the
|
||||
creation of your podcasts and the publication of new episodes all the way to
|
||||
broadcasting, marketing and analytics.
|
||||
|
||||
Finally, depending on your needs, Wordpress and Castopod can even live side by
|
||||
side as they share the same requirements!
|
||||
|
||||
### Castopod vs Funkwhale
|
||||
|
||||
Funkwhale is a self-hosted, modern free and open-source music server. Just as
|
||||
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
|
||||
interoperability between the two.
|
||||
|
||||
Funkwhale was initially built around music. And later on, as the project
|
||||
evolved, the ability to host podcasts was introduced.
|
||||
|
||||
Unlike Funkwhale, Castopod has been designed and built around podcasting
|
||||
exclusively. This allows easier implementation for features related to the
|
||||
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
|
||||
chapters, locations, persons, …).
|
||||
|
||||
So, you should probably use Funkwhale if you want to host your music, and use
|
||||
Castopod if you want to host your podcasts.
|
||||
|
||||
### Castopod vs other podcast hosts
|
||||
|
||||
There are many solutions for you to host your podcasts, some of which are really
|
||||
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
|
||||
Podcasting 2.0 wagon just like Castopod!
|
||||
|
||||
Each of these solutions differ from one another, you may compare with the
|
||||
[list of features](#features).
|
||||
|
||||
That being said, there are two main differences with other podcasting solutions:
|
||||
|
||||
- Castopod can be self-hosted and is the only solution that allows you to keep
|
||||
full control over what you produce. Also, as it is open-source, you can even
|
||||
customize it as you wish.
|
||||
|
||||
- Castopod is the only solution that currently integrates both a decentralized
|
||||
social network with ActivityPub as well as many of the podcasting 2.0
|
||||
features, hoping to bridge the gap between the two.
|
||||
|
||||
## Contributing
|
||||
|
||||
Love Castopod and would like to help? Take a look at the following documentation
|
||||
to get you started.
|
||||
|
||||
### Code of conduct
|
||||
|
||||
Castopod has adopted a Code of Conduct that we expect project participants to
|
||||
adhere to. Please read the
|
||||
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
|
||||
so that you can understand what actions will and will not be tolerated.
|
||||
|
||||
### Contributing guide
|
||||
|
||||
Read our [contributing guide](./contributing/guidelines.md) to learn about our
|
||||
development process, how to propose bugfixes and improvements, and how to build
|
||||
and test your changes to Castopod.
|
||||
|
||||
## Contact
|
||||
|
||||
You may reach us for help or ask any question you have on:
|
||||
|
||||
- [Discord](https://castopod.org/discord) (for direct interaction with
|
||||
developers and the community)
|
||||
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
|
||||
feature requests & bug reports)
|
||||
|
||||
Alternatively, you can follow us on social media platforms to get news about
|
||||
Castopod:
|
||||
|
||||
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
|
||||
- [Twitter](https://twitter.com/castopod)
|
||||
- [LinkedIn](https://linkedin.com/company/castopod)
|
||||
- [Facebook](https://www.facebook.com/castopod)
|
||||
|
||||
## Sponsors
|
||||
|
||||
The ongoing development of Castopod is made possible with the support of its
|
||||
backers. If you'd like to help, please consider
|
||||
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
|
||||
|
||||
<div class="flex flex-wrap gap-x-16 gap-y-8">
|
||||
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
|
||||
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
|
||||
</div>
|
||||
|
||||
## License
|
||||
|
||||
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||
|
||||
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
|
||||
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
|
||||
https://img.shields.io/github/license/ad-aures/castopod?color=blue
|
||||
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
|
||||
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
||||
https://img.shields.io/github/stars/ad-aures/castopod?style=social
|
||||
|
||||
[release]: https://code.castopod.org/adaures/castopod/-/releases
|
||||
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
|
||||
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
|
||||
[semantic-release]: https://github.com/semantic-release/semantic-release
|
||||
[discord]: https://castopod.org/discord
|
||||
[stars]: https://github.com/ad-aures/castopod/stargazers
|
||||
[crowdin]: https://translate.castopod.org/project/castopod
|
||||
|
|
@ -8,6 +8,14 @@ sidebarDepth: 3
|
|||
Castopod was thought-out to be easy to install. Whether using dedicated or
|
||||
shared hosting, you can install it on most PHP-MySQL compatible web servers.
|
||||
|
||||
::: info Note
|
||||
|
||||
This section of the documentation will help you set up Castopod for production.
|
||||
If you are looking to partake in the development of Castopod, you may skip to
|
||||
the contributing section.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.0 or higher
|
||||
|
|
@ -35,7 +43,7 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'edit publication',
|
||||
'unpublish' => 'unpublish',
|
||||
'delete' => 'احذف',
|
||||
'deleted' => 'deleted',
|
||||
'delete-permanently' => 'delete permanently',
|
||||
'fediverse' => 'الفديفرس',
|
||||
'block-lists' => 'قوائم حجب',
|
||||
'users' => 'مستخدمون',
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ return [
|
|||
'not_published' => 'غير منشورة',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'الحلقة',
|
||||
'visibility' => 'الظهور',
|
||||
'comments' => 'التعليقات',
|
||||
|
|
@ -47,6 +56,24 @@ return [
|
|||
'createSuccess' => 'تم إنشاء الحلقة بنجاح!',
|
||||
'editSuccess' => 'تم تحديث الحلقة بنجاح!',
|
||||
'publishCancelSuccess' => 'تم إلغاء نشر الحلقة بنجاح!',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -57,7 +84,7 @@ return [
|
|||
'cover' => 'غلاف الحلقة',
|
||||
'cover_hint' =>
|
||||
'If you do not set a cover, the podcast cover will be used instead.',
|
||||
'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'العنوان',
|
||||
'title_hint' =>
|
||||
'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.',
|
||||
|
|
@ -147,9 +174,9 @@ return [
|
|||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.",
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'I understand, I want to delete the episode',
|
||||
'submit' => 'احذف',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'embed' => [
|
||||
'title' => 'Embeddable player',
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ return [
|
|||
'form' => [
|
||||
'avatar' => 'الصورة الرمزية',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared with at least 400px wide and tall.',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'الإسم الكامل',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
|
|
|
|||
|
|
@ -26,14 +26,34 @@ return [
|
|||
'createSuccess' => 'Podcast has been successfully created!',
|
||||
'editSuccess' => 'Podcast has been successfully updated!',
|
||||
'importSuccess' => 'Podcast has been successfully imported!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'cover' => 'Podcast cover',
|
||||
'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast banner',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio with at least 1500px wide.',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Delete podcast banner',
|
||||
'title' => 'العنوان',
|
||||
'handle' => 'Handle',
|
||||
|
|
@ -90,6 +110,9 @@ return [
|
|||
'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.',
|
||||
'new_feed_url' => 'New feed URL',
|
||||
'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnership',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link URL',
|
||||
|
|
@ -219,6 +242,12 @@ return [
|
|||
'film_reviews' => 'Film Reviews',
|
||||
'tv_reviews' => 'TV Reviews',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'By {publisher}',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'warning' =>
|
||||
'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.',
|
||||
'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.',
|
||||
'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.',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ return [
|
|||
'episodes' => 'الحلقات',
|
||||
'episode-list' => 'جميع الحلقات',
|
||||
'episode-create' => 'حلقة جديدة',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Analytics',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
'site_icon' => 'Site icon',
|
||||
'site_icon_delete' => 'Delete site icon',
|
||||
'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.',
|
||||
'site_icon_helper' => 'Icon must be squared with at least 512px wide and tall.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Site name',
|
||||
'site_description' => 'Site description',
|
||||
'submit' => 'حفظ',
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'kemmañ an embannadur',
|
||||
'unpublish' => 'diembannañ',
|
||||
'delete' => 'dilemel',
|
||||
'deleted' => 'dilamet',
|
||||
'delete-permanently' => 'dilemel da viken',
|
||||
'fediverse' => 'kevrebed',
|
||||
'block-lists' => 'roll ar re stanket',
|
||||
'users' => 'implijerien·ezed',
|
||||
|
|
|
|||
|
|
@ -39,6 +39,15 @@ return [
|
|||
'not_published' => 'Diembann',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Rann',
|
||||
'visibility' => 'Gwelusted',
|
||||
'comments' => 'Evezhiadennoù',
|
||||
|
|
@ -48,6 +57,24 @@ return [
|
|||
'createSuccess' => 'Krouet eo bet ar rann gant berzh!',
|
||||
'editSuccess' => 'Hizivaet eo bet ar rann gant berzh!',
|
||||
'publishCancelSuccess' => 'Nullet eo bet embannadur ar rann gant berzh!',
|
||||
'unpublishBeforeDeleteTip' => 'Ret eo deoc\'h diembannañ ar rann a-raok dilemel anezhi.',
|
||||
'deletePublishedEpisodeError' => 'Diembannit ar rann a-raok dilemel anezhi mar plij.',
|
||||
'deleteSuccess' => 'Dilamet eo bet ar rann gant berzh!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'Bez ez eus eus ur rann gant ar berradur-mañ (slug) dija.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -58,7 +85,7 @@ return [
|
|||
'cover' => 'Golo ar rann',
|
||||
'cover_hint' =>
|
||||
'Ma n\'ho peus ket kaset ur golo e vo implijet hini ar podkast en e blas.',
|
||||
'cover_size_hint' => 'Ar golo a rankfe bezañ ur c\'harrez 1400px e vent da nebeutañ.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Titl',
|
||||
'title_hint' =>
|
||||
'Dleout a rafe anv ar rann, sklaer ha berr. Arabat lakaat niverenn ar rann pe ar c\'houlzad amañ.',
|
||||
|
|
@ -148,7 +175,7 @@ return [
|
|||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Dilemel ar rann a zilamo an holl gemennadennoù liammet outi ha skarzhet e vo eus lanv RSS ar podkast.",
|
||||
"Gant ar rann e vo dilamet an holl restroù media, evezhiadennoù, tennadoù video ha son liammet outi.",
|
||||
'understand' => 'Komprennet eo, dilemel ar rann a fell din',
|
||||
'submit' => 'Dilemel',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -9,22 +9,22 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => 'Back to home',
|
||||
'page' => 'Page',
|
||||
'all_pages' => 'All pages',
|
||||
'create' => 'New page',
|
||||
'go_to_page' => 'Go to page',
|
||||
'edit' => 'Edit page',
|
||||
'delete' => 'Delete page',
|
||||
'back_to_home' => 'Distreiñ d\'ar bennbajennad',
|
||||
'page' => 'Pajenn',
|
||||
'all_pages' => 'An holl bajennoù',
|
||||
'create' => 'Krouiñ ur bajenn',
|
||||
'go_to_page' => 'Mont d\'ar bajenn',
|
||||
'edit' => 'Kemm ar bajenn',
|
||||
'delete' => 'Dilemel ar bajenn',
|
||||
'form' => [
|
||||
'title' => 'Title',
|
||||
'permalink' => 'Permalink',
|
||||
'content' => 'Content',
|
||||
'submit_create' => 'Create page',
|
||||
'submit_edit' => 'Save',
|
||||
'title' => 'Titl',
|
||||
'permalink' => 'Peurliamm',
|
||||
'content' => 'Danvez',
|
||||
'submit_create' => 'Krouiñ ar bajenn',
|
||||
'submit_edit' => 'Enrollañ',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'The page “{pageTitle}” was created successfully!',
|
||||
'editSuccess' => 'The page was successfully updated!',
|
||||
'createSuccess' => 'Krouet eo bet ar bajenn "{pageTitle}" gant berzh!',
|
||||
'editSuccess' => 'Hizivaet eo bet ar bajenn gant berzh!',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'pageNavigation' => 'Page navigation',
|
||||
'first' => 'First',
|
||||
'previous' => 'Previous',
|
||||
'next' => 'Next',
|
||||
'last' => 'Last',
|
||||
'older' => 'Older',
|
||||
'newer' => 'Newer',
|
||||
'invalidTemplate' => '{0} is not a valid Pager template.',
|
||||
'invalidPaginationGroup' => '{0} is not a valid Pagination group.',
|
||||
'pageNavigation' => 'Merdeiñ',
|
||||
'first' => 'Kentañ',
|
||||
'previous' => 'Kent',
|
||||
'next' => 'Da heul',
|
||||
'last' => 'Diwezhañ',
|
||||
'older' => 'Koshañ',
|
||||
'newer' => 'Nevesañ',
|
||||
'invalidTemplate' => 'N\'eo ket {0} ur patrom reizh.',
|
||||
'invalidPaginationGroup' => 'N\'eo ket {0} ur strollad reizh.',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,22 +9,22 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'persons' => 'Persons',
|
||||
'all_persons' => 'All persons',
|
||||
'no_person' => 'Nobody found!',
|
||||
'create' => 'Create a person',
|
||||
'view' => 'View person',
|
||||
'edit' => 'Edit person',
|
||||
'delete' => 'Delete person',
|
||||
'persons' => 'Emellerien·ezed',
|
||||
'all_persons' => 'An holl emellerien·ezed',
|
||||
'no_person' => 'Emeller·ez ebet!',
|
||||
'create' => 'Krouiñ un emeller·ez',
|
||||
'view' => 'Gwelet an emeller·ez',
|
||||
'edit' => 'Kemmañ an emeller·ez',
|
||||
'delete' => 'Dilemel an emeller·ez',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Person has been successfully created!',
|
||||
'editSuccess' => 'Person has been successfully updated!',
|
||||
'deleteSuccess' => 'Person has been removed!',
|
||||
'createSuccess' => 'Krouet eo bet an emeller·ez gant berzh!',
|
||||
'editSuccess' => 'Hizivaet eo bet an emeller·ez gant berzh!',
|
||||
'deleteSuccess' => 'Tennet eo bet an emeller·ez!',
|
||||
],
|
||||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared with at least 400px wide and tall.',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Full name',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
|
|
|
|||
|
|
@ -26,19 +26,39 @@ return [
|
|||
'createSuccess' => 'Krouet eo bet ar podkast gant berzh!',
|
||||
'editSuccess' => 'Hizivaet eo bet ar podkast gant berzh!',
|
||||
'importSuccess' => 'Enporzhet eo bet ar podkast gant berzh!',
|
||||
'deleteSuccess' => 'Dilamet eo bet ar podkast @{podcast_handle} gant berzh!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'identity_section_title' => 'Titouroù diwar-benn ar podkast',
|
||||
'identity_section_subtitle' => 'Ar maeziennoù a laka ac\'hanoc\'h da vezañ remerket.',
|
||||
'cover' => 'Golo ar podkast',
|
||||
'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast banner',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio with at least 1500px wide.',
|
||||
'banner_delete' => 'Delete podcast banner',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Giton ar podkast',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Dilemel giton ar podkast',
|
||||
'title' => 'Titl',
|
||||
'handle' => 'Handle',
|
||||
'handle' => 'Anv ar podkast (handle)',
|
||||
'handle_hint' =>
|
||||
'Used to identify the podcast. Uppercase, lowercase, numbers and underscores are accepted.',
|
||||
'Implijet evit anavezout ar podkast. Lizherennoù bras pe munut, niveroù hag islinenn (_) degemeret.',
|
||||
'type' => [
|
||||
'label' => 'Doare',
|
||||
'episodic' => 'Episodic',
|
||||
|
|
@ -90,6 +110,9 @@ return [
|
|||
'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.',
|
||||
'new_feed_url' => 'New feed URL',
|
||||
'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnership',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link URL',
|
||||
|
|
@ -219,6 +242,12 @@ return [
|
|||
'film_reviews' => 'Film Reviews',
|
||||
'tv_reviews' => 'TV Reviews',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'By {publisher}',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'warning' =>
|
||||
'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.',
|
||||
'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.',
|
||||
'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.',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ return [
|
|||
'episodes' => 'Episodes',
|
||||
'episode-list' => 'All episodes',
|
||||
'episode-create' => 'New episode',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Analytics',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
'site_icon' => 'Site icon',
|
||||
'site_icon_delete' => 'Delete site icon',
|
||||
'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.',
|
||||
'site_icon_helper' => 'Icon must be squared with at least 512px wide and tall.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Site name',
|
||||
'site_description' => 'Site description',
|
||||
'submit' => 'Save',
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'Veröffentlichung bearbeiten',
|
||||
'unpublish' => 'Veröffentlichung aufheben',
|
||||
'delete' => 'löschen',
|
||||
'deleted' => 'gelöscht',
|
||||
'delete-permanently' => 'Endgültig löschen',
|
||||
'fediverse' => 'Fediversum',
|
||||
'block-lists' => 'Sperrlisten',
|
||||
'users' => 'Benutzer',
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'podcast_contributors' => 'Podcast-Mitwirkende',
|
||||
'podcast_contributors' => 'Podcast-Administratoren',
|
||||
'view' => "{username}'s Mitwirkung an {podcastTitle}",
|
||||
'add' => 'Mitwirkenden zufügen',
|
||||
'add_contributor' => 'Mitwirkenden zufügen für {0}',
|
||||
'add' => 'Adminstrator zufügen',
|
||||
'add_contributor' => 'Administrator zufügen für {0}',
|
||||
'edit_role' => 'Rolle aktualisieren für {0}',
|
||||
'edit' => 'Bearbeiten',
|
||||
'remove' => 'Entfernen',
|
||||
|
|
@ -25,7 +25,7 @@ return [
|
|||
'user_placeholder' => 'Benutzer auswählen…',
|
||||
'role' => 'Rolle',
|
||||
'role_placeholder' => 'Rolle auswählen…',
|
||||
'submit_add' => 'Mitwirkenden zufügen',
|
||||
'submit_add' => 'Administrator zufügen',
|
||||
'submit_edit' => 'Rolle aktualisieren',
|
||||
],
|
||||
'roles' => [
|
||||
|
|
@ -36,6 +36,6 @@ return [
|
|||
'removeSuccess' =>
|
||||
'{username} wurde von {podcastTitle} entfernt',
|
||||
'alreadyAddedError' =>
|
||||
"Der Mitwirkende wurde bereits zugefügt!",
|
||||
"Der Adminstrator wurde bereits zugefügt!",
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ return [
|
|||
'not_published' => 'Nicht veröffentlicht',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Suche nach einer Episode',
|
||||
'clear' => 'Suche zurücksetzen',
|
||||
'submit' => 'Suche',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Folge',
|
||||
'visibility' => 'Sichtweite',
|
||||
'comments' => 'Komemntar',
|
||||
|
|
@ -47,6 +56,24 @@ return [
|
|||
'createSuccess' => 'Folge wurde erfolgreich erstellt!',
|
||||
'editSuccess' => 'Folge wurde erfolgreich aktualisiert!',
|
||||
'publishCancelSuccess' => 'Veröffentlichung der Episode erfolgreich abgebrochen!',
|
||||
'unpublishBeforeDeleteTip' => 'Du musst die Episode zurückziehen, bevor du sie löschst.',
|
||||
'deletePublishedEpisodeError' => 'Bitte ziehe die Episode zurück, bevor du sie löschst.',
|
||||
'deleteSuccess' => 'Folge erfolgreich gelöscht!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'Eine Folge mit dem ausgewählten Slug existiert bereits.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -57,7 +84,7 @@ return [
|
|||
'cover' => 'Episoden-Cover',
|
||||
'cover_hint' =>
|
||||
'Wenn Du kein Cover festlegst, wird stattdessen das Podcast-Cover verwendet.',
|
||||
'cover_size_hint' => 'Das Cover muss quadratisch sein und mindestens 1400 Pixel breit und hoch sein.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Titel',
|
||||
'title_hint' =>
|
||||
'Nutze einen klaren und einprägsamen Episodennamen. Gib hier nicht die Episoden- oder Staffelnummern an.',
|
||||
|
|
@ -89,7 +116,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. Weitere Informationen sind unter {podcastNamespaceLink} zu finden.',
|
||||
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
|
||||
'location_section_title' => 'Standort',
|
||||
'location_section_subtitle' => 'Über welchen Ort handelt diese Folge?',
|
||||
'location_name' => 'Standortname oder Adresse',
|
||||
|
|
@ -147,9 +174,9 @@ return [
|
|||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Das Löschen der Folge löscht alle damit verbundenen Beiträge und entfernt sie aus dem RSS-Feed des Podcasts.",
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'Ich verstehe, ich möchte die Folge löschen',
|
||||
'submit' => 'Löschen',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'embed' => [
|
||||
'title' => 'Einbettbarer Spieler',
|
||||
|
|
|
|||
|
|
@ -18,9 +18,9 @@ return [
|
|||
'podcast-list' => 'Alle Podcasts',
|
||||
'podcast-create' => 'Neuer Podcast',
|
||||
'podcast-import' => 'Podcast importieren',
|
||||
'persons' => 'Personen',
|
||||
'person-list' => 'Alle Personen',
|
||||
'person-create' => 'Neue Person',
|
||||
'persons' => 'Mitwirkende',
|
||||
'person-list' => 'Alle Mitwirkenden',
|
||||
'person-create' => 'Neuer Mitwirkender',
|
||||
'fediverse' => 'Fediversum',
|
||||
'fediverse-blocked-actors' => 'Blockierte Konten',
|
||||
'fediverse-blocked-domains' => 'Blockierte Domains',
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ return [
|
|||
'form' => [
|
||||
'avatar' => 'Profilbild',
|
||||
'avatar_size_hint' =>
|
||||
'Das Profilbild muss quadratisch sein und mindestens 400 Pixel breit und hoch.',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Vollständiger Name',
|
||||
'full_name_hint' => 'Dies ist der vollständige Name oder der Alias der Person.',
|
||||
'unique_name' => 'Eindeutiger Name',
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ return [
|
|||
'edit' => 'Podcast bearbeiten',
|
||||
'delete' => 'Podcast löschen',
|
||||
'see_episodes' => 'Episoden ansehen',
|
||||
'see_contributors' => 'Mitwirkende anzeigen',
|
||||
'see_contributors' => 'Administratoren anzeigen',
|
||||
'go_to_page' => 'Gehe zur Seite',
|
||||
'latest_episodes' => 'Neueste Folgen',
|
||||
'see_all_episodes' => 'Alle Folgen anzeigen',
|
||||
|
|
@ -26,14 +26,34 @@ return [
|
|||
'createSuccess' => 'Der Podcast wurde erfolgreich erstellt!',
|
||||
'editSuccess' => 'Der Podcast wurde erfolgreich aktualisiert!',
|
||||
'importSuccess' => 'Der Podcast wurde erfolgreich importiert!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast-Identität',
|
||||
'identity_section_subtitle' => 'Diese Felder erlauben es dir, Aufmerksamkeit zu bekommen.',
|
||||
'cover' => 'Podcast-Cover',
|
||||
'cover_size_hint' => 'Das Cover muss quadratisch sein und mindestens 1400 Pixel breit und hoch sein.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast-Banner',
|
||||
'banner_size_hint' => 'Das Banner muss ein 3:1-Verhältnis und mindestens 1500px Breite haben.',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Podcast-Banner löschen',
|
||||
'title' => 'Titel',
|
||||
'handle' => 'Identifikator',
|
||||
|
|
@ -90,6 +110,9 @@ return [
|
|||
'custom_rss_hint' => 'Dies wird innerhalb des ❬channel❭ Tags eingefügt.',
|
||||
'new_feed_url' => 'Neue Feed-URL',
|
||||
'new_feed_url_hint' => 'Benutzen Sie dieses Feld, wenn Sie zu einer anderen Domain oder Podcast-Plattform wechseln. Standardmäßig wird der Wert auf die aktuelle RSS URL gesetzt, wenn der Podcast importiert wird.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnerschaft:en',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link',
|
||||
|
|
@ -219,6 +242,12 @@ return [
|
|||
'film_reviews' => 'Filmkritiken',
|
||||
'tv_reviews' => 'TV-Kritiken',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'Von {publisher}',
|
||||
'season' => 'Staffel {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} Folgen ({episodeCount})',
|
||||
|
|
@ -227,12 +256,12 @@ return [
|
|||
'no_episode' => 'Keine Folge gefunden!',
|
||||
'follow' => 'Folgen',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# Follower}
|
||||
other {# Follower}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# Beitrag}
|
||||
other {# Beiträge}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Aktivitäten',
|
||||
'episodes' => 'Folgen',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'warning' =>
|
||||
'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.',
|
||||
'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.',
|
||||
'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.',
|
||||
|
|
|
|||
|
|
@ -13,10 +13,11 @@ return [
|
|||
'dashboard' => 'Podcast-Dashboard',
|
||||
'podcast-view' => 'Startseite',
|
||||
'podcast-edit' => 'Podcast bearbeiten',
|
||||
'podcast-persons-manage' => 'Personen verwalten',
|
||||
'podcast-persons-manage' => 'Mitwirkende verwalten',
|
||||
'episodes' => 'Folgen',
|
||||
'episode-list' => 'Alle Episoden',
|
||||
'episode-create' => 'Neue Episoden',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Analysen',
|
||||
'podcast-analytics' => 'Zuhörer-Übersicht',
|
||||
'podcast-analytics-webpages' => 'Webseiten-Besuche',
|
||||
|
|
@ -25,9 +26,9 @@ return [
|
|||
'podcast-analytics-players' => 'Podcast-Player',
|
||||
'podcast-analytics-listening-time' => 'Hörzeit',
|
||||
'podcast-analytics-time-periods' => 'Zeiträume',
|
||||
'contributors' => 'Mitwirkende',
|
||||
'contributors' => 'Administratoren',
|
||||
'contributor-list' => 'Alle Unterstützer',
|
||||
'contributor-add' => 'Mitwirkenden hinzufügen',
|
||||
'contributor-add' => 'Administrator hinzufügen',
|
||||
'platforms' => 'Externe Plattformen',
|
||||
'platforms-podcasting' => 'Podcasting',
|
||||
'platforms-social' => 'Soziale Netzwerke',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
'site_icon' => 'Webseiten-Icon',
|
||||
'site_icon_delete' => 'Lösche Webseiten-Icon',
|
||||
'site_icon_hint' => 'Webseiten-Icons sind das, was Sie auf Ihrem Browser Tabs, Lesezeichenleiste und wenn Sie eine Website als Verknüpfung auf mobilen Geräten hinzufügen, sehen.',
|
||||
'site_icon_helper' => 'Das Icon muss quadratisch sein und mindestens 512 Pixel breit und hoch.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Seitenname',
|
||||
'site_description' => 'Seitenbeschreibung',
|
||||
'submit' => 'Speichern',
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'επεξεργασία δημοσίευσης',
|
||||
'unpublish' => 'αναίρεση δημοσίευσης',
|
||||
'delete' => 'διαγραφή',
|
||||
'deleted' => 'διαγράφηκε',
|
||||
'delete-permanently' => 'οριστική διαγραφή',
|
||||
'fediverse' => 'fediverse',
|
||||
'block-lists' => 'λίστες αποκλεισμένων',
|
||||
'users' => 'χρήστες',
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ return [
|
|||
'not_published' => 'Δεν έχει δημοσιευτεί',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Επεισόδιο',
|
||||
'visibility' => 'Ορατότητα',
|
||||
'comments' => 'Σχόλια',
|
||||
|
|
@ -47,6 +56,24 @@ return [
|
|||
'createSuccess' => 'Το επεισόδιο δημιουργήθηκε με επιτυχία!',
|
||||
'editSuccess' => 'Το επεισόδιο ενημερώθηκε με επιτυχία!',
|
||||
'publishCancelSuccess' => 'Η δημοσίευση του επεισοδίου ακυρώθηκε επιτυχώς!',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -57,7 +84,7 @@ return [
|
|||
'cover' => 'Εξώφυλλο επισοδίου',
|
||||
'cover_hint' =>
|
||||
'Εάν δεν ορίσετε ένα εξώφυλλο, το εξώφυλλο του podcast θα χρησιμοποιηθεί αντ \'αυτού.',
|
||||
'cover_size_hint' => 'Το εξώφυλλο πρέπει να είναι τουλάχιστον 1400px πλάτος και ύψος.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Τίτλος',
|
||||
'title_hint' =>
|
||||
'Θα πρέπει να υπάρχει ένα σαφές και συνοπτικό όνομα επεισοδίου. Μην καθορίσετε εδώ το επεισόδιο ή τους αριθμούς της σεζόν.',
|
||||
|
|
@ -75,91 +102,91 @@ return [
|
|||
],
|
||||
'parental_advisory' => [
|
||||
'label' => 'Γονικός σύμβουλος',
|
||||
'hint' => 'Does the episode contain explicit content?',
|
||||
'undefined' => 'undefined',
|
||||
'clean' => 'Clean',
|
||||
'explicit' => 'Explicit',
|
||||
'hint' => 'Μήπως το επεισόδιο περιέχει ακατάλληλο περιεχόμενο;',
|
||||
'undefined' => 'απροσδιόριστο',
|
||||
'clean' => 'Καθαρισμός',
|
||||
'explicit' => 'Άσεμνο περιεχόμενο',
|
||||
],
|
||||
'show_notes_section_title' => 'Show notes',
|
||||
'show_notes_section_title' => 'Εμφάνιση σημειώσεων',
|
||||
'show_notes_section_subtitle' =>
|
||||
'Up to 4000 characters, be clear and concise. Show notes help potential listeners in finding the episode.',
|
||||
'description' => 'Description',
|
||||
'description_footer' => 'Description footer',
|
||||
'Μέχρι 4000 χαρακτήρες, να είναι σαφείς και συνοπτικές. Η εμφάνιση σημειώσεων βοηθάει πιθανούς ακροατές στην εύρεση του επεισοδίου.',
|
||||
'description' => 'Περιγραφή',
|
||||
'description_footer' => 'Υποσέλιδο περιγραφής',
|
||||
'description_footer_hint' =>
|
||||
'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_title' => 'Επιπρόσθετα αρχεία',
|
||||
'additional_files_section_subtitle' =>
|
||||
'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',
|
||||
'location_name_hint' => 'This can be a real or fictional location',
|
||||
'transcript' => 'Transcript (subtitles / closed captions)',
|
||||
'transcript_hint' => 'Only .srt are allowed.',
|
||||
'transcript_download' => 'Download transcript',
|
||||
'transcript_file' => 'Transcript file (.srt)',
|
||||
'transcript_remote_url' => 'Remote url for transcript',
|
||||
'transcript_file_delete' => 'Delete transcript file',
|
||||
'chapters' => 'Chapters',
|
||||
'chapters_hint' => 'File must be in JSON Chapters format.',
|
||||
'chapters_download' => 'Download chapters',
|
||||
'chapters_file' => 'Chapters file',
|
||||
'chapters_remote_url' => 'Remote url for chapters file',
|
||||
'chapters_file_delete' => 'Delete chapters file',
|
||||
'advanced_section_title' => 'Advanced Parameters',
|
||||
'Αυτά τα αρχεία μπορούν να χρησιμοποιηθούν από άλλες πλατφόρμες για την παροχή καλύτερης εμπειρίας στο κοινό σας. Δείτε το {podcastNamespaceLink} για περισσότερες πληροφορίες.',
|
||||
'location_section_title' => 'Τοποθεσία',
|
||||
'location_section_subtitle' => 'Σε ποιο μέρος είναι αυτό το επεισόδιο;',
|
||||
'location_name' => 'Όνομα τοποθεσίας ή διεύθυνση',
|
||||
'location_name_hint' => 'Αυτή μπορεί να είναι μια πραγματική ή φανταστική τοποθεσία',
|
||||
'transcript' => 'Απομαγνητοφώνηση (υπότιτλοι / κλειστοί υπότιτλοι)',
|
||||
'transcript_hint' => 'Επιτρέπονται μόνο .srt αρχεία.',
|
||||
'transcript_download' => 'Λήψη απομαγνητοφώνησης',
|
||||
'transcript_file' => 'Αρχείο απομαγνητοφώνησης (.srt)',
|
||||
'transcript_remote_url' => 'Απομακρυσμένη διεύθυνση url για απομαγνητοφώνηση',
|
||||
'transcript_file_delete' => 'Διαγραφή αρχείου απομαγνητοφώνησης',
|
||||
'chapters' => 'Κεφάλαια',
|
||||
'chapters_hint' => 'Το αρχείο πρέπει να είναι σε μορφή JSON.',
|
||||
'chapters_download' => 'Κατεβάστε τα κεφάλαια',
|
||||
'chapters_file' => 'Αρχεία κεφαλαίων',
|
||||
'chapters_remote_url' => 'Απομακρυσμένη διεύθυνση url για αρχεία κεφαλαίων',
|
||||
'chapters_file_delete' => 'Διαγραφή αρχείου κεφαλαίων',
|
||||
'advanced_section_title' => 'Προηγμένες Παράμετροι',
|
||||
'advanced_section_subtitle' =>
|
||||
'If you need RSS tags that Castopod does not handle, set them here.',
|
||||
'custom_rss' => 'Custom RSS tags for the episode',
|
||||
'custom_rss_hint' => 'This will be injected within the ❬item❭ tag.',
|
||||
'block' => 'Episode should be hidden from all platforms',
|
||||
'Αν χρειάζεστε ετικέτες RSS που δεν χειρίζεται το Castopod, ορίστε τις εδώ.',
|
||||
'custom_rss' => 'Προσαρμοσμένες ετικέτες RSS για το επεισόδιο',
|
||||
'custom_rss_hint' => 'Αυτό θα ενεθεί εντός της ετικέτας "item".',
|
||||
'block' => 'Το επεισόδιο πρέπει να είναι κρυμμένο από όλες τις πλατφόρμες',
|
||||
'block_hint' =>
|
||||
'The episode show or hide post. If you want this episode removed from the Apple directory, toggle this on.',
|
||||
'submit_create' => 'Create episode',
|
||||
'submit_edit' => 'Save episode',
|
||||
'Το επεισόδιο εμφανίζει ή αποκρύπτει την ανάρτηση. Αν θέλετε αυτό το επεισόδιο να αφαιρεθεί από τον κατάλογο της Apple, ενεργοποιήστε το.',
|
||||
'submit_create' => 'Δημιουργία επεισοδίου',
|
||||
'submit_edit' => 'Αποθήκευση επεισοδίου',
|
||||
],
|
||||
'publish_form' => [
|
||||
'back_to_episode_dashboard' => 'Back to episode dashboard',
|
||||
'post' => 'Your announcement post',
|
||||
'back_to_episode_dashboard' => 'Πίσω στον Πίνακα Ελέγχου',
|
||||
'post' => 'Η ανακοίνωσή σας',
|
||||
'post_hint' =>
|
||||
"Write a message to announce the publication of your episode. The message will be broadcasted to all your followers in the fediverse and be featured in your podcast's homepage.",
|
||||
'message_placeholder' => 'Write your message…',
|
||||
'publication_date' => 'Publication date',
|
||||
"Γράψτε ένα μήνυμα για να ανακοινώσετε τη δημοσίευση του επεισοδίου σας. Το μήνυμα θα μεταδοθεί σε όλους τους οπαδούς σας στο fediverse και θα εμφανίζεται στην αρχική σελίδα του podcast σας.",
|
||||
'message_placeholder' => 'Γράψτε το μήνυμά σας…',
|
||||
'publication_date' => 'Ημερομηνία δημοσίευσης',
|
||||
'publication_method' => [
|
||||
'now' => 'Now',
|
||||
'schedule' => 'Schedule',
|
||||
'now' => 'Τώρα',
|
||||
'schedule' => 'Προγραμματισμός',
|
||||
],
|
||||
'scheduled_publication_date' => 'Scheduled publication date',
|
||||
'scheduled_publication_date_clear' => 'Clear publication date',
|
||||
'scheduled_publication_date' => 'Ημερομηνία προγραμματισμένης δημοσίευσης',
|
||||
'scheduled_publication_date_clear' => 'Εκκαθάριση ημερομηνίας δημοσίευσης',
|
||||
'scheduled_publication_date_hint' =>
|
||||
'You can schedule the episode release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm',
|
||||
'submit' => 'Publish',
|
||||
'submit_edit' => 'Edit publication',
|
||||
'cancel_publication' => 'Cancel publication',
|
||||
'message_warning' => 'You did not write a message for your announcement post!',
|
||||
'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your episode.',
|
||||
'Μπορείτε να προγραμματίσετε την έκδοση επεισοδίων ορίζοντας μια μελλοντική ημερομηνία δημοσίευσης. Αυτό το πεδίο πρέπει να μορφοποιηθεί ως ΕΕΕ-ΜΜ-ΗΗ HH:mm',
|
||||
'submit' => 'Δημοσίευση',
|
||||
'submit_edit' => 'Επεξεργασία δημοσίευσης',
|
||||
'cancel_publication' => 'Ακύρωση δημοσίευσης',
|
||||
'message_warning' => 'Δεν γράψατε μήνυμα για την ανακοίνωσή σας!',
|
||||
'message_warning_hint' => 'Έχοντας ένα μήνυμα αυξάνει την κοινωνική δέσμευση, με αποτέλεσμα μια καλύτερη προβολή για το επεισόδιο σας.',
|
||||
'message_warning_submit' => 'Δημοσίευση ούτως ή άλλως',
|
||||
],
|
||||
'unpublish_form' => [
|
||||
'disclaimer' =>
|
||||
"Η κατάργηση της δημοσίευσης του επεισοδίου θα διαγράψει όλες τις δημοσιεύσεις που σχετίζονται με αυτό και θα τις αφαιρέσει από τη ροή RSS του podcast.",
|
||||
'understand' => 'I understand, I want to unpublish the episode',
|
||||
'submit' => 'Unpublish',
|
||||
'understand' => 'Καταλαβαίνω, θέλω να αποδημοσιεύσει το επεισόδιο',
|
||||
'submit' => 'Αναίρεση δημοσίευσης',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.",
|
||||
'understand' => 'I understand, I want to delete the episode',
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'Καταλαβαίνω, θέλω να διαγράψω το επεισόδιο',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'embed' => [
|
||||
'title' => 'Embeddable player',
|
||||
'title' => 'Ενσωματώσιμος αναπαραγωγέας',
|
||||
'label' =>
|
||||
'Pick a theme color, copy the embeddable player to clipboard, then paste it on your website.',
|
||||
'clipboard_iframe' => 'Copy embeddable player to clipboard',
|
||||
'clipboard_url' => 'Copy address to clipboard',
|
||||
'dark' => 'Dark',
|
||||
'dark-transparent' => 'Dark transparent',
|
||||
'light' => 'Light',
|
||||
'light-transparent' => 'Light transparent',
|
||||
'Επιλέξτε ένα χρώμα θέματος, αντιγράψτε τον ενσωματωμένο παίκτη στο πρόχειρο και στη συνέχεια επικολλήστε το στην ιστοσελίδα σας.',
|
||||
'clipboard_iframe' => 'Αντιγραφή ενσωματωμένου αναπαραγωγέα στο πρόχειρο',
|
||||
'clipboard_url' => 'Αντιγραφή διεύθυνσης στο πρόχειρο',
|
||||
'dark' => 'Σκοτεινό',
|
||||
'dark-transparent' => 'Σκούρο διαφανές',
|
||||
'light' => 'Ανοιχτόχρωμο',
|
||||
'light-transparent' => 'Ανοιχτό διαφανές',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,15 +9,15 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'go_to_page' => 'View episode page',
|
||||
'dashboard' => 'Episode dashboard',
|
||||
'episode-view' => 'Home',
|
||||
'episode-edit' => 'Edit episode',
|
||||
'episode-persons-manage' => 'Manage persons',
|
||||
'embed-add' => 'Embeddable player',
|
||||
'clips' => 'Clips',
|
||||
'video-clips-list' => 'Video clips',
|
||||
'video-clips-create' => 'New video clip',
|
||||
'soundbites-list' => 'Soundbites',
|
||||
'soundbites-create' => 'New soundbite',
|
||||
'go_to_page' => 'Προβολή σελίδας επεισοδίου',
|
||||
'dashboard' => 'Πίνακας εργαλείων επεισοδίου',
|
||||
'episode-view' => 'Αρχική σελίδα',
|
||||
'episode-edit' => 'Επεξεργασία επεισοδίου',
|
||||
'episode-persons-manage' => 'Διαχείριση ατόμων',
|
||||
'embed-add' => 'Ενσωματώσιμος αναπαραγωγέας',
|
||||
'clips' => 'Αποσπάσματα',
|
||||
'video-clips-list' => 'Βίντεο κλιπς',
|
||||
'video-clips-create' => 'Νέο βίντεο κλιπ',
|
||||
'soundbites-list' => 'Ήχοι',
|
||||
'soundbites-create' => 'Νέο soundbite',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -10,23 +10,23 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'messages' => [
|
||||
'actorNotFound' => 'The account could not be found!',
|
||||
'blockActorSuccess' => '{actor} has been blocked!',
|
||||
'unblockActorSuccess' => 'Actor has been unblocked!',
|
||||
'blockDomainSuccess' => '{domain} has been blocked!',
|
||||
'unblockDomainSuccess' => '{domain} has been unblocked!',
|
||||
'actorNotFound' => 'Δεν βρέθηκε ο λογαριασμός!',
|
||||
'blockActorSuccess' => '{0} έχει αποκλειστεί!',
|
||||
'unblockActorSuccess' => 'Ο ηθοποιός έχει ξεμπλοκαριστεί!',
|
||||
'blockDomainSuccess' => '{domain} έχει αποκλειστεί!',
|
||||
'unblockDomainSuccess' => '{domain} έχει ξεμπλοκαριστεί!',
|
||||
],
|
||||
'blocked_actors' => 'Blocked accounts',
|
||||
'blocked_domains' => 'Blocked domains',
|
||||
'blocked_actors' => 'Αποκλεισμένοι λογαριασμοί',
|
||||
'blocked_domains' => 'Αποκλεισμένοι τομείς',
|
||||
'block_lists_form' => [
|
||||
'handle' => 'Account handle',
|
||||
'handle_hint' => 'Input @username@domain account.',
|
||||
'domain' => 'Domain name',
|
||||
'submit' => 'Block!',
|
||||
'handle' => 'Χειρισμός λογαριασμού',
|
||||
'handle_hint' => 'Εισαγωγή λογαριασμού @username@domain.',
|
||||
'domain' => 'Όνομα τομέα',
|
||||
'submit' => 'Αποκλεισμός!',
|
||||
],
|
||||
'list' => [
|
||||
'actor' => 'Account',
|
||||
'domain' => 'Domain name',
|
||||
'unblock' => 'Unblock',
|
||||
'actor' => 'Λογαριασμός',
|
||||
'domain' => 'Όνομα τομέα',
|
||||
'unblock' => 'Ξεμπλοκάρισμα',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,6 +9,6 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'no_podcast' => 'No podcast found',
|
||||
'all_podcasts' => 'Όλα τα podcasts',
|
||||
'no_podcast' => 'Δεν βρέθηκαν podcast',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,53 +9,53 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'manual_config' => 'Manual configuration',
|
||||
'manual_config' => 'Χειροκίνητη ρύθμιση',
|
||||
'manual_config_subtitle' =>
|
||||
'Create a `.env` file with your settings and refresh the page to continue installation.',
|
||||
'Δημιουργήστε ένα αρχείο `.env` με τις ρυθμίσεις σας και ανανεώστε τη σελίδα για να συνεχίσετε την εγκατάσταση.',
|
||||
'form' => [
|
||||
'instance_config' => 'Instance configuration',
|
||||
'hostname' => 'Hostname',
|
||||
'media_base_url' => 'Media base URL',
|
||||
'instance_config' => 'Ρύθμιση παραμέτρων εμφάνισης',
|
||||
'hostname' => 'Όνομα κεντρικού υπολογιστή',
|
||||
'media_base_url' => 'Διεύθυνση URL πολυμέσων',
|
||||
'media_base_url_hint' =>
|
||||
'If you use a CDN and/or an external analytics service, you may set them here.',
|
||||
'admin_gateway' => 'Admin gateway',
|
||||
'Εάν χρησιμοποιείτε μια υπηρεσία CDN και/ ή μια εξωτερική υπηρεσία ανάλυσης, μπορείτε να την ρυθμίσετε εδώ.',
|
||||
'admin_gateway' => 'Πύλη διαχειριστή',
|
||||
'admin_gateway_hint' =>
|
||||
'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.',
|
||||
'auth_gateway' => 'Auth gateway',
|
||||
'Η διαδρομή πρόσβασης στην περιοχή διαχειριστή (π.χ. https://example.com/cp-admin). Έχει οριστεί από προεπιλογή ως cp-admin, σας συνιστούμε να την αλλάξετε για λόγους ασφαλείας.',
|
||||
'auth_gateway' => 'Πύλη ταυτοποίησης',
|
||||
'auth_gateway_hint' =>
|
||||
'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.',
|
||||
'database_config' => 'Database configuration',
|
||||
'Η διαδρομή πρόσβασης στην περιοχή διαχειριστή (π.χ. https://example.com/cp-auth). Έχει οριστεί από προεπιλογή ως cp-admin, σας συνιστούμε να την αλλάξετε για λόγους ασφαλείας.',
|
||||
'database_config' => 'Ρυθμίσεις βάσης δεδομένων',
|
||||
'database_config_hint' =>
|
||||
'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
|
||||
'db_hostname' => 'Database hostname',
|
||||
'db_name' => 'Database name',
|
||||
'db_username' => 'Database username',
|
||||
'db_password' => 'Database password',
|
||||
'db_prefix' => 'Database prefix',
|
||||
'Το Castopod πρέπει να συνδεθεί στη βάση δεδομένων MySQL (ή MariaDB). Αν δεν έχετε αυτές τις απαιτούμενες πληροφορίες, παρακαλούμε επικοινωνήστε με το διαχειριστή του διακομιστή σας.',
|
||||
'db_hostname' => 'Όνομα κεντρικού υπολογιστή βάσης δεδομένων',
|
||||
'db_name' => 'Όνομα βάσης δεδομένων',
|
||||
'db_username' => 'Όνομα Χρήστη Βάσης Δεδομένων',
|
||||
'db_password' => 'Κωδικός πρόσβασης βάσης δεδομένων',
|
||||
'db_prefix' => 'Πρόθεμα βάσης δεδομένων',
|
||||
'db_prefix_hint' =>
|
||||
"The prefix of the Castopod table names, leave as is if you don't know what it means.",
|
||||
'cache_config' => 'Cache configuration',
|
||||
"Το πρόθεμα των ονομασιών πινάκων Castopod αφήστε σαν να μην ξέρετε τι σημαίνει.",
|
||||
'cache_config' => 'Διαμόρφωση cache',
|
||||
'cache_config_hint' =>
|
||||
'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
|
||||
'cache_handler' => 'Cache handler',
|
||||
'Επιλέξτε τον προτιμώμενο χειριστή προσωρινής μνήμης. Αφήστε την προεπιλεγμένη τιμή αν δεν έχετε ιδέα τι σημαίνει.',
|
||||
'cache_handler' => 'Ρυθμιστής cache',
|
||||
'cacheHandlerOptions' => [
|
||||
'file' => 'File',
|
||||
'file' => 'Αρχείο',
|
||||
'redis' => 'Redis',
|
||||
'predis' => 'Predis',
|
||||
],
|
||||
'next' => 'Next',
|
||||
'submit' => 'Finish install',
|
||||
'create_superadmin' => 'Create your superadmin account',
|
||||
'next' => 'Επόμενο',
|
||||
'submit' => 'Ολοκλήρωση εγκατάστασης',
|
||||
'create_superadmin' => 'Δημιουργήστε το λογαριασμό υπερδιαχειριστή',
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'username' => 'Όνομα Χρήστη',
|
||||
'password' => 'Κωδικόs πρόσβασης',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuperAdminSuccess' =>
|
||||
'Your superadmin account has been created successfully. Login to start podcasting!',
|
||||
'Ο λογαριασμός υπερδιαχειριστή έχει δημιουργηθεί με επιτυχία. Συνδεθείτε για να ξεκινήσετε το podcasting!',
|
||||
'databaseConnectError' =>
|
||||
'Castopod could not connect to your database. Edit your database configuration and try again.',
|
||||
'Το Castopod δεν μπόρεσε να συνδεθεί στη βάση δεδομένων σας. Επεξεργαστείτε τη διαμόρφωση της βάσης δεδομένων σας και προσπαθήστε ξανά.',
|
||||
'writeError' =>
|
||||
"Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.",
|
||||
"Δεν ήταν δυνατή η δημιουργία/εγγραφή του αρχείου `.env`. Πρέπει να το δημιουργήσετε χειροκίνητα ακολουθώντας το πρότυπο αρχείου `.env.example` που περιγράφεται στο Castopod.",
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'info' => 'My account info',
|
||||
'changePassword' => 'Change my password',
|
||||
'info' => 'Πληροφορίες Λογαριασμού',
|
||||
'changePassword' => 'Αλλαγή κωδικού πρόσβασης',
|
||||
'messages' => [
|
||||
'wrongPasswordError' => "You've entered the wrong password, try again.",
|
||||
'passwordChangeSuccess' => 'Password has been successfully changed!',
|
||||
'wrongPasswordError' => "Έχετε εισάγει λάθος κωδικό πρόσβασης, προσπαθήστε ξανά.",
|
||||
'passwordChangeSuccess' => 'Ο κωδικός πρόσβασής σας άλλαξε με επιτυχία!',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,33 +9,33 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'toggle_sidebar' => 'Toggle sidebar',
|
||||
'go_to_website' => 'Go to website',
|
||||
'go_to_admin' => 'Go to admin',
|
||||
'dashboard' => 'Dashboard',
|
||||
'admin' => 'Home',
|
||||
'toggle_sidebar' => 'Εναλλαγή πλαϊνής μπάρας',
|
||||
'go_to_website' => 'Μεταβείτε στον ιστότοπο',
|
||||
'go_to_admin' => 'Μεταβείτε στον πίνακα διαχείρισης',
|
||||
'dashboard' => 'Πίνακας εργαλείων',
|
||||
'admin' => 'Αρχική σελίδα',
|
||||
'podcasts' => 'Podcasts',
|
||||
'podcast-list' => 'All podcasts',
|
||||
'podcast-create' => 'New podcast',
|
||||
'podcast-import' => 'Import a podcast',
|
||||
'persons' => 'Persons',
|
||||
'person-list' => 'All persons',
|
||||
'person-create' => 'New person',
|
||||
'podcast-list' => 'Όλα τα podcasts',
|
||||
'podcast-create' => 'Νέο podcast',
|
||||
'podcast-import' => 'Εισαγωγή ενός podcast',
|
||||
'persons' => 'Πρόσωπα',
|
||||
'person-list' => 'Όλα τα άτομα',
|
||||
'person-create' => 'Νέο άτομο',
|
||||
'fediverse' => 'Fediverse',
|
||||
'fediverse-blocked-actors' => 'Blocked accounts',
|
||||
'fediverse-blocked-domains' => 'Blocked domains',
|
||||
'users' => 'Users',
|
||||
'user-list' => 'All users',
|
||||
'user-create' => 'New user',
|
||||
'pages' => 'Pages',
|
||||
'page-list' => 'All pages',
|
||||
'page-create' => 'New Page',
|
||||
'settings' => 'Settings',
|
||||
'settings-general' => 'General',
|
||||
'settings-theme' => 'Theme',
|
||||
'fediverse-blocked-actors' => 'Αποκλεισμένοι λογαριασμοί',
|
||||
'fediverse-blocked-domains' => 'Αποκλεισμένοι τομείς',
|
||||
'users' => 'Χρήστες',
|
||||
'user-list' => 'Όλοι οι χρήστες',
|
||||
'user-create' => 'Νέος χρήστης',
|
||||
'pages' => 'Σελίδες',
|
||||
'page-list' => 'Όλες οι σελίδες',
|
||||
'page-create' => 'Νέα σελίδα',
|
||||
'settings' => 'Ρυθμίσεις',
|
||||
'settings-general' => 'Γενικά',
|
||||
'settings-theme' => 'Θέμα',
|
||||
'account' => [
|
||||
'my-account' => 'My account',
|
||||
'change-password' => 'Change password',
|
||||
'logout' => 'Logout',
|
||||
'my-account' => 'Ο λογαριασμός μου',
|
||||
'change-password' => 'Αλλαγή κωδικού πρόσβασης',
|
||||
'logout' => 'Αποσυνδέση',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,22 +9,22 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => 'Back to home',
|
||||
'page' => 'Page',
|
||||
'all_pages' => 'All pages',
|
||||
'create' => 'New page',
|
||||
'go_to_page' => 'Go to page',
|
||||
'edit' => 'Edit page',
|
||||
'delete' => 'Delete page',
|
||||
'back_to_home' => 'Επιστροφή στην αρχική σελίδα',
|
||||
'page' => 'Σελίδα',
|
||||
'all_pages' => 'Όλες οι σελίδες',
|
||||
'create' => 'Νέα σελίδα',
|
||||
'go_to_page' => 'Μετάβαση στη σελίδα',
|
||||
'edit' => 'Επεξεργασία σελίδας',
|
||||
'delete' => 'Διαγραφή σελίδας',
|
||||
'form' => [
|
||||
'title' => 'Title',
|
||||
'permalink' => 'Permalink',
|
||||
'content' => 'Content',
|
||||
'submit_create' => 'Create page',
|
||||
'submit_edit' => 'Save',
|
||||
'title' => 'Τίτλος',
|
||||
'permalink' => 'Μόνιμος σύνδεσμος',
|
||||
'content' => 'Περιεχόμενο',
|
||||
'submit_create' => 'Δημιουργία σελίδας',
|
||||
'submit_edit' => 'Αποθήκευση',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'The page “{pageTitle}” was created successfully!',
|
||||
'editSuccess' => 'The page was successfully updated!',
|
||||
'createSuccess' => 'Η σελίδα “{pageTitle}” δημιουργήθηκε με επιτυχία!',
|
||||
'editSuccess' => 'Η σελίδα ενημερώθηκε επιτυχώς!',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'pageNavigation' => 'Page navigation',
|
||||
'first' => 'First',
|
||||
'previous' => 'Previous',
|
||||
'next' => 'Next',
|
||||
'last' => 'Last',
|
||||
'older' => 'Older',
|
||||
'newer' => 'Newer',
|
||||
'invalidTemplate' => '{0} is not a valid Pager template.',
|
||||
'invalidPaginationGroup' => '{0} is not a valid Pagination group.',
|
||||
'pageNavigation' => 'Πλοήγηση στις σελίδες',
|
||||
'first' => 'Πρώτη',
|
||||
'previous' => 'Προηγούμενη',
|
||||
'next' => 'Επόμενη',
|
||||
'last' => 'Τελευταία',
|
||||
'older' => 'Παλιότερα',
|
||||
'newer' => 'Νεότερη',
|
||||
'invalidTemplate' => '{0} δεν είναι έγκυρο πρότυπο Pager.',
|
||||
'invalidPaginationGroup' => '{0} δεν είναι μια έγκυρη ομάδα σελιδοποίησης.',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,57 +9,57 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'persons' => 'Persons',
|
||||
'all_persons' => 'All persons',
|
||||
'no_person' => 'Nobody found!',
|
||||
'create' => 'Create a person',
|
||||
'view' => 'View person',
|
||||
'edit' => 'Edit person',
|
||||
'delete' => 'Delete person',
|
||||
'persons' => 'Πρόσωπα',
|
||||
'all_persons' => 'Όλα τα πρόσωπα',
|
||||
'no_person' => 'Δεν βρέθηκε κανείς!',
|
||||
'create' => 'Δημιουργήστε ένα πρόσωπο',
|
||||
'view' => 'Προβολή προσώπου',
|
||||
'edit' => 'Επεξεργασία προσώπου',
|
||||
'delete' => 'Διαγραφή ατόμου',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Person has been successfully created!',
|
||||
'editSuccess' => 'Person has been successfully updated!',
|
||||
'deleteSuccess' => 'Person has been removed!',
|
||||
'createSuccess' => 'Το άτομο δημιουργήθηκε με επιτυχία!',
|
||||
'editSuccess' => 'Το άτομο ενημερώθηκε με επιτυχία!',
|
||||
'deleteSuccess' => 'Το άτομο έχει αφαιρεθεί!',
|
||||
],
|
||||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar' => 'Είδωλο',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared with at least 400px wide and tall.',
|
||||
'full_name' => 'Full name',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
'unique_name_hint' => 'Used for URLs',
|
||||
'information_url' => 'Information URL',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Ονοματεπώνυμο',
|
||||
'full_name_hint' => 'Αυτό είναι το πλήρες όνομα ή το ψευδώνυμο του ατόμου.',
|
||||
'unique_name' => 'Μοναδικό όνομα',
|
||||
'unique_name_hint' => 'Χρησιμοποιείται για διευθύνσεις URL',
|
||||
'information_url' => 'Url Πληροφοριών',
|
||||
'information_url_hint' =>
|
||||
'Url to a relevant resource of information about the person, such as a homepage or third-party profile platform.',
|
||||
'submit_create' => 'Create person',
|
||||
'submit_edit' => 'Save person',
|
||||
'Url σε μια σχετική πηγή πληροφοριών σχετικά με το άτομο, όπως μια αρχική σελίδα ή πλατφόρμα προφίλ τρίτων.',
|
||||
'submit_create' => 'Δημιουργία προσώπου',
|
||||
'submit_edit' => 'Αποθήκευση ατόμου',
|
||||
],
|
||||
'podcast_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this podcast',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'title' => 'Διαχείριση προσώπων',
|
||||
'add_section_title' => 'Προσθέστε άτομα σε αυτό το podcast',
|
||||
'add_section_subtitle' => 'Μπορείτε να επιλέξετε πολλά άτομα και ρόλους.',
|
||||
'persons' => 'Πρόσωπα',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'Μπορείτε να επιλέξετε ένα ή περισσότερα άτομα με τους ίδιους ρόλους. Πρέπει πρώτα να δημιουργήσετε τα πρόσωπα.',
|
||||
'roles' => 'Ρόλοι',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
'Μπορείτε να επιλέξετε κανένα, έναν ή περισσότερους ρόλους για ένα άτομο.',
|
||||
'submit_add' => 'Προσθήκη ατόμου(ων)',
|
||||
'remove' => 'Διαγραφή',
|
||||
],
|
||||
'episode_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this episode',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'title' => 'Διαχείριση προσώπων',
|
||||
'add_section_title' => 'Προσθήκη ατόμων σε αυτό το επεισόδιο',
|
||||
'add_section_subtitle' => 'Μπορείτε να επιλέξετε πολλά άτομα και ρόλους.',
|
||||
'persons' => 'Πρόσωπα',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'Μπορείτε να επιλέξετε ένα ή περισσότερα άτομα με τους ίδιους ρόλους. Πρέπει πρώτα να δημιουργήσετε τα πρόσωπα.',
|
||||
'roles' => 'Ρόλοι',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
'Μπορείτε να επιλέξετε κανένα, έναν ή περισσότερους ρόλους για ένα άτομο.',
|
||||
'submit_add' => 'Προσθήκη ατόμου(ων)',
|
||||
'remove' => 'Διαγραφή',
|
||||
],
|
||||
'credits' => 'Credits',
|
||||
'credits' => 'Συντελεστές',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,22 +9,22 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'title' => 'Platforms',
|
||||
'home_url' => 'Go to {platformName} website',
|
||||
'submit_url' => 'Submit your podcast on {platformName}',
|
||||
'visible' => 'Display in podcast homepage?',
|
||||
'on_embed' => 'Display on embeddable player?',
|
||||
'remove' => 'Remove {platformName}',
|
||||
'submit' => 'Save',
|
||||
'title' => 'Πλατφόρμες',
|
||||
'home_url' => 'Μεταβείτε στην ιστοσελίδα {platformName}',
|
||||
'submit_url' => 'Υποβάλετε το podcast σας στην πλατφόρμα {platformName}',
|
||||
'visible' => 'Εμφάνιση στην αρχική σελίδα του podcast;',
|
||||
'on_embed' => 'Εμφάνιση σε ενσωματωμένο player;',
|
||||
'remove' => 'Κατάργηση {platformName}',
|
||||
'submit' => 'Αποθήκευση',
|
||||
'messages' => [
|
||||
'updateSuccess' => 'Platform links have been successfully updated!',
|
||||
'removeLinkSuccess' => 'The platform link has been removed.',
|
||||
'updateSuccess' => 'Οι σύνδεσμοι της πλατφόρμας ενημερώθηκαν επιτυχώς!',
|
||||
'removeLinkSuccess' => 'Ο σύνδεσμος πλατφόρμας έχει αφαιρεθεί.',
|
||||
'removeLinkError' =>
|
||||
'The platform link could not be removed. Try again.',
|
||||
'Δεν ήταν δυνατή η αφαίρεση του συνδέσμου της πλατφόρμας. Δοκιμάστε ξανά.',
|
||||
],
|
||||
'description' => [
|
||||
'podcasting' => 'The podcast ID on this platform',
|
||||
'social' => 'The podcast account ID on this platform',
|
||||
'funding' => 'Call to action message',
|
||||
'podcasting' => 'Το αναγνωριστικό podcast σε αυτή την πλατφόρμα',
|
||||
'social' => 'Το αναγνωριστικό λογαριασμού podcast σε αυτήν την πλατφόρμα',
|
||||
'funding' => 'Κλήση σε μήνυμα δράσης',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -9,31 +9,51 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'no_podcast' => 'No podcast found!',
|
||||
'create' => 'Create podcast',
|
||||
'import' => 'Import podcast',
|
||||
'new_episode' => 'New Episode',
|
||||
'view' => 'View podcast',
|
||||
'edit' => 'Edit podcast',
|
||||
'delete' => 'Delete podcast',
|
||||
'see_episodes' => 'See episodes',
|
||||
'see_contributors' => 'See contributors',
|
||||
'go_to_page' => 'Go to page',
|
||||
'latest_episodes' => 'Latest episodes',
|
||||
'see_all_episodes' => 'See all episodes',
|
||||
'all_podcasts' => 'Όλα τα podcasts',
|
||||
'no_podcast' => 'Δεν βρέθηκαν podcast!',
|
||||
'create' => 'Δημιουργία podcast',
|
||||
'import' => 'Εισαγωγή ενός podcast',
|
||||
'new_episode' => 'Νέο Επεισόδιο',
|
||||
'view' => 'Προβολή podcast',
|
||||
'edit' => 'Επεξεργασία podcast',
|
||||
'delete' => 'Διαγραφή podcast',
|
||||
'see_episodes' => 'Δείτε επεισόδια',
|
||||
'see_contributors' => 'Βλέπε συντελεστές',
|
||||
'go_to_page' => 'Μετάβαση στη σελίδα',
|
||||
'latest_episodes' => 'Τελευταία επεισόδια',
|
||||
'see_all_episodes' => 'Δείτε όλα τα επεισόδια',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Podcast has been successfully created!',
|
||||
'editSuccess' => 'Podcast has been successfully updated!',
|
||||
'importSuccess' => 'Podcast has been successfully imported!',
|
||||
'createSuccess' => 'Το επεισόδιο δημιουργήθηκε με επιτυχία!',
|
||||
'editSuccess' => 'Το Podcast ενημερώθηκε με επιτυχία!',
|
||||
'importSuccess' => 'Το Podcast εισήχθη με επιτυχία!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'identity_section_title' => 'Αναγνωριστικό Podcast',
|
||||
'identity_section_subtitle' => 'Αυτά τα πεδία σας επιτρέπουν να ξεχωρίσει το podcast σας.',
|
||||
'cover' => 'Podcast cover',
|
||||
'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast banner',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio with at least 1500px wide.',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Delete podcast banner',
|
||||
'title' => 'Title',
|
||||
'handle' => 'Handle',
|
||||
|
|
@ -90,6 +110,9 @@ return [
|
|||
'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.',
|
||||
'new_feed_url' => 'New feed URL',
|
||||
'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnership',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link URL',
|
||||
|
|
@ -219,6 +242,12 @@ return [
|
|||
'film_reviews' => 'Film Reviews',
|
||||
'tv_reviews' => 'TV Reviews',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'By {publisher}',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'warning' =>
|
||||
'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.',
|
||||
'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.',
|
||||
'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.',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ return [
|
|||
'episodes' => 'Episodes',
|
||||
'episode-list' => 'All episodes',
|
||||
'episode-create' => 'New episode',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Analytics',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
'site_icon' => 'Site icon',
|
||||
'site_icon_delete' => 'Delete site icon',
|
||||
'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.',
|
||||
'site_icon_helper' => 'Icon must be squared with at least 512px wide and tall.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Site name',
|
||||
'site_description' => 'Site description',
|
||||
'submit' => 'Save',
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'editar publicación',
|
||||
'unpublish' => 'anular publicación',
|
||||
'delete' => 'borrar',
|
||||
'deleted' => 'eliminado',
|
||||
'delete-permanently' => 'eliminar permanentemente',
|
||||
'fediverse' => 'fediverso',
|
||||
'block-lists' => 'listas de bloqueo',
|
||||
'users' => 'usuarios',
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ return [
|
|||
'not_published' => 'No publicado',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Episodio',
|
||||
'visibility' => 'Visibilidad',
|
||||
'comments' => 'Comentarios',
|
||||
|
|
@ -47,6 +56,24 @@ return [
|
|||
'createSuccess' => '¡El episodio ha sido creado correctamente!',
|
||||
'editSuccess' => '¡El episodio ha sido actualizado correctamente!',
|
||||
'publishCancelSuccess' => '¡La publicación del episodio ha sido cancelada correctamente!',
|
||||
'unpublishBeforeDeleteTip' => 'Debe anular la publicación del episodio antes de eliminarlo.',
|
||||
'deletePublishedEpisodeError' => 'Por favor, anule la publicación del episodio antes de eliminarlo.',
|
||||
'deleteSuccess' => '¡Episodio eliminado con éxito!',
|
||||
'deleteError' => 'Error al eliminar episodio {type, select,
|
||||
transcript {transcripción}
|
||||
chapters {capítulos}
|
||||
image {portada}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'Ya existe un episodio con el slug elegido.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -57,7 +84,7 @@ return [
|
|||
'cover' => 'Portada del episodio',
|
||||
'cover_hint' =>
|
||||
'Si no establece una portada, la portada del podcast se utilizará en su lugar.',
|
||||
'cover_size_hint' => 'La portada debe ser cuadrada con al menos 1400px de ancho y alto.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Título',
|
||||
'title_hint' =>
|
||||
'Debe contener un nombre de episodio claro y conciso. No especifique los números de episodio o temporada aquí.',
|
||||
|
|
@ -89,7 +116,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. Ver el {podcastNamespaceLink} para más información.',
|
||||
'Estos archivos pueden ser utilizados por otras plataformas para proporcionar una mejor experiencia a su audiencia. Vea {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',
|
||||
|
|
@ -147,7 +174,7 @@ return [
|
|||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Al eliminar el episodio se borrarán todos los mensajes asociados con él y se eliminarán del feed RSS del podcast.",
|
||||
"Eliminar el episodio eliminará todos los archivos multimedia, comentarios, video clips y sonidos asociados a él.",
|
||||
'understand' => 'Entiendo, quiero eliminar el episodio',
|
||||
'submit' => 'Borrar',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ return [
|
|||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'El avatar debe ser cuadrado con al menos 400px de ancho y alto.',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Nombre completo',
|
||||
'full_name_hint' => 'Este es el nombre completo o el alias de la persona.',
|
||||
'unique_name' => 'Nombre único',
|
||||
|
|
|
|||
|
|
@ -26,14 +26,34 @@ return [
|
|||
'createSuccess' => 'El Podcast ha sido creado con éxito!',
|
||||
'editSuccess' => 'El Podcast se ha actualizado correctamente!',
|
||||
'importSuccess' => 'El Podcast se ha importado correctamente!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Identidad de Podcast',
|
||||
'identity_section_subtitle' => 'Estos campos le permiten recibir un aviso.',
|
||||
'cover' => 'Portada de Podcast',
|
||||
'cover_size_hint' => 'La portada debe ser cuadrada con al menos 1400px de ancho y alto.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Cartel del Podcast',
|
||||
'banner_size_hint' => 'El cartel debe tener una relación de 3:1 con al menos 1500px.',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Borrar el cartel del podcast',
|
||||
'title' => 'Título',
|
||||
'handle' => 'Alias',
|
||||
|
|
@ -90,6 +110,9 @@ return [
|
|||
'custom_rss_hint' => 'Esto se inyectará dentro de la etiqueta de canal.',
|
||||
'new_feed_url' => 'Nueva URL de feed',
|
||||
'new_feed_url_hint' => 'Utilice este campo cuando se mueva a otro dominio o plataforma de alojamiento podcast. De forma predeterminada, el valor se establece en la URL actual de RSS si el podcast es importado.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Asociación',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'URL del enlace',
|
||||
|
|
@ -219,6 +242,12 @@ return [
|
|||
'film_reviews' => 'Reseñas de cine',
|
||||
'tv_reviews' => 'Reseñas de TV',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'Por {publisher}',
|
||||
'season' => 'Temporada {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodios ({episodeCount})',
|
||||
|
|
@ -227,12 +256,12 @@ return [
|
|||
'no_episode' => '¡No se encontró el episodio!',
|
||||
'follow' => 'Seguir',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# seguidor}
|
||||
other {# seguidores}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# publicación}
|
||||
other {# publicaciones}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Actividad',
|
||||
'episodes' => 'Episodios',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'warning' =>
|
||||
'Este procedimiento puede llevar mucho tiempo. Como la versión actual no muestra ningún progreso mientras se ejecuta, no verá nada actualizado hasta que termine. En caso de error de tiempo de espera, incrementa el valor `max_execution_time`.',
|
||||
'Este procedimiento puede llevar mucho tiempo.<br/>Como la versión actual no muestra ningún progreso mientras se ejecuta, no verá nada actualizado hasta que termine.<br/>En caso de error de tiempo de espera, incrementa el valor `max_execution_time`.',
|
||||
'old_podcast_section_title' => 'Podcasts para importar',
|
||||
'old_podcast_section_subtitle' =>
|
||||
'Asegúrese de que tiene los derechos para este podcast antes de importarlo. Copiar y difundir un podcast sin los derechos apropiados es piratería y puede ser procesado.',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ return [
|
|||
'episodes' => 'Episodios',
|
||||
'episode-list' => 'Todos los episodios',
|
||||
'episode-create' => 'Nuevo episodio',
|
||||
'episode-deleted' => 'Papelera de reciclaje',
|
||||
'analytics' => 'Estadísticas',
|
||||
'podcast-analytics' => 'Vista general del público',
|
||||
'podcast-analytics-webpages' => 'Visitas a páginas web',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
'site_icon' => 'Icono del sitio',
|
||||
'site_icon_delete' => 'Borrar icono del sitio',
|
||||
'site_icon_hint' => 'Los iconos del sitio son lo que ves en las pestañas del navegador, la barra de marcadores y cuando agregas un sitio web como un acceso directo en los dispositivos móviles.',
|
||||
'site_icon_helper' => 'El icono debe ser cuadrado con al menos 512px de ancho y alto.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Nombre del sitio',
|
||||
'site_description' => 'Descripción del sitio',
|
||||
'submit' => 'Guardar',
|
||||
|
|
|
|||
15
modules/Admin/Language/fa/Admin.php
Normal file
15
modules/Admin/Language/fa/Admin.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'dashboard' => 'Admin dashboard',
|
||||
'welcome_message' => 'Welcome to the admin area!',
|
||||
'choose_interact' => 'Choose how to interact',
|
||||
];
|
||||
50
modules/Admin/Language/fa/Breadcrumb.php
Normal file
50
modules/Admin/Language/fa/Breadcrumb.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'label' => 'breadcrumb',
|
||||
config('Admin')
|
||||
->gateway => 'Home',
|
||||
'podcasts' => 'podcasts',
|
||||
'episodes' => 'episodes',
|
||||
'contributors' => 'contributors',
|
||||
'pages' => 'pages',
|
||||
'settings' => 'settings',
|
||||
'theme' => 'theme',
|
||||
'add' => 'add',
|
||||
'new' => 'new',
|
||||
'edit' => 'edit',
|
||||
'persons' => 'persons',
|
||||
'publish' => 'publish',
|
||||
'publish-edit' => 'edit publication',
|
||||
'unpublish' => 'unpublish',
|
||||
'delete' => 'delete',
|
||||
'deleted' => 'deleted',
|
||||
'delete-permanently' => 'delete permanently',
|
||||
'fediverse' => 'fediverse',
|
||||
'block-lists' => 'block lists',
|
||||
'users' => 'users',
|
||||
'my-account' => 'my account',
|
||||
'change-password' => 'change password',
|
||||
'import' => 'feed import',
|
||||
'platforms' => 'platforms',
|
||||
'social' => 'social networks',
|
||||
'funding' => 'funding',
|
||||
'analytics' => 'analytics',
|
||||
'locations' => 'locations',
|
||||
'webpages' => 'web pages',
|
||||
'unique-listeners' => 'unique listeners',
|
||||
'players' => 'players',
|
||||
'listening-time' => 'listening time',
|
||||
'time-periods' => 'time periods',
|
||||
'soundbites' => 'soundbites',
|
||||
'video-clips' => 'video clips',
|
||||
'embed' => 'embeddable player',
|
||||
];
|
||||
38
modules/Admin/Language/fa/Charts.php
Normal file
38
modules/Admin/Language/fa/Charts.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'by_service_weekly' => 'Episode downloads by service (for the past week)',
|
||||
'by_player_weekly' => 'Episode downloads by player (for the past week)',
|
||||
'by_player_yearly' => 'Episode downloads by player (for the past year)',
|
||||
'by_device_weekly' => 'Episode downloads by device (for the past week)',
|
||||
'by_os_weekly' => 'Episode downloads by O.S. (for the past week)',
|
||||
'podcast_by_region' => 'Episode downloads by region (for the past week)',
|
||||
'unique_daily_listeners' => 'Daily unique listeners',
|
||||
'unique_monthly_listeners' => 'Monthly unique listeners',
|
||||
'by_browser' => 'Web pages usage by browser (for the past week)',
|
||||
'podcast_by_day' => 'Episode daily downloads',
|
||||
'podcast_by_month' => 'Episode monthly downloads',
|
||||
'episode_by_day' => 'Episode daily downloads (first 60 days)',
|
||||
'episode_by_month' => 'Episode monthly downloads',
|
||||
'episodes_by_day' =>
|
||||
'5 latest episodes downloads (during their first 60 days)',
|
||||
'by_country_weekly' => 'Episode downloads by country (for the past week)',
|
||||
'by_country_yearly' => 'Episode downloads by country (for the past year)',
|
||||
'by_domain_weekly' => 'Web pages visits by source (for the past week)',
|
||||
'by_domain_yearly' => 'Web pages visits by source (for the past year)',
|
||||
'by_entry_page' => 'Web pages visits by landing page (for the past week)',
|
||||
'podcast_bots' => 'Bots (crawlers)',
|
||||
'daily_listening_time' => 'Daily cumulative listening time',
|
||||
'monthly_listening_time' => 'Monthly cumulative listening time',
|
||||
'by_weekday' => 'By week day (for the past 60 days)',
|
||||
'by_hour' => 'By time of day (for the past 60 days)',
|
||||
'podcast_by_bandwidth' => 'Daily used bandwidth (in MB)',
|
||||
];
|
||||
49
modules/Admin/Language/fa/Common.php
Normal file
49
modules/Admin/Language/fa/Common.php
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'yes' => 'Yes',
|
||||
'no' => 'No',
|
||||
'cancel' => 'Cancel',
|
||||
'optional' => 'Optional',
|
||||
'more' => 'More',
|
||||
'no_data' => 'No data found!',
|
||||
'close' => 'Close',
|
||||
'edit' => 'Edit',
|
||||
'copy' => 'Copy',
|
||||
'copied' => 'Copied!',
|
||||
'home' => 'Home',
|
||||
'explicit' => 'Explicit',
|
||||
'powered_by' => 'Powered by {castopod}',
|
||||
'actions' => 'Actions',
|
||||
'pageInfo' => 'Page {currentPage} out of {pageCount}',
|
||||
'go_back' => 'Go back',
|
||||
'forms' => [
|
||||
'editor' => [
|
||||
'write' => 'Write',
|
||||
'preview' => 'Preview',
|
||||
'help' => 'Powered by markdown',
|
||||
],
|
||||
'multiSelect' => [
|
||||
'selectText' => 'Press to select',
|
||||
'loadingText' => 'Loading…',
|
||||
'noResultsText' => 'No results found',
|
||||
'noChoicesText' => 'No choices to choose from',
|
||||
'maxItemText' => 'Cannot add more items',
|
||||
],
|
||||
'upload_file' => 'Upload a file',
|
||||
'remote_url' => 'Remote URL',
|
||||
],
|
||||
'play_episode_button' => [
|
||||
'play' => 'Play',
|
||||
'playing' => 'Playing',
|
||||
],
|
||||
'size_limit' => 'Size limit: {0}.',
|
||||
];
|
||||
41
modules/Admin/Language/fa/Contributor.php
Normal file
41
modules/Admin/Language/fa/Contributor.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'podcast_contributors' => 'Podcast contributors',
|
||||
'view' => "{username}'s contribution to {podcastTitle}",
|
||||
'add' => 'Add contributor',
|
||||
'add_contributor' => 'Add a contributor for {0}',
|
||||
'edit_role' => 'Update role for {0}',
|
||||
'edit' => 'Edit',
|
||||
'remove' => 'Remove',
|
||||
'list' => [
|
||||
'username' => 'Username',
|
||||
'role' => 'Role',
|
||||
],
|
||||
'form' => [
|
||||
'user' => 'User',
|
||||
'user_placeholder' => 'Select a user…',
|
||||
'role' => 'Role',
|
||||
'role_placeholder' => 'Select its role…',
|
||||
'submit_add' => 'Add contributor',
|
||||
'submit_edit' => 'Update role',
|
||||
],
|
||||
'roles' => [
|
||||
'podcast_admin' => 'Podcast admin',
|
||||
],
|
||||
'messages' => [
|
||||
'removeOwnerError' => "You can't remove the podcast owner!",
|
||||
'removeSuccess' =>
|
||||
'You have successfully removed {username} from {podcastTitle}',
|
||||
'alreadyAddedError' =>
|
||||
"The contributor you're trying to add has already been added!",
|
||||
],
|
||||
];
|
||||
264
modules/Admin/Language/fa/Countries.php
Normal file
264
modules/Admin/Language/fa/Countries.php
Normal file
|
|
@ -0,0 +1,264 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* ISO 3166 country codes
|
||||
*
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'AD' => 'Andorra',
|
||||
'AE' => 'United Arab Emirates',
|
||||
'AF' => 'Afghanistan',
|
||||
'AG' => 'Antigua and Barbuda',
|
||||
'AI' => 'Anguilla',
|
||||
'AL' => 'Albania',
|
||||
'AM' => 'Armenia',
|
||||
'AO' => 'Angola',
|
||||
'AQ' => 'Antarctica',
|
||||
'AR' => 'Argentina',
|
||||
'AS' => 'American Samoa',
|
||||
'AT' => 'Austria',
|
||||
'AU' => 'Australia',
|
||||
'AW' => 'Aruba',
|
||||
'AX' => 'Åland Islands',
|
||||
'AZ' => 'Azerbaijan',
|
||||
'BA' => 'Bosnia and Herzegovina',
|
||||
'BB' => 'Barbados',
|
||||
'BD' => 'Bangladesh',
|
||||
'BE' => 'Belgium',
|
||||
'BF' => 'Burkina Faso',
|
||||
'BG' => 'Bulgaria',
|
||||
'BH' => 'Bahrain',
|
||||
'BI' => 'Burundi',
|
||||
'BJ' => 'Benin',
|
||||
'BL' => 'Saint Barthélemy',
|
||||
'BM' => 'Bermuda',
|
||||
'BN' => 'Brunei Darussalam',
|
||||
'BO' => 'Bolivia, Plurinational State of',
|
||||
'BQ' => 'Bonaire, Sint Eustatius and Saba',
|
||||
'BR' => 'Brazil',
|
||||
'BS' => 'Bahamas',
|
||||
'BT' => 'Bhutan',
|
||||
'BV' => 'Bouvet Island',
|
||||
'BW' => 'Botswana',
|
||||
'BY' => 'Belarus',
|
||||
'BZ' => 'Belize',
|
||||
'CA' => 'Canada',
|
||||
'CC' => 'Cocos (Keeling) Islands',
|
||||
'CD' => 'Congo, the Democratic Republic of the',
|
||||
'CF' => 'Central African Republic',
|
||||
'CG' => 'Congo',
|
||||
'CH' => 'Switzerland',
|
||||
'CI' => "Côte d'Ivoire",
|
||||
'CK' => 'Cook Islands',
|
||||
'CL' => 'Chile',
|
||||
'CM' => 'Cameroon',
|
||||
'CN' => 'China',
|
||||
'CO' => 'Colombia',
|
||||
'CR' => 'Costa Rica',
|
||||
'CU' => 'Cuba',
|
||||
'CV' => 'Cape Verde',
|
||||
'CW' => 'Curaçao',
|
||||
'CX' => 'Christmas Island',
|
||||
'CY' => 'Cyprus',
|
||||
'CZ' => 'Czech Republic',
|
||||
'DE' => 'Germany',
|
||||
'DJ' => 'Djibouti',
|
||||
'DK' => 'Denmark',
|
||||
'DM' => 'Dominica',
|
||||
'DO' => 'Dominican Republic',
|
||||
'DZ' => 'Algeria',
|
||||
'EC' => 'Ecuador',
|
||||
'EE' => 'Estonia',
|
||||
'EG' => 'Egypt',
|
||||
'EH' => 'Western Sahara',
|
||||
'ER' => 'Eritrea',
|
||||
'ES' => 'Spain',
|
||||
'ET' => 'Ethiopia',
|
||||
'FI' => 'Finland',
|
||||
'FJ' => 'Fiji',
|
||||
'FK' => 'Falkland Islands (Malvinas)',
|
||||
'FM' => 'Micronesia, Federated States of',
|
||||
'FO' => 'Faroe Islands',
|
||||
'FR' => 'France',
|
||||
'GA' => 'Gabon',
|
||||
'GB' => 'United Kingdom',
|
||||
'GD' => 'Grenada',
|
||||
'GE' => 'Georgia',
|
||||
'GF' => 'French Guiana',
|
||||
'GG' => 'Guernsey',
|
||||
'GH' => 'Ghana',
|
||||
'GI' => 'Gibraltar',
|
||||
'GL' => 'Greenland',
|
||||
'GM' => 'Gambia',
|
||||
'GN' => 'Guinea',
|
||||
'GP' => 'Guadeloupe',
|
||||
'GQ' => 'Equatorial Guinea',
|
||||
'GR' => 'Greece',
|
||||
'GS' => 'South Georgia and the South Sandwich Islands',
|
||||
'GT' => 'Guatemala',
|
||||
'GU' => 'Guam',
|
||||
'GW' => 'Guinea-Bissau',
|
||||
'GY' => 'Guyana',
|
||||
'HK' => 'Hong Kong',
|
||||
'HM' => 'Heard Island and McDonald Islands',
|
||||
'HN' => 'Honduras',
|
||||
'HR' => 'Croatia',
|
||||
'HT' => 'Haiti',
|
||||
'HU' => 'Hungary',
|
||||
'ID' => 'Indonesia',
|
||||
'IE' => 'Ireland',
|
||||
'IL' => 'Israel',
|
||||
'IM' => 'Isle of Man',
|
||||
'IN' => 'India',
|
||||
'IO' => 'British Indian Ocean Territory',
|
||||
'IQ' => 'Iraq',
|
||||
'IR' => 'Iran, Islamic Republic of',
|
||||
'IS' => 'Iceland',
|
||||
'IT' => 'Italy',
|
||||
'JE' => 'Jersey',
|
||||
'JM' => 'Jamaica',
|
||||
'JO' => 'Jordan',
|
||||
'JP' => 'Japan',
|
||||
'KE' => 'Kenya',
|
||||
'KG' => 'Kyrgyzstan',
|
||||
'KH' => 'Cambodia',
|
||||
'KI' => 'Kiribati',
|
||||
'KM' => 'Comoros',
|
||||
'KN' => 'Saint Kitts and Nevis',
|
||||
'KP' => "Korea, Democratic People's Republic of",
|
||||
'KR' => 'Korea, Republic of',
|
||||
'KW' => 'Kuwait',
|
||||
'KY' => 'Cayman Islands',
|
||||
'KZ' => 'Kazakhstan',
|
||||
'LA' => "Lao People's Democratic Republic",
|
||||
'LB' => 'Lebanon',
|
||||
'LC' => 'Saint Lucia',
|
||||
'LI' => 'Liechtenstein',
|
||||
'LK' => 'Sri Lanka',
|
||||
'LR' => 'Liberia',
|
||||
'LS' => 'Lesotho',
|
||||
'LT' => 'Lithuania',
|
||||
'LU' => 'Luxembourg',
|
||||
'LV' => 'Latvia',
|
||||
'LY' => 'Libya',
|
||||
'MA' => 'Morocco',
|
||||
'MC' => 'Monaco',
|
||||
'MD' => 'Moldova, Republic of',
|
||||
'ME' => 'Montenegro',
|
||||
'MF' => 'Saint Martin (French part)',
|
||||
'MG' => 'Madagascar',
|
||||
'MH' => 'Marshall Islands',
|
||||
'MK' => 'Macedonia, the Former Yugoslav Republic of',
|
||||
'ML' => 'Mali',
|
||||
'MM' => 'Myanmar',
|
||||
'MN' => 'Mongolia',
|
||||
'MO' => 'Macao',
|
||||
'MP' => 'Northern Mariana Islands',
|
||||
'MQ' => 'Martinique',
|
||||
'MR' => 'Mauritania',
|
||||
'MS' => 'Montserrat',
|
||||
'MT' => 'Malta',
|
||||
'MU' => 'Mauritius',
|
||||
'MV' => 'Maldives',
|
||||
'MW' => 'Malawi',
|
||||
'MX' => 'Mexico',
|
||||
'MY' => 'Malaysia',
|
||||
'MZ' => 'Mozambique',
|
||||
'N/A' => 'Not Applicable (local IP…)',
|
||||
'NA' => 'Namibia',
|
||||
'NC' => 'New Caledonia',
|
||||
'NE' => 'Niger',
|
||||
'NF' => 'Norfolk Island',
|
||||
'NG' => 'Nigeria',
|
||||
'NI' => 'Nicaragua',
|
||||
'NL' => 'Netherlands',
|
||||
'NO' => 'Norway',
|
||||
'NP' => 'Nepal',
|
||||
'NR' => 'Nauru',
|
||||
'NU' => 'Niue',
|
||||
'NZ' => 'New Zealand',
|
||||
'OM' => 'Oman',
|
||||
'PA' => 'Panama',
|
||||
'PE' => 'Peru',
|
||||
'PF' => 'French Polynesia',
|
||||
'PG' => 'Papua New Guinea',
|
||||
'PH' => 'Philippines',
|
||||
'PK' => 'Pakistan',
|
||||
'PL' => 'Poland',
|
||||
'PM' => 'Saint Pierre and Miquelon',
|
||||
'PN' => 'Pitcairn',
|
||||
'PR' => 'Puerto Rico',
|
||||
'PS' => 'Palestine, State of',
|
||||
'PT' => 'Portugal',
|
||||
'PW' => 'Palau',
|
||||
'PY' => 'Paraguay',
|
||||
'QA' => 'Qatar',
|
||||
'RE' => 'Réunion',
|
||||
'RO' => 'Romania',
|
||||
'RS' => 'Serbia',
|
||||
'RU' => 'Russian Federation',
|
||||
'RW' => 'Rwanda',
|
||||
'SA' => 'Saudi Arabia',
|
||||
'SB' => 'Solomon Islands',
|
||||
'SC' => 'Seychelles',
|
||||
'SD' => 'Sudan',
|
||||
'SE' => 'Sweden',
|
||||
'SG' => 'Singapore',
|
||||
'SH' => 'Saint Helena, Ascension and Tristan da Cunha',
|
||||
'SI' => 'Slovenia',
|
||||
'SJ' => 'Svalbard and Jan Mayen',
|
||||
'SK' => 'Slovakia',
|
||||
'SL' => 'Sierra Leone',
|
||||
'SM' => 'San Marino',
|
||||
'SN' => 'Senegal',
|
||||
'SO' => 'Somalia',
|
||||
'SR' => 'Suriname',
|
||||
'SS' => 'South Sudan',
|
||||
'ST' => 'Sao Tome and Principe',
|
||||
'SV' => 'El Salvador',
|
||||
'SX' => 'Sint Maarten (Dutch part)',
|
||||
'SY' => 'Syrian Arab Republic',
|
||||
'SZ' => 'Swaziland',
|
||||
'TC' => 'Turks and Caicos Islands',
|
||||
'TD' => 'Chad',
|
||||
'TF' => 'French Southern Territories',
|
||||
'TG' => 'Togo',
|
||||
'TH' => 'Thailand',
|
||||
'TJ' => 'Tajikistan',
|
||||
'TK' => 'Tokelau',
|
||||
'TL' => 'Timor-Leste',
|
||||
'TM' => 'Turkmenistan',
|
||||
'TN' => 'Tunisia',
|
||||
'TO' => 'Tonga',
|
||||
'TR' => 'Turkey',
|
||||
'TT' => 'Trinidad and Tobago',
|
||||
'TV' => 'Tuvalu',
|
||||
'TW' => 'Taiwan, Province of China',
|
||||
'TZ' => 'Tanzania, United Republic of',
|
||||
'UA' => 'Ukraine',
|
||||
'UG' => 'Uganda',
|
||||
'UM' => 'United States Minor Outlying Islands',
|
||||
'US' => 'United States',
|
||||
'UY' => 'Uruguay',
|
||||
'UZ' => 'Uzbekistan',
|
||||
'VA' => 'Holy See (Vatican City State)',
|
||||
'VC' => 'Saint Vincent and the Grenadines',
|
||||
'VE' => 'Venezuela, Bolivarian Republic of',
|
||||
'VG' => 'Virgin Islands, British',
|
||||
'VI' => 'Virgin Islands, U.S.',
|
||||
'VN' => 'Viet Nam',
|
||||
'VU' => 'Vanuatu',
|
||||
'WF' => 'Wallis and Futuna',
|
||||
'WS' => 'Samoa',
|
||||
'YE' => 'Yemen',
|
||||
'YT' => 'Mayotte',
|
||||
'ZA' => 'South Africa',
|
||||
'ZM' => 'Zambia',
|
||||
'ZW' => 'Zimbabwe',
|
||||
];
|
||||
192
modules/Admin/Language/fa/Episode.php
Normal file
192
modules/Admin/Language/fa/Episode.php
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'season_abbr' => 'S{seasonNumber}',
|
||||
'number' => 'Episode {episodeNumber}',
|
||||
'number_abbr' => 'Ep. {episodeNumber}',
|
||||
'season_episode' => 'Season {seasonNumber} episode {episodeNumber}',
|
||||
'season_episode_abbr' => 'S{seasonNumber}E{episodeNumber}',
|
||||
'number_of_comments' => '{numberOfComments, plural,
|
||||
one {# comment}
|
||||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
'edit' => 'Edit',
|
||||
'publish' => 'Publish',
|
||||
'publish_edit' => 'Edit publication',
|
||||
'unpublish' => 'Unpublish',
|
||||
'publish_error' => 'Episode is already published.',
|
||||
'publish_edit_error' => 'Episode is already published.',
|
||||
'publish_cancel_error' => 'Episode is already published.',
|
||||
'unpublish_error' => 'Episode is not published.',
|
||||
'delete' => 'Delete',
|
||||
'go_to_page' => 'Go to page',
|
||||
'create' => 'Add an episode',
|
||||
'publication_status' => [
|
||||
'published' => 'Published',
|
||||
'scheduled' => 'Scheduled',
|
||||
'not_published' => 'Not published',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Episode',
|
||||
'visibility' => 'Visibility',
|
||||
'comments' => 'Comments',
|
||||
'actions' => 'Actions',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'Episode has been successfully created!',
|
||||
'editSuccess' => 'Episode has been successfully updated!',
|
||||
'publishCancelSuccess' => 'Episode publication successfully cancelled!',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
'Your file size is too big! Max size is {0}. Increase the `memory_limit`, `upload_max_filesize` and `post_max_size` values in your php configuration file then restart your web server to upload your file.',
|
||||
'audio_file' => 'Audio file',
|
||||
'audio_file_hint' => 'Choose an .mp3 or .m4a audio file.',
|
||||
'info_section_title' => 'Episode info',
|
||||
'cover' => 'Episode cover',
|
||||
'cover_hint' =>
|
||||
'If you do not set a cover, the podcast cover will be used instead.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Title',
|
||||
'title_hint' =>
|
||||
'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.',
|
||||
'permalink' => 'Permalink',
|
||||
'season_number' => 'Season',
|
||||
'episode_number' => 'Episode',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'full' => 'Full',
|
||||
'full_hint' => 'Complete content (the episode)',
|
||||
'trailer' => 'Trailer',
|
||||
'trailer_hint' => 'Short, promotional piece of content that represents a preview of the current show',
|
||||
'bonus' => 'Bonus',
|
||||
'bonus_hint' => 'Extra content for the show (for example, behind the scenes info or interviews with the cast) or cross-promotional content for another show',
|
||||
],
|
||||
'parental_advisory' => [
|
||||
'label' => 'Parental advisory',
|
||||
'hint' => 'Does the episode contain explicit content?',
|
||||
'undefined' => 'undefined',
|
||||
'clean' => 'Clean',
|
||||
'explicit' => 'Explicit',
|
||||
],
|
||||
'show_notes_section_title' => 'Show notes',
|
||||
'show_notes_section_subtitle' =>
|
||||
'Up to 4000 characters, be clear and concise. Show notes help potential listeners in finding the episode.',
|
||||
'description' => 'Description',
|
||||
'description_footer' => 'Description footer',
|
||||
'description_footer_hint' =>
|
||||
'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. 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',
|
||||
'location_name_hint' => 'This can be a real or fictional location',
|
||||
'transcript' => 'Transcript (subtitles / closed captions)',
|
||||
'transcript_hint' => 'Only .srt are allowed.',
|
||||
'transcript_download' => 'Download transcript',
|
||||
'transcript_file' => 'Transcript file (.srt)',
|
||||
'transcript_remote_url' => 'Remote url for transcript',
|
||||
'transcript_file_delete' => 'Delete transcript file',
|
||||
'chapters' => 'Chapters',
|
||||
'chapters_hint' => 'File must be in JSON Chapters format.',
|
||||
'chapters_download' => 'Download chapters',
|
||||
'chapters_file' => 'Chapters file',
|
||||
'chapters_remote_url' => 'Remote url for chapters file',
|
||||
'chapters_file_delete' => 'Delete chapters file',
|
||||
'advanced_section_title' => 'Advanced Parameters',
|
||||
'advanced_section_subtitle' =>
|
||||
'If you need RSS tags that Castopod does not handle, set them here.',
|
||||
'custom_rss' => 'Custom RSS tags for the episode',
|
||||
'custom_rss_hint' => 'This will be injected within the ❬item❭ tag.',
|
||||
'block' => 'Episode should be hidden from all platforms',
|
||||
'block_hint' =>
|
||||
'The episode show or hide post. If you want this episode removed from the Apple directory, toggle this on.',
|
||||
'submit_create' => 'Create episode',
|
||||
'submit_edit' => 'Save episode',
|
||||
],
|
||||
'publish_form' => [
|
||||
'back_to_episode_dashboard' => 'Back to episode dashboard',
|
||||
'post' => 'Your announcement post',
|
||||
'post_hint' =>
|
||||
"Write a message to announce the publication of your episode. The message will be broadcasted to all your followers in the fediverse and be featured in your podcast's homepage.",
|
||||
'message_placeholder' => 'Write your message…',
|
||||
'publication_date' => 'Publication date',
|
||||
'publication_method' => [
|
||||
'now' => 'Now',
|
||||
'schedule' => 'Schedule',
|
||||
],
|
||||
'scheduled_publication_date' => 'Scheduled publication date',
|
||||
'scheduled_publication_date_clear' => 'Clear publication date',
|
||||
'scheduled_publication_date_hint' =>
|
||||
'You can schedule the episode release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm',
|
||||
'submit' => 'Publish',
|
||||
'submit_edit' => 'Edit publication',
|
||||
'cancel_publication' => 'Cancel publication',
|
||||
'message_warning' => 'You did not write a message for your announcement post!',
|
||||
'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your episode.',
|
||||
'message_warning_submit' => 'Publish anyways',
|
||||
],
|
||||
'unpublish_form' => [
|
||||
'disclaimer' =>
|
||||
"Unpublishing the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.",
|
||||
'understand' => 'I understand, I want to unpublish the episode',
|
||||
'submit' => 'Unpublish',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'I understand, I want to delete the episode',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'embed' => [
|
||||
'title' => 'Embeddable player',
|
||||
'label' =>
|
||||
'Pick a theme color, copy the embeddable player to clipboard, then paste it on your website.',
|
||||
'clipboard_iframe' => 'Copy embeddable player to clipboard',
|
||||
'clipboard_url' => 'Copy address to clipboard',
|
||||
'dark' => 'Dark',
|
||||
'dark-transparent' => 'Dark transparent',
|
||||
'light' => 'Light',
|
||||
'light-transparent' => 'Light transparent',
|
||||
],
|
||||
];
|
||||
23
modules/Admin/Language/fa/EpisodeNavigation.php
Normal file
23
modules/Admin/Language/fa/EpisodeNavigation.php
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'go_to_page' => 'View episode page',
|
||||
'dashboard' => 'Episode dashboard',
|
||||
'episode-view' => 'Home',
|
||||
'episode-edit' => 'Edit episode',
|
||||
'episode-persons-manage' => 'Manage persons',
|
||||
'embed-add' => 'Embeddable player',
|
||||
'clips' => 'Clips',
|
||||
'video-clips-list' => 'Video clips',
|
||||
'video-clips-create' => 'New video clip',
|
||||
'soundbites-list' => 'Soundbites',
|
||||
'soundbites-create' => 'New soundbite',
|
||||
];
|
||||
32
modules/Admin/Language/fa/Fediverse.php
Normal file
32
modules/Admin/Language/fa/Fediverse.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'messages' => [
|
||||
'actorNotFound' => 'The account could not be found!',
|
||||
'blockActorSuccess' => '{actor} has been blocked!',
|
||||
'unblockActorSuccess' => 'Actor has been unblocked!',
|
||||
'blockDomainSuccess' => '{domain} has been blocked!',
|
||||
'unblockDomainSuccess' => '{domain} has been unblocked!',
|
||||
],
|
||||
'blocked_actors' => 'Blocked accounts',
|
||||
'blocked_domains' => 'Blocked domains',
|
||||
'block_lists_form' => [
|
||||
'handle' => 'Account handle',
|
||||
'handle_hint' => 'Input @username@domain account.',
|
||||
'domain' => 'Domain name',
|
||||
'submit' => 'Block!',
|
||||
],
|
||||
'list' => [
|
||||
'actor' => 'Account',
|
||||
'domain' => 'Domain name',
|
||||
'unblock' => 'Unblock',
|
||||
],
|
||||
];
|
||||
14
modules/Admin/Language/fa/Home.php
Normal file
14
modules/Admin/Language/fa/Home.php
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'no_podcast' => 'No podcast found',
|
||||
];
|
||||
61
modules/Admin/Language/fa/Install.php
Normal file
61
modules/Admin/Language/fa/Install.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'manual_config' => 'Manual configuration',
|
||||
'manual_config_subtitle' =>
|
||||
'Create a `.env` file with your settings and refresh the page to continue installation.',
|
||||
'form' => [
|
||||
'instance_config' => 'Instance configuration',
|
||||
'hostname' => 'Hostname',
|
||||
'media_base_url' => 'Media base URL',
|
||||
'media_base_url_hint' =>
|
||||
'If you use a CDN and/or an external analytics service, you may set them here.',
|
||||
'admin_gateway' => 'Admin gateway',
|
||||
'admin_gateway_hint' =>
|
||||
'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.',
|
||||
'auth_gateway' => 'Auth gateway',
|
||||
'auth_gateway_hint' =>
|
||||
'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.',
|
||||
'database_config' => 'Database configuration',
|
||||
'database_config_hint' =>
|
||||
'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
|
||||
'db_hostname' => 'Database hostname',
|
||||
'db_name' => 'Database name',
|
||||
'db_username' => 'Database username',
|
||||
'db_password' => 'Database password',
|
||||
'db_prefix' => 'Database prefix',
|
||||
'db_prefix_hint' =>
|
||||
"The prefix of the Castopod table names, leave as is if you don't know what it means.",
|
||||
'cache_config' => 'Cache configuration',
|
||||
'cache_config_hint' =>
|
||||
'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
|
||||
'cache_handler' => 'Cache handler',
|
||||
'cacheHandlerOptions' => [
|
||||
'file' => 'File',
|
||||
'redis' => 'Redis',
|
||||
'predis' => 'Predis',
|
||||
],
|
||||
'next' => 'Next',
|
||||
'submit' => 'Finish install',
|
||||
'create_superadmin' => 'Create your superadmin account',
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuperAdminSuccess' =>
|
||||
'Your superadmin account has been created successfully. Login to start podcasting!',
|
||||
'databaseConnectError' =>
|
||||
'Castopod could not connect to your database. Edit your database configuration and try again.',
|
||||
'writeError' =>
|
||||
"Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.",
|
||||
],
|
||||
];
|
||||
18
modules/Admin/Language/fa/MyAccount.php
Normal file
18
modules/Admin/Language/fa/MyAccount.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'info' => 'My account info',
|
||||
'changePassword' => 'Change my password',
|
||||
'messages' => [
|
||||
'wrongPasswordError' => "You've entered the wrong password, try again.",
|
||||
'passwordChangeSuccess' => 'Password has been successfully changed!',
|
||||
],
|
||||
];
|
||||
41
modules/Admin/Language/fa/Navigation.php
Normal file
41
modules/Admin/Language/fa/Navigation.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'toggle_sidebar' => 'Toggle sidebar',
|
||||
'go_to_website' => 'Go to website',
|
||||
'go_to_admin' => 'Go to admin',
|
||||
'dashboard' => 'Dashboard',
|
||||
'admin' => 'Home',
|
||||
'podcasts' => 'Podcasts',
|
||||
'podcast-list' => 'All podcasts',
|
||||
'podcast-create' => 'New podcast',
|
||||
'podcast-import' => 'Import a podcast',
|
||||
'persons' => 'Persons',
|
||||
'person-list' => 'All persons',
|
||||
'person-create' => 'New person',
|
||||
'fediverse' => 'Fediverse',
|
||||
'fediverse-blocked-actors' => 'Blocked accounts',
|
||||
'fediverse-blocked-domains' => 'Blocked domains',
|
||||
'users' => 'Users',
|
||||
'user-list' => 'All users',
|
||||
'user-create' => 'New user',
|
||||
'pages' => 'Pages',
|
||||
'page-list' => 'All pages',
|
||||
'page-create' => 'New Page',
|
||||
'settings' => 'Settings',
|
||||
'settings-general' => 'General',
|
||||
'settings-theme' => 'Theme',
|
||||
'account' => [
|
||||
'my-account' => 'My account',
|
||||
'change-password' => 'Change password',
|
||||
'logout' => 'Logout',
|
||||
],
|
||||
];
|
||||
30
modules/Admin/Language/fa/Page.php
Normal file
30
modules/Admin/Language/fa/Page.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => 'Back to home',
|
||||
'page' => 'Page',
|
||||
'all_pages' => 'All pages',
|
||||
'create' => 'New page',
|
||||
'go_to_page' => 'Go to page',
|
||||
'edit' => 'Edit page',
|
||||
'delete' => 'Delete page',
|
||||
'form' => [
|
||||
'title' => 'Title',
|
||||
'permalink' => 'Permalink',
|
||||
'content' => 'Content',
|
||||
'submit_create' => 'Create page',
|
||||
'submit_edit' => 'Save',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'The page “{pageTitle}” was created successfully!',
|
||||
'editSuccess' => 'The page was successfully updated!',
|
||||
],
|
||||
];
|
||||
21
modules/Admin/Language/fa/Pager.php
Normal file
21
modules/Admin/Language/fa/Pager.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'pageNavigation' => 'Page navigation',
|
||||
'first' => 'First',
|
||||
'previous' => 'Previous',
|
||||
'next' => 'Next',
|
||||
'last' => 'Last',
|
||||
'older' => 'Older',
|
||||
'newer' => 'Newer',
|
||||
'invalidTemplate' => '{0} is not a valid Pager template.',
|
||||
'invalidPaginationGroup' => '{0} is not a valid Pagination group.',
|
||||
];
|
||||
65
modules/Admin/Language/fa/Person.php
Normal file
65
modules/Admin/Language/fa/Person.php
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'persons' => 'Persons',
|
||||
'all_persons' => 'All persons',
|
||||
'no_person' => 'Nobody found!',
|
||||
'create' => 'Create a person',
|
||||
'view' => 'View person',
|
||||
'edit' => 'Edit person',
|
||||
'delete' => 'Delete person',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Person has been successfully created!',
|
||||
'editSuccess' => 'Person has been successfully updated!',
|
||||
'deleteSuccess' => 'Person has been removed!',
|
||||
],
|
||||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Full name',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
'unique_name_hint' => 'Used for URLs',
|
||||
'information_url' => 'Information URL',
|
||||
'information_url_hint' =>
|
||||
'Url to a relevant resource of information about the person, such as a homepage or third-party profile platform.',
|
||||
'submit_create' => 'Create person',
|
||||
'submit_edit' => 'Save person',
|
||||
],
|
||||
'podcast_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this podcast',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
],
|
||||
'episode_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this episode',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
],
|
||||
'credits' => 'Credits',
|
||||
];
|
||||
30
modules/Admin/Language/fa/Platforms.php
Normal file
30
modules/Admin/Language/fa/Platforms.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'Platforms',
|
||||
'home_url' => 'Go to {platformName} website',
|
||||
'submit_url' => 'Submit your podcast on {platformName}',
|
||||
'visible' => 'Display in podcast homepage?',
|
||||
'on_embed' => 'Display on embeddable player?',
|
||||
'remove' => 'Remove {platformName}',
|
||||
'submit' => 'Save',
|
||||
'messages' => [
|
||||
'updateSuccess' => 'Platform links have been successfully updated!',
|
||||
'removeLinkSuccess' => 'The platform link has been removed.',
|
||||
'removeLinkError' =>
|
||||
'The platform link could not be removed. Try again.',
|
||||
],
|
||||
'description' => [
|
||||
'podcasting' => 'The podcast ID on this platform',
|
||||
'social' => 'The podcast account ID on this platform',
|
||||
'funding' => 'Call to action message',
|
||||
],
|
||||
];
|
||||
272
modules/Admin/Language/fa/Podcast.php
Normal file
272
modules/Admin/Language/fa/Podcast.php
Normal file
|
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'no_podcast' => 'No podcast found!',
|
||||
'create' => 'Create podcast',
|
||||
'import' => 'Import podcast',
|
||||
'new_episode' => 'New Episode',
|
||||
'view' => 'View podcast',
|
||||
'edit' => 'Edit podcast',
|
||||
'delete' => 'Delete podcast',
|
||||
'see_episodes' => 'See episodes',
|
||||
'see_contributors' => 'See contributors',
|
||||
'go_to_page' => 'Go to page',
|
||||
'latest_episodes' => 'Latest episodes',
|
||||
'see_all_episodes' => 'See all episodes',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Podcast has been successfully created!',
|
||||
'editSuccess' => 'Podcast has been successfully updated!',
|
||||
'importSuccess' => 'Podcast has been successfully imported!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'cover' => 'Podcast cover',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast banner',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Delete podcast banner',
|
||||
'title' => 'Title',
|
||||
'handle' => 'Handle',
|
||||
'handle_hint' =>
|
||||
'Used to identify the podcast. Uppercase, lowercase, numbers and underscores are accepted.',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'episodic' => 'Episodic',
|
||||
'episodic_hint' => 'If episodes are intended to be consumed without any specific order. Newest episodes will be presented first.',
|
||||
'serial' => 'Serial',
|
||||
'serial_hint' => 'If episodes are intended to be consumed in sequential order. The oldest episodes will be presented first.',
|
||||
],
|
||||
'description' => 'Description',
|
||||
'classification_section_title' => 'Classification',
|
||||
'classification_section_subtitle' =>
|
||||
'These fields will impact your audience and competition.',
|
||||
'language' => 'Language',
|
||||
'category' => 'Category',
|
||||
'category_placeholder' => 'Select a category…',
|
||||
'other_categories' => 'Other categories',
|
||||
'parental_advisory' => [
|
||||
'label' => 'Parental advisory',
|
||||
'hint' => 'Does it contain explicit content?',
|
||||
'undefined' => 'undefined',
|
||||
'clean' => 'Clean',
|
||||
'explicit' => 'Explicit',
|
||||
],
|
||||
'author_section_title' => 'Author',
|
||||
'author_section_subtitle' => 'Who is managing the podcast?',
|
||||
'owner_name' => 'Owner name',
|
||||
'owner_name_hint' =>
|
||||
'For administrative use only. Visible in the public RSS feed.',
|
||||
'owner_email' => 'Owner email',
|
||||
'owner_email_hint' =>
|
||||
'Will be used by most platforms to verify the podcast ownership. Visible in the public RSS feed.',
|
||||
'publisher' => 'Publisher',
|
||||
'publisher_hint' =>
|
||||
'The group responsible for creating the show. Often refers to the parent company or network of a podcast. This field is sometimes labeled as ’Author’.',
|
||||
'copyright' => 'Copyright',
|
||||
'location_section_title' => 'Location',
|
||||
'location_section_subtitle' => 'What place is this podcast about?',
|
||||
'location_name' => 'Location name or address',
|
||||
'location_name_hint' => 'This can be a real place or fictional',
|
||||
'monetization_section_title' => 'Monetization',
|
||||
'monetization_section_subtitle' =>
|
||||
'Earn money thanks to your audience.',
|
||||
'payment_pointer' => 'Payment Pointer for Web Monetization',
|
||||
'payment_pointer_hint' =>
|
||||
'This is your where you will receive money thanks to Web Monetization',
|
||||
'advanced_section_title' => 'Advanced Parameters',
|
||||
'advanced_section_subtitle' =>
|
||||
'If you need RSS tags that Castopod does not handle, set them here.',
|
||||
'custom_rss' => 'Custom RSS tags for the podcast',
|
||||
'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.',
|
||||
'new_feed_url' => 'New feed URL',
|
||||
'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnership',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link URL',
|
||||
'partner_image_url' => 'Image URL',
|
||||
'partner_id_hint' => 'Your own partner ID',
|
||||
'partner_link_url_hint' => 'The generic partner link address',
|
||||
'partner_image_url_hint' => 'The generic partner image address',
|
||||
'status_section_title' => 'Status',
|
||||
'block' => 'Podcast should be hidden from all platforms',
|
||||
'complete' => 'Podcast will not be having new episodes',
|
||||
'lock' => 'Prevent podcast from being copied',
|
||||
'lock_hint' =>
|
||||
'The purpose is to tell other podcast platforms whether they are allowed to import this feed. A value of yes means that any attempt to import this feed into a new platform should be rejected.',
|
||||
'submit_create' => 'Create podcast',
|
||||
'submit_edit' => 'Save podcast',
|
||||
],
|
||||
'category_options' => [
|
||||
'uncategorized' => 'uncategorized',
|
||||
'arts' => 'Arts',
|
||||
'business' => 'Business',
|
||||
'comedy' => 'Comedy',
|
||||
'education' => 'Education',
|
||||
'fiction' => 'Fiction',
|
||||
'government' => 'Government',
|
||||
'health_and_fitness' => 'Health & Fitness',
|
||||
'history' => 'History',
|
||||
'kids_and_family' => 'Kids & Family',
|
||||
'leisure' => 'Leisure',
|
||||
'music' => 'Music',
|
||||
'news' => 'News',
|
||||
'religion_and_spirituality' => 'Religion & Spirituality',
|
||||
'science' => 'Science',
|
||||
'society_and_culture' => 'Society & Culture',
|
||||
'sports' => 'Sports',
|
||||
'technology' => 'Technology',
|
||||
'true_crime' => 'True Crime',
|
||||
'tv_and_film' => 'TV & Film',
|
||||
'books' => 'Books',
|
||||
'design' => 'Design',
|
||||
'fashion_and_beauty' => 'Fashion & Beauty',
|
||||
'food' => 'Food',
|
||||
'performing_arts' => 'Performing Arts',
|
||||
'visual_arts' => 'Visual Arts',
|
||||
'careers' => 'Careers',
|
||||
'entrepreneurship' => 'Entrepreneurship',
|
||||
'investing' => 'Investing',
|
||||
'management' => 'Management',
|
||||
'marketing' => 'Marketing',
|
||||
'non_profit' => 'Non-Profit',
|
||||
'comedy_interviews' => 'Comedy Interviews',
|
||||
'improv' => 'Improv',
|
||||
'stand_up' => 'Stand-Up',
|
||||
'courses' => 'Courses',
|
||||
'how_to' => 'How To',
|
||||
'language_learning' => 'Language Learning',
|
||||
'self_improvement' => 'Self-Improvement',
|
||||
'comedy_fiction' => 'Comedy Fiction',
|
||||
'drama' => 'Drama',
|
||||
'science_fiction' => 'Science Fiction',
|
||||
'alternative_health' => 'Alternative Health',
|
||||
'fitness' => 'Fitness',
|
||||
'medicine' => 'Medicine',
|
||||
'mental_health' => 'Mental Health',
|
||||
'nutrition' => 'Nutrition',
|
||||
'sexuality' => 'Sexuality',
|
||||
'education_for_kids' => 'Education for Kids',
|
||||
'parenting' => 'Parenting',
|
||||
'pets_and_animals' => 'Pets & Animals',
|
||||
'stories_for_kids' => 'Stories for Kids',
|
||||
'animation_and_manga' => 'Animation & Manga',
|
||||
'automotive' => 'Automotive',
|
||||
'aviation' => 'Aviation',
|
||||
'crafts' => 'Crafts',
|
||||
'games' => 'Games',
|
||||
'hobbies' => 'Hobbies',
|
||||
'home_and_garden' => 'Home & Garden',
|
||||
'video_games' => 'Video Games',
|
||||
'music_commentary' => 'Music Commentary',
|
||||
'music_history' => 'Music History',
|
||||
'music_interviews' => 'Music Interviews',
|
||||
'business_news' => 'Business News',
|
||||
'daily_news' => 'Daily News',
|
||||
'entertainment_news' => 'Entertainment News',
|
||||
'news_commentary' => 'News Commentary',
|
||||
'politics' => 'Politics',
|
||||
'sports_news' => 'Sports News',
|
||||
'tech_news' => 'Tech News',
|
||||
'buddhism' => 'Buddhism',
|
||||
'christianity' => 'Christianity',
|
||||
'hinduism' => 'Hinduism',
|
||||
'islam' => 'Islam',
|
||||
'judaism' => 'Judaism',
|
||||
'religion' => 'Religion',
|
||||
'spirituality' => 'Spirituality',
|
||||
'astronomy' => 'Astronomy',
|
||||
'chemistry' => 'Chemistry',
|
||||
'earth_sciences' => 'Earth Sciences',
|
||||
'life_sciences' => 'Life Sciences',
|
||||
'mathematics' => 'Mathematics',
|
||||
'natural_sciences' => 'Natural Sciences',
|
||||
'nature' => 'Nature',
|
||||
'physics' => 'Physics',
|
||||
'social_sciences' => 'Social Sciences',
|
||||
'documentary' => 'Documentary',
|
||||
'personal_journals' => 'Personal Journals',
|
||||
'philosophy' => 'Philosophy',
|
||||
'places_and_travel' => 'Places & Travel',
|
||||
'relationships' => 'Relationships',
|
||||
'baseball' => 'Baseball',
|
||||
'basketball' => 'Basketball',
|
||||
'cricket' => 'Cricket',
|
||||
'fantasy_sports' => 'Fantasy Sports',
|
||||
'football' => 'Football',
|
||||
'golf' => 'Golf',
|
||||
'hockey' => 'Hockey',
|
||||
'rugby' => 'Rugby',
|
||||
'running' => 'Running',
|
||||
'soccer' => 'Soccer',
|
||||
'swimming' => 'Swimming',
|
||||
'tennis' => 'Tennis',
|
||||
'volleyball' => 'Volleyball',
|
||||
'wilderness' => 'Wilderness',
|
||||
'wrestling' => 'Wrestling',
|
||||
'after_shows' => 'After Shows',
|
||||
'film_history' => 'Film History',
|
||||
'film_interviews' => 'Film Interviews',
|
||||
'film_reviews' => 'Film Reviews',
|
||||
'tv_reviews' => 'TV Reviews',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'By {publisher}',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
'list_of_episodes_season' =>
|
||||
'Season {seasonNumber} episodes ({episodeCount})',
|
||||
'no_episode' => 'No episode found!',
|
||||
'follow' => 'Follow',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activity',
|
||||
'episodes' => 'Episodes',
|
||||
'sponsor' => 'Sponsor',
|
||||
'funding_links' => 'Funding links for {podcastTitle}',
|
||||
'find_on' => 'Find {podcastTitle} on',
|
||||
'listen_on' => 'Listen on',
|
||||
];
|
||||
37
modules/Admin/Language/fa/PodcastImport.php
Normal file
37
modules/Admin/Language/fa/PodcastImport.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
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.',
|
||||
'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.',
|
||||
'imported_feed_url' => 'Feed URL',
|
||||
'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
|
||||
'new_podcast_section_title' => 'The new podcast',
|
||||
'advanced_params_section_title' => 'Advanced parameters',
|
||||
'advanced_params_section_subtitle' =>
|
||||
'Keep the default values if you have no idea of what the fields are for.',
|
||||
'slug_field' => 'Field to be used to calculate episode slug',
|
||||
'description_field' =>
|
||||
'Source field used for episode description / show notes',
|
||||
'force_renumber' => 'Force episodes renumbering',
|
||||
'force_renumber_hint' =>
|
||||
'Use this if your podcast does not have episode numbers but wish to set them during import.',
|
||||
'season_number' => 'Season number',
|
||||
'season_number_hint' =>
|
||||
'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
|
||||
'max_episodes' => 'Maximum number of episodes to import',
|
||||
'max_episodes_hint' => 'Leave blank to import all episodes',
|
||||
'lock_import' =>
|
||||
'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
|
||||
'submit' => 'Import podcast',
|
||||
];
|
||||
36
modules/Admin/Language/fa/PodcastNavigation.php
Normal file
36
modules/Admin/Language/fa/PodcastNavigation.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'go_to_page' => 'Go to podcast page',
|
||||
'dashboard' => 'Podcast dashboard',
|
||||
'podcast-view' => 'Home',
|
||||
'podcast-edit' => 'Edit podcast',
|
||||
'podcast-persons-manage' => 'Manage persons',
|
||||
'episodes' => 'Episodes',
|
||||
'episode-list' => 'All episodes',
|
||||
'episode-create' => 'New episode',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Analytics',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
'podcast-analytics-locations' => 'Locations',
|
||||
'podcast-analytics-unique-listeners' => 'Unique listeners',
|
||||
'podcast-analytics-players' => 'Players',
|
||||
'podcast-analytics-listening-time' => 'Listening time',
|
||||
'podcast-analytics-time-periods' => 'Time periods',
|
||||
'contributors' => 'Contributors',
|
||||
'contributor-list' => 'All contributors',
|
||||
'contributor-add' => 'Add contributor',
|
||||
'platforms' => 'External platforms',
|
||||
'platforms-podcasting' => 'Podcasting',
|
||||
'platforms-social' => 'Social networks',
|
||||
'platforms-funding' => 'Funding',
|
||||
];
|
||||
56
modules/Admin/Language/fa/Settings.php
Normal file
56
modules/Admin/Language/fa/Settings.php
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'General settings',
|
||||
'instance' => [
|
||||
'title' => 'Instance',
|
||||
'site_icon' => 'Site icon',
|
||||
'site_icon_delete' => 'Delete site icon',
|
||||
'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Site name',
|
||||
'site_description' => 'Site description',
|
||||
'submit' => 'Save',
|
||||
'editSuccess' => 'Instance has been updated successfully!',
|
||||
'deleteIconSuccess' => 'Site icon has been remove successfully!',
|
||||
],
|
||||
'images' => [
|
||||
'title' => 'Images',
|
||||
'subtitle' => 'Here you can regenerate all images based on the originals that were uploaded. To be used if you find that some images are missing. This task may take a while.',
|
||||
'regenerate' => 'Regenerate images',
|
||||
'regenerationSuccess' => 'All images have been regenerated successfully!',
|
||||
],
|
||||
'housekeeping' => [
|
||||
'title' => 'Housekeeping',
|
||||
'subtitle' => 'Runs various housekeeping tasks. Use this feature if you ever encounter issues with media files or data integrity. These tasks may take a while.',
|
||||
'reset_counts' => 'Reset counts',
|
||||
'reset_counts_helper' => 'This option will recalculate and reset all data counts (number of followers, posts, comments, …).',
|
||||
'rewrite_media' => 'Rewrite media metadata',
|
||||
'rewrite_media_helper' => 'This option will delete all superfluous media files and recreate them (images, audio files, transcripts, chapters, …)',
|
||||
'clear_cache' => 'Clear all cache',
|
||||
'clear_cache_helper' => 'This option will flush redis cache or writable/cache files.',
|
||||
'run' => 'Run housekeeping',
|
||||
'runSuccess' => 'Housekeeping has been run successfully!',
|
||||
],
|
||||
'theme' => [
|
||||
'title' => 'Theme',
|
||||
'accent_section_title' => 'Accent color',
|
||||
'accent_section_subtitle' => 'Choose the color to determine the look and feel of all public pages.',
|
||||
'pine' => 'Pine',
|
||||
'crimson' => 'Crimson',
|
||||
'amber' => 'Amber',
|
||||
'lake' => 'Lake',
|
||||
'jacaranda' => 'Jacaranda',
|
||||
'onyx' => 'Onyx',
|
||||
'submit' => 'Save',
|
||||
'setInstanceThemeSuccess' => 'Theme has been updated successfully!',
|
||||
],
|
||||
];
|
||||
31
modules/Admin/Language/fa/Soundbite.php
Normal file
31
modules/Admin/Language/fa/Soundbite.php
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'list' => [
|
||||
'title' => 'Soundbites',
|
||||
'soundbite' => 'Soundbite',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'Soundbite has been successfully created!',
|
||||
'deleteSuccess' => 'Soundbite has been successfully removed!',
|
||||
],
|
||||
'form' => [
|
||||
'title' => 'New soundbite',
|
||||
'soundbite_title' => 'Soundbite title',
|
||||
'start_time' => 'Start at',
|
||||
'duration' => 'Duration',
|
||||
'submit' => 'Create soundbite',
|
||||
],
|
||||
'play' => 'Play soundbite',
|
||||
'stop' => 'Stop soundbite',
|
||||
'create' => 'New soundbite',
|
||||
'delete' => 'Delete soundbite',
|
||||
];
|
||||
54
modules/Admin/Language/fa/User.php
Normal file
54
modules/Admin/Language/fa/User.php
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'edit_roles' => "Edit {username}'s roles",
|
||||
'forcePassReset' => 'Force pass reset',
|
||||
'ban' => 'Ban',
|
||||
'unban' => 'Unban',
|
||||
'delete' => 'Delete',
|
||||
'create' => 'New user',
|
||||
'view' => "{username}'s info",
|
||||
'all_users' => 'All users',
|
||||
'list' => [
|
||||
'user' => 'User',
|
||||
'roles' => 'Roles',
|
||||
'banned' => 'Banned?',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'new_password' => 'New Password',
|
||||
'roles' => 'Roles',
|
||||
'permissions' => 'Permissions',
|
||||
'submit_create' => 'Create user',
|
||||
'submit_edit' => 'Save',
|
||||
'submit_password_change' => 'Change!',
|
||||
],
|
||||
'roles' => [
|
||||
'superadmin' => 'Super admin',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' =>
|
||||
'User created successfully! {username} will be prompted with a password reset upon first authentication.',
|
||||
'rolesEditSuccess' =>
|
||||
"{username}'s roles have been successfully updated.",
|
||||
'forcePassResetSuccess' =>
|
||||
'{username} will be prompted with a password reset upon next visit.',
|
||||
'banSuccess' => '{username} has been banned.',
|
||||
'unbanSuccess' => '{username} has been unbanned.',
|
||||
'banSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply ban a superadmin…',
|
||||
'deleteSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply delete a superadmin…',
|
||||
'deleteSuccess' => '{username} has been deleted.',
|
||||
],
|
||||
];
|
||||
18
modules/Admin/Language/fa/Validation.php
Normal file
18
modules/Admin/Language/fa/Validation.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'min_dims' =>
|
||||
'{field} is either not an image, or it is not wide or tall enough.',
|
||||
'is_image_ratio' =>
|
||||
'{field} is either not an image or not of the right ratio.',
|
||||
'validate_url' =>
|
||||
'The {field} field must be a valid URL (eg. https://example.com/).',
|
||||
];
|
||||
72
modules/Admin/Language/fa/VideoClip.php
Normal file
72
modules/Admin/Language/fa/VideoClip.php
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'list' => [
|
||||
'title' => 'Video clips',
|
||||
'status' => [
|
||||
'label' => 'Status',
|
||||
'queued' => 'queued',
|
||||
'queued_hint' => 'Clip is waiting to be processed.',
|
||||
'pending' => 'pending',
|
||||
'pending_hint' => 'Clip will be generated shortly.',
|
||||
'running' => 'running',
|
||||
'running_hint' => 'Clip is being generated.',
|
||||
'failed' => 'failed',
|
||||
'failed_hint' => 'Clip could not be generated: script failure.',
|
||||
'passed' => 'passed',
|
||||
'passed_hint' => 'Clip was generated successfully!',
|
||||
],
|
||||
'clip' => 'Clip',
|
||||
'duration' => 'Job duration',
|
||||
],
|
||||
'title' => 'Video clip: {videoClipLabel}',
|
||||
'download_clip' => 'Download clip',
|
||||
'create' => 'New video clip',
|
||||
'go_to_page' => 'Go to clip page',
|
||||
'retry' => 'Retry clip generation',
|
||||
'delete' => 'Delete clip',
|
||||
'logs' => 'Job logs',
|
||||
'messages' => [
|
||||
'alreadyExistingError' => 'The video clip you are trying to create already exists!',
|
||||
'addToQueueSuccess' => 'Video clip has been added to queue, awaiting to be created!',
|
||||
'deleteSuccess' => 'Video clip has been successfully removed!',
|
||||
],
|
||||
'format' => [
|
||||
'landscape' => 'Landscape',
|
||||
'portrait' => 'Portrait',
|
||||
'squared' => 'Squared',
|
||||
],
|
||||
'form' => [
|
||||
'title' => 'New video clip',
|
||||
'params_section_title' => 'Video clip parameters',
|
||||
'clip_title' => 'Clip title',
|
||||
'format' => [
|
||||
'label' => 'Choose a format',
|
||||
'landscape_hint' => 'With a 16:9 ratio, landscape videos are great for PeerTube, Youtube and Vimeo.',
|
||||
'portrait_hint' => 'With a 9:16 ratio, portrait videos are great for TikTok, Youtube shorts and Instagram stories.',
|
||||
'squared_hint' => 'With a 1:1 ratio, squared videos are great for Mastodon, Facebook, Twitter and LinkedIn.',
|
||||
],
|
||||
'theme' => 'Select a theme',
|
||||
'start_time' => 'Start at',
|
||||
'duration' => 'Duration',
|
||||
'trim_start' => 'Trim start',
|
||||
'trim_end' => 'Trim end',
|
||||
'submit' => 'Create video clip',
|
||||
],
|
||||
'requirements' => [
|
||||
'title' => 'Missing requirements',
|
||||
'missing' => 'You have missing requirements. Make sure to add all the required items to be allowed creating a video for this episode!',
|
||||
'ffmpeg' => 'FFmpeg',
|
||||
'gd' => 'Graphics Draw (GD)',
|
||||
'freetype' => 'Freetype library for GD',
|
||||
'transcript' => 'Transcript file (.srt)',
|
||||
],
|
||||
];
|
||||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'modifier la publication',
|
||||
'unpublish' => 'dépublier',
|
||||
'delete' => 'supprimer',
|
||||
'deleted' => 'supprimés',
|
||||
'delete-permanently' => 'supprimer définitivement',
|
||||
'fediverse' => 'fédiverse',
|
||||
'block-lists' => 'listes de blocage',
|
||||
'users' => 'utilisateurs',
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ return [
|
|||
'not_published' => 'Non publié',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Épisode',
|
||||
'visibility' => 'Visibilité',
|
||||
'comments' => 'Commentaires',
|
||||
|
|
@ -47,6 +56,24 @@ return [
|
|||
'createSuccess' => 'L’épisode a été créé avec succès !',
|
||||
'editSuccess' => 'L’épisode a bien été mis à jour !',
|
||||
'publishCancelSuccess' => 'La publication de l’épisode a bien été annulée !',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -57,7 +84,7 @@ return [
|
|||
'cover' => 'Image de couverture',
|
||||
'cover_hint' =>
|
||||
'Si vous ne définissez pas d’image, celle du podcast sera utilisée à la place.',
|
||||
'cover_size_hint' => 'La couverture de l’épisode doit être carrée, avec au minimum 1400px de largeur et de hauteur.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Titre',
|
||||
'title_hint' =>
|
||||
'Doit contenir un titre d’épisode clair et concis. Ne précisez ici aucun numéro de saison ou d’épisode.',
|
||||
|
|
@ -89,7 +116,7 @@ return [
|
|||
'Ce texte est ajouté à la fin de chaque description d’épisode, c’est 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 d’autres plate-formes pour procurer une meilleure expérience à vos auditeurs. Consulter le {podcastNamespaceLink} pour plus d’informations.',
|
||||
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
|
||||
'location_section_title' => 'Localisation',
|
||||
'location_section_subtitle' => 'De quel lieu cet épisode parle-t-il ?',
|
||||
'location_name' => 'Nom ou adresse du lieu',
|
||||
|
|
@ -149,7 +176,7 @@ return [
|
|||
'disclaimer' =>
|
||||
"Supprimer l’épisode supprimera tous les fichiers multimédia, commentaires, extraits vidéos et extraits sonores qui lui sont associés.",
|
||||
'understand' => 'Je comprends, je veux supprimer l’épisode',
|
||||
'submit' => 'Supprimer',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'embed' => [
|
||||
'title' => 'Lecteur intégré',
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ return [
|
|||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'L’image doit être carrée et avoir au moins 400px de largeur et de hauteur.',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Nom complet',
|
||||
'full_name_hint' => 'Le nom complet ou le pseudonyme de l’intervenant',
|
||||
'unique_name' => 'Nom unique',
|
||||
|
|
|
|||
|
|
@ -26,14 +26,34 @@ return [
|
|||
'createSuccess' => 'Le podcast a été créé avec succès !',
|
||||
'editSuccess' => 'Le podcast a bien été mis à jour !',
|
||||
'importSuccess' => 'Le podcast a été importé avec succès !',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Informations sur le Podcast',
|
||||
'identity_section_subtitle' => 'Ces champs vous permettent de vous faire remarquer.',
|
||||
'cover' => 'Couverture du podcast',
|
||||
'cover_size_hint' => 'La couverture du podcast doit être carrée, avec au minimum 1400px de largeur et de hauteur.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Bannière du podcast',
|
||||
'banner_size_hint' => 'La bannière doit être au format 3/1, avec au minimum 1500px de largeur.',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Supprimer la bannière du podcast',
|
||||
'title' => 'Titre',
|
||||
'handle' => 'Identifiant',
|
||||
|
|
@ -90,6 +110,9 @@ return [
|
|||
'custom_rss_hint' => 'Ceci sera injecté dans la balise ❬channel❭.',
|
||||
'new_feed_url' => 'URL du nouveau flux',
|
||||
'new_feed_url_hint' => 'Utilisez ce champ lorsque vous déplacez ce podcast vers un autre domaine ou que vous changez d’hébergeur. Par défaut, ce champ est rempli avec l’URL du flux actuel si le podcast est importé.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partenariat',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'URL lien',
|
||||
|
|
@ -219,6 +242,12 @@ return [
|
|||
'film_reviews' => 'Critiques de films',
|
||||
'tv_reviews' => 'Critiques TV',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'Par {publisher}',
|
||||
'season' => 'Saison {seasonNumber}',
|
||||
'list_of_episodes_year' => 'Épisodes de {year} ({episodeCount})',
|
||||
|
|
@ -227,12 +256,12 @@ return [
|
|||
'no_episode' => 'Aucun épisode trouvé !',
|
||||
'follow' => 'Suivre',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# abonné·e}
|
||||
other {# abonné·e·s}
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# publication}
|
||||
other {# publications}
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activité',
|
||||
'episodes' => 'Épisodes',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'warning' =>
|
||||
'Cette procédure peut prendre du temps. Dans la mesure où la version actuelle ne montre aucune progression durant l’exécution, vous ne pourrez voir aucun changement avant la fin. En cas d’erreur de timeout, augmentez la valeur de `max_execution_time`.',
|
||||
'Cette procédure peut prendre du temps.<br/>Dans la mesure où la version actuelle ne montre aucune progression durant l’exécution, vous ne pourrez voir aucun changement avant la fin.<br/>En cas d’erreur 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 l’importer. Copier et diffuser un podcast sans en détenir les droits est assimilable à de la contrefaçon et est passible de poursuites.',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ return [
|
|||
'episodes' => 'Épisodes',
|
||||
'episode-list' => 'Tous les épisodes',
|
||||
'episode-create' => 'Créer un épisode',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Mesures d’audience',
|
||||
'podcast-analytics' => 'Vue d’ensemble',
|
||||
'podcast-analytics-webpages' => 'Visites des pages web',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
'site_icon' => 'Favicon du site',
|
||||
'site_icon_delete' => 'Supprimer la favicon du site',
|
||||
'site_icon_hint' => 'Les favicons sont ce que vous voyez sur les onglets de votre navigateur, dans votre barre de favoris, et lorsque vous ajoutez un site web en raccourci sur des appareils mobiles.',
|
||||
'site_icon_helper' => 'La favicon doit être carrée, avec au minimum 512px de largeur et de hauteur.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Titre du site',
|
||||
'site_description' => 'Description du site',
|
||||
'submit' => 'Sauvegarder',
|
||||
|
|
|
|||
15
modules/Admin/Language/gd/Admin.php
Normal file
15
modules/Admin/Language/gd/Admin.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'dashboard' => 'Admin dashboard',
|
||||
'welcome_message' => 'Welcome to the admin area!',
|
||||
'choose_interact' => 'Choose how to interact',
|
||||
];
|
||||
50
modules/Admin/Language/gd/Breadcrumb.php
Normal file
50
modules/Admin/Language/gd/Breadcrumb.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'label' => 'breadcrumb',
|
||||
config('Admin')
|
||||
->gateway => 'Home',
|
||||
'podcasts' => 'podcasts',
|
||||
'episodes' => 'episodes',
|
||||
'contributors' => 'contributors',
|
||||
'pages' => 'pages',
|
||||
'settings' => 'settings',
|
||||
'theme' => 'theme',
|
||||
'add' => 'add',
|
||||
'new' => 'new',
|
||||
'edit' => 'edit',
|
||||
'persons' => 'persons',
|
||||
'publish' => 'publish',
|
||||
'publish-edit' => 'edit publication',
|
||||
'unpublish' => 'unpublish',
|
||||
'delete' => 'delete',
|
||||
'deleted' => 'deleted',
|
||||
'delete-permanently' => 'delete permanently',
|
||||
'fediverse' => 'fediverse',
|
||||
'block-lists' => 'block lists',
|
||||
'users' => 'users',
|
||||
'my-account' => 'my account',
|
||||
'change-password' => 'change password',
|
||||
'import' => 'feed import',
|
||||
'platforms' => 'platforms',
|
||||
'social' => 'social networks',
|
||||
'funding' => 'funding',
|
||||
'analytics' => 'analytics',
|
||||
'locations' => 'locations',
|
||||
'webpages' => 'web pages',
|
||||
'unique-listeners' => 'unique listeners',
|
||||
'players' => 'players',
|
||||
'listening-time' => 'listening time',
|
||||
'time-periods' => 'time periods',
|
||||
'soundbites' => 'soundbites',
|
||||
'video-clips' => 'video clips',
|
||||
'embed' => 'embeddable player',
|
||||
];
|
||||
38
modules/Admin/Language/gd/Charts.php
Normal file
38
modules/Admin/Language/gd/Charts.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'by_service_weekly' => 'Episode downloads by service (for the past week)',
|
||||
'by_player_weekly' => 'Episode downloads by player (for the past week)',
|
||||
'by_player_yearly' => 'Episode downloads by player (for the past year)',
|
||||
'by_device_weekly' => 'Episode downloads by device (for the past week)',
|
||||
'by_os_weekly' => 'Episode downloads by O.S. (for the past week)',
|
||||
'podcast_by_region' => 'Episode downloads by region (for the past week)',
|
||||
'unique_daily_listeners' => 'Daily unique listeners',
|
||||
'unique_monthly_listeners' => 'Monthly unique listeners',
|
||||
'by_browser' => 'Web pages usage by browser (for the past week)',
|
||||
'podcast_by_day' => 'Episode daily downloads',
|
||||
'podcast_by_month' => 'Episode monthly downloads',
|
||||
'episode_by_day' => 'Episode daily downloads (first 60 days)',
|
||||
'episode_by_month' => 'Episode monthly downloads',
|
||||
'episodes_by_day' =>
|
||||
'5 latest episodes downloads (during their first 60 days)',
|
||||
'by_country_weekly' => 'Episode downloads by country (for the past week)',
|
||||
'by_country_yearly' => 'Episode downloads by country (for the past year)',
|
||||
'by_domain_weekly' => 'Web pages visits by source (for the past week)',
|
||||
'by_domain_yearly' => 'Web pages visits by source (for the past year)',
|
||||
'by_entry_page' => 'Web pages visits by landing page (for the past week)',
|
||||
'podcast_bots' => 'Bots (crawlers)',
|
||||
'daily_listening_time' => 'Daily cumulative listening time',
|
||||
'monthly_listening_time' => 'Monthly cumulative listening time',
|
||||
'by_weekday' => 'By week day (for the past 60 days)',
|
||||
'by_hour' => 'By time of day (for the past 60 days)',
|
||||
'podcast_by_bandwidth' => 'Daily used bandwidth (in MB)',
|
||||
];
|
||||
49
modules/Admin/Language/gd/Common.php
Normal file
49
modules/Admin/Language/gd/Common.php
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'yes' => 'Yes',
|
||||
'no' => 'No',
|
||||
'cancel' => 'Cancel',
|
||||
'optional' => 'Optional',
|
||||
'more' => 'More',
|
||||
'no_data' => 'No data found!',
|
||||
'close' => 'Close',
|
||||
'edit' => 'Edit',
|
||||
'copy' => 'Copy',
|
||||
'copied' => 'Copied!',
|
||||
'home' => 'Home',
|
||||
'explicit' => 'Explicit',
|
||||
'powered_by' => 'Powered by {castopod}',
|
||||
'actions' => 'Actions',
|
||||
'pageInfo' => 'Page {currentPage} out of {pageCount}',
|
||||
'go_back' => 'Go back',
|
||||
'forms' => [
|
||||
'editor' => [
|
||||
'write' => 'Write',
|
||||
'preview' => 'Preview',
|
||||
'help' => 'Powered by markdown',
|
||||
],
|
||||
'multiSelect' => [
|
||||
'selectText' => 'Press to select',
|
||||
'loadingText' => 'Loading…',
|
||||
'noResultsText' => 'No results found',
|
||||
'noChoicesText' => 'No choices to choose from',
|
||||
'maxItemText' => 'Cannot add more items',
|
||||
],
|
||||
'upload_file' => 'Upload a file',
|
||||
'remote_url' => 'Remote URL',
|
||||
],
|
||||
'play_episode_button' => [
|
||||
'play' => 'Play',
|
||||
'playing' => 'Playing',
|
||||
],
|
||||
'size_limit' => 'Size limit: {0}.',
|
||||
];
|
||||
41
modules/Admin/Language/gd/Contributor.php
Normal file
41
modules/Admin/Language/gd/Contributor.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'podcast_contributors' => 'Podcast contributors',
|
||||
'view' => "{username}'s contribution to {podcastTitle}",
|
||||
'add' => 'Add contributor',
|
||||
'add_contributor' => 'Add a contributor for {0}',
|
||||
'edit_role' => 'Update role for {0}',
|
||||
'edit' => 'Edit',
|
||||
'remove' => 'Remove',
|
||||
'list' => [
|
||||
'username' => 'Username',
|
||||
'role' => 'Role',
|
||||
],
|
||||
'form' => [
|
||||
'user' => 'User',
|
||||
'user_placeholder' => 'Select a user…',
|
||||
'role' => 'Role',
|
||||
'role_placeholder' => 'Select its role…',
|
||||
'submit_add' => 'Add contributor',
|
||||
'submit_edit' => 'Update role',
|
||||
],
|
||||
'roles' => [
|
||||
'podcast_admin' => 'Podcast admin',
|
||||
],
|
||||
'messages' => [
|
||||
'removeOwnerError' => "You can't remove the podcast owner!",
|
||||
'removeSuccess' =>
|
||||
'You have successfully removed {username} from {podcastTitle}',
|
||||
'alreadyAddedError' =>
|
||||
"The contributor you're trying to add has already been added!",
|
||||
],
|
||||
];
|
||||
264
modules/Admin/Language/gd/Countries.php
Normal file
264
modules/Admin/Language/gd/Countries.php
Normal file
|
|
@ -0,0 +1,264 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* ISO 3166 country codes
|
||||
*
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'AD' => 'Andorra',
|
||||
'AE' => 'United Arab Emirates',
|
||||
'AF' => 'Afghanistan',
|
||||
'AG' => 'Antigua and Barbuda',
|
||||
'AI' => 'Anguilla',
|
||||
'AL' => 'Albania',
|
||||
'AM' => 'Armenia',
|
||||
'AO' => 'Angola',
|
||||
'AQ' => 'Antarctica',
|
||||
'AR' => 'Argentina',
|
||||
'AS' => 'American Samoa',
|
||||
'AT' => 'Austria',
|
||||
'AU' => 'Australia',
|
||||
'AW' => 'Aruba',
|
||||
'AX' => 'Åland Islands',
|
||||
'AZ' => 'Azerbaijan',
|
||||
'BA' => 'Bosnia and Herzegovina',
|
||||
'BB' => 'Barbados',
|
||||
'BD' => 'Bangladesh',
|
||||
'BE' => 'Belgium',
|
||||
'BF' => 'Burkina Faso',
|
||||
'BG' => 'Bulgaria',
|
||||
'BH' => 'Bahrain',
|
||||
'BI' => 'Burundi',
|
||||
'BJ' => 'Benin',
|
||||
'BL' => 'Saint Barthélemy',
|
||||
'BM' => 'Bermuda',
|
||||
'BN' => 'Brunei Darussalam',
|
||||
'BO' => 'Bolivia, Plurinational State of',
|
||||
'BQ' => 'Bonaire, Sint Eustatius and Saba',
|
||||
'BR' => 'Brazil',
|
||||
'BS' => 'Bahamas',
|
||||
'BT' => 'Bhutan',
|
||||
'BV' => 'Bouvet Island',
|
||||
'BW' => 'Botswana',
|
||||
'BY' => 'Belarus',
|
||||
'BZ' => 'Belize',
|
||||
'CA' => 'Canada',
|
||||
'CC' => 'Cocos (Keeling) Islands',
|
||||
'CD' => 'Congo, the Democratic Republic of the',
|
||||
'CF' => 'Central African Republic',
|
||||
'CG' => 'Congo',
|
||||
'CH' => 'Switzerland',
|
||||
'CI' => "Côte d'Ivoire",
|
||||
'CK' => 'Cook Islands',
|
||||
'CL' => 'Chile',
|
||||
'CM' => 'Cameroon',
|
||||
'CN' => 'China',
|
||||
'CO' => 'Colombia',
|
||||
'CR' => 'Costa Rica',
|
||||
'CU' => 'Cuba',
|
||||
'CV' => 'Cape Verde',
|
||||
'CW' => 'Curaçao',
|
||||
'CX' => 'Christmas Island',
|
||||
'CY' => 'Cyprus',
|
||||
'CZ' => 'Czech Republic',
|
||||
'DE' => 'Germany',
|
||||
'DJ' => 'Djibouti',
|
||||
'DK' => 'Denmark',
|
||||
'DM' => 'Dominica',
|
||||
'DO' => 'Dominican Republic',
|
||||
'DZ' => 'Algeria',
|
||||
'EC' => 'Ecuador',
|
||||
'EE' => 'Estonia',
|
||||
'EG' => 'Egypt',
|
||||
'EH' => 'Western Sahara',
|
||||
'ER' => 'Eritrea',
|
||||
'ES' => 'Spain',
|
||||
'ET' => 'Ethiopia',
|
||||
'FI' => 'Finland',
|
||||
'FJ' => 'Fiji',
|
||||
'FK' => 'Falkland Islands (Malvinas)',
|
||||
'FM' => 'Micronesia, Federated States of',
|
||||
'FO' => 'Faroe Islands',
|
||||
'FR' => 'France',
|
||||
'GA' => 'Gabon',
|
||||
'GB' => 'United Kingdom',
|
||||
'GD' => 'Grenada',
|
||||
'GE' => 'Georgia',
|
||||
'GF' => 'French Guiana',
|
||||
'GG' => 'Guernsey',
|
||||
'GH' => 'Ghana',
|
||||
'GI' => 'Gibraltar',
|
||||
'GL' => 'Greenland',
|
||||
'GM' => 'Gambia',
|
||||
'GN' => 'Guinea',
|
||||
'GP' => 'Guadeloupe',
|
||||
'GQ' => 'Equatorial Guinea',
|
||||
'GR' => 'Greece',
|
||||
'GS' => 'South Georgia and the South Sandwich Islands',
|
||||
'GT' => 'Guatemala',
|
||||
'GU' => 'Guam',
|
||||
'GW' => 'Guinea-Bissau',
|
||||
'GY' => 'Guyana',
|
||||
'HK' => 'Hong Kong',
|
||||
'HM' => 'Heard Island and McDonald Islands',
|
||||
'HN' => 'Honduras',
|
||||
'HR' => 'Croatia',
|
||||
'HT' => 'Haiti',
|
||||
'HU' => 'Hungary',
|
||||
'ID' => 'Indonesia',
|
||||
'IE' => 'Ireland',
|
||||
'IL' => 'Israel',
|
||||
'IM' => 'Isle of Man',
|
||||
'IN' => 'India',
|
||||
'IO' => 'British Indian Ocean Territory',
|
||||
'IQ' => 'Iraq',
|
||||
'IR' => 'Iran, Islamic Republic of',
|
||||
'IS' => 'Iceland',
|
||||
'IT' => 'Italy',
|
||||
'JE' => 'Jersey',
|
||||
'JM' => 'Jamaica',
|
||||
'JO' => 'Jordan',
|
||||
'JP' => 'Japan',
|
||||
'KE' => 'Kenya',
|
||||
'KG' => 'Kyrgyzstan',
|
||||
'KH' => 'Cambodia',
|
||||
'KI' => 'Kiribati',
|
||||
'KM' => 'Comoros',
|
||||
'KN' => 'Saint Kitts and Nevis',
|
||||
'KP' => "Korea, Democratic People's Republic of",
|
||||
'KR' => 'Korea, Republic of',
|
||||
'KW' => 'Kuwait',
|
||||
'KY' => 'Cayman Islands',
|
||||
'KZ' => 'Kazakhstan',
|
||||
'LA' => "Lao People's Democratic Republic",
|
||||
'LB' => 'Lebanon',
|
||||
'LC' => 'Saint Lucia',
|
||||
'LI' => 'Liechtenstein',
|
||||
'LK' => 'Sri Lanka',
|
||||
'LR' => 'Liberia',
|
||||
'LS' => 'Lesotho',
|
||||
'LT' => 'Lithuania',
|
||||
'LU' => 'Luxembourg',
|
||||
'LV' => 'Latvia',
|
||||
'LY' => 'Libya',
|
||||
'MA' => 'Morocco',
|
||||
'MC' => 'Monaco',
|
||||
'MD' => 'Moldova, Republic of',
|
||||
'ME' => 'Montenegro',
|
||||
'MF' => 'Saint Martin (French part)',
|
||||
'MG' => 'Madagascar',
|
||||
'MH' => 'Marshall Islands',
|
||||
'MK' => 'Macedonia, the Former Yugoslav Republic of',
|
||||
'ML' => 'Mali',
|
||||
'MM' => 'Myanmar',
|
||||
'MN' => 'Mongolia',
|
||||
'MO' => 'Macao',
|
||||
'MP' => 'Northern Mariana Islands',
|
||||
'MQ' => 'Martinique',
|
||||
'MR' => 'Mauritania',
|
||||
'MS' => 'Montserrat',
|
||||
'MT' => 'Malta',
|
||||
'MU' => 'Mauritius',
|
||||
'MV' => 'Maldives',
|
||||
'MW' => 'Malawi',
|
||||
'MX' => 'Mexico',
|
||||
'MY' => 'Malaysia',
|
||||
'MZ' => 'Mozambique',
|
||||
'N/A' => 'Not Applicable (local IP…)',
|
||||
'NA' => 'Namibia',
|
||||
'NC' => 'New Caledonia',
|
||||
'NE' => 'Niger',
|
||||
'NF' => 'Norfolk Island',
|
||||
'NG' => 'Nigeria',
|
||||
'NI' => 'Nicaragua',
|
||||
'NL' => 'Netherlands',
|
||||
'NO' => 'Norway',
|
||||
'NP' => 'Nepal',
|
||||
'NR' => 'Nauru',
|
||||
'NU' => 'Niue',
|
||||
'NZ' => 'New Zealand',
|
||||
'OM' => 'Oman',
|
||||
'PA' => 'Panama',
|
||||
'PE' => 'Peru',
|
||||
'PF' => 'French Polynesia',
|
||||
'PG' => 'Papua New Guinea',
|
||||
'PH' => 'Philippines',
|
||||
'PK' => 'Pakistan',
|
||||
'PL' => 'Poland',
|
||||
'PM' => 'Saint Pierre and Miquelon',
|
||||
'PN' => 'Pitcairn',
|
||||
'PR' => 'Puerto Rico',
|
||||
'PS' => 'Palestine, State of',
|
||||
'PT' => 'Portugal',
|
||||
'PW' => 'Palau',
|
||||
'PY' => 'Paraguay',
|
||||
'QA' => 'Qatar',
|
||||
'RE' => 'Réunion',
|
||||
'RO' => 'Romania',
|
||||
'RS' => 'Serbia',
|
||||
'RU' => 'Russian Federation',
|
||||
'RW' => 'Rwanda',
|
||||
'SA' => 'Saudi Arabia',
|
||||
'SB' => 'Solomon Islands',
|
||||
'SC' => 'Seychelles',
|
||||
'SD' => 'Sudan',
|
||||
'SE' => 'Sweden',
|
||||
'SG' => 'Singapore',
|
||||
'SH' => 'Saint Helena, Ascension and Tristan da Cunha',
|
||||
'SI' => 'Slovenia',
|
||||
'SJ' => 'Svalbard and Jan Mayen',
|
||||
'SK' => 'Slovakia',
|
||||
'SL' => 'Sierra Leone',
|
||||
'SM' => 'San Marino',
|
||||
'SN' => 'Senegal',
|
||||
'SO' => 'Somalia',
|
||||
'SR' => 'Suriname',
|
||||
'SS' => 'South Sudan',
|
||||
'ST' => 'Sao Tome and Principe',
|
||||
'SV' => 'El Salvador',
|
||||
'SX' => 'Sint Maarten (Dutch part)',
|
||||
'SY' => 'Syrian Arab Republic',
|
||||
'SZ' => 'Swaziland',
|
||||
'TC' => 'Turks and Caicos Islands',
|
||||
'TD' => 'Chad',
|
||||
'TF' => 'French Southern Territories',
|
||||
'TG' => 'Togo',
|
||||
'TH' => 'Thailand',
|
||||
'TJ' => 'Tajikistan',
|
||||
'TK' => 'Tokelau',
|
||||
'TL' => 'Timor-Leste',
|
||||
'TM' => 'Turkmenistan',
|
||||
'TN' => 'Tunisia',
|
||||
'TO' => 'Tonga',
|
||||
'TR' => 'Turkey',
|
||||
'TT' => 'Trinidad and Tobago',
|
||||
'TV' => 'Tuvalu',
|
||||
'TW' => 'Taiwan, Province of China',
|
||||
'TZ' => 'Tanzania, United Republic of',
|
||||
'UA' => 'Ukraine',
|
||||
'UG' => 'Uganda',
|
||||
'UM' => 'United States Minor Outlying Islands',
|
||||
'US' => 'United States',
|
||||
'UY' => 'Uruguay',
|
||||
'UZ' => 'Uzbekistan',
|
||||
'VA' => 'Holy See (Vatican City State)',
|
||||
'VC' => 'Saint Vincent and the Grenadines',
|
||||
'VE' => 'Venezuela, Bolivarian Republic of',
|
||||
'VG' => 'Virgin Islands, British',
|
||||
'VI' => 'Virgin Islands, U.S.',
|
||||
'VN' => 'Viet Nam',
|
||||
'VU' => 'Vanuatu',
|
||||
'WF' => 'Wallis and Futuna',
|
||||
'WS' => 'Samoa',
|
||||
'YE' => 'Yemen',
|
||||
'YT' => 'Mayotte',
|
||||
'ZA' => 'South Africa',
|
||||
'ZM' => 'Zambia',
|
||||
'ZW' => 'Zimbabwe',
|
||||
];
|
||||
192
modules/Admin/Language/gd/Episode.php
Normal file
192
modules/Admin/Language/gd/Episode.php
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'season_abbr' => 'S{seasonNumber}',
|
||||
'number' => 'Episode {episodeNumber}',
|
||||
'number_abbr' => 'Ep. {episodeNumber}',
|
||||
'season_episode' => 'Season {seasonNumber} episode {episodeNumber}',
|
||||
'season_episode_abbr' => 'S{seasonNumber}E{episodeNumber}',
|
||||
'number_of_comments' => '{numberOfComments, plural,
|
||||
one {# comment}
|
||||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
'edit' => 'Edit',
|
||||
'publish' => 'Publish',
|
||||
'publish_edit' => 'Edit publication',
|
||||
'unpublish' => 'Unpublish',
|
||||
'publish_error' => 'Episode is already published.',
|
||||
'publish_edit_error' => 'Episode is already published.',
|
||||
'publish_cancel_error' => 'Episode is already published.',
|
||||
'unpublish_error' => 'Episode is not published.',
|
||||
'delete' => 'Delete',
|
||||
'go_to_page' => 'Go to page',
|
||||
'create' => 'Add an episode',
|
||||
'publication_status' => [
|
||||
'published' => 'Published',
|
||||
'scheduled' => 'Scheduled',
|
||||
'not_published' => 'Not published',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Episode',
|
||||
'visibility' => 'Visibility',
|
||||
'comments' => 'Comments',
|
||||
'actions' => 'Actions',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'Episode has been successfully created!',
|
||||
'editSuccess' => 'Episode has been successfully updated!',
|
||||
'publishCancelSuccess' => 'Episode publication successfully cancelled!',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
'Your file size is too big! Max size is {0}. Increase the `memory_limit`, `upload_max_filesize` and `post_max_size` values in your php configuration file then restart your web server to upload your file.',
|
||||
'audio_file' => 'Audio file',
|
||||
'audio_file_hint' => 'Choose an .mp3 or .m4a audio file.',
|
||||
'info_section_title' => 'Episode info',
|
||||
'cover' => 'Episode cover',
|
||||
'cover_hint' =>
|
||||
'If you do not set a cover, the podcast cover will be used instead.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Title',
|
||||
'title_hint' =>
|
||||
'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.',
|
||||
'permalink' => 'Permalink',
|
||||
'season_number' => 'Season',
|
||||
'episode_number' => 'Episode',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'full' => 'Full',
|
||||
'full_hint' => 'Complete content (the episode)',
|
||||
'trailer' => 'Trailer',
|
||||
'trailer_hint' => 'Short, promotional piece of content that represents a preview of the current show',
|
||||
'bonus' => 'Bonus',
|
||||
'bonus_hint' => 'Extra content for the show (for example, behind the scenes info or interviews with the cast) or cross-promotional content for another show',
|
||||
],
|
||||
'parental_advisory' => [
|
||||
'label' => 'Parental advisory',
|
||||
'hint' => 'Does the episode contain explicit content?',
|
||||
'undefined' => 'undefined',
|
||||
'clean' => 'Clean',
|
||||
'explicit' => 'Explicit',
|
||||
],
|
||||
'show_notes_section_title' => 'Show notes',
|
||||
'show_notes_section_subtitle' =>
|
||||
'Up to 4000 characters, be clear and concise. Show notes help potential listeners in finding the episode.',
|
||||
'description' => 'Description',
|
||||
'description_footer' => 'Description footer',
|
||||
'description_footer_hint' =>
|
||||
'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. 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',
|
||||
'location_name_hint' => 'This can be a real or fictional location',
|
||||
'transcript' => 'Transcript (subtitles / closed captions)',
|
||||
'transcript_hint' => 'Only .srt are allowed.',
|
||||
'transcript_download' => 'Download transcript',
|
||||
'transcript_file' => 'Transcript file (.srt)',
|
||||
'transcript_remote_url' => 'Remote url for transcript',
|
||||
'transcript_file_delete' => 'Delete transcript file',
|
||||
'chapters' => 'Chapters',
|
||||
'chapters_hint' => 'File must be in JSON Chapters format.',
|
||||
'chapters_download' => 'Download chapters',
|
||||
'chapters_file' => 'Chapters file',
|
||||
'chapters_remote_url' => 'Remote url for chapters file',
|
||||
'chapters_file_delete' => 'Delete chapters file',
|
||||
'advanced_section_title' => 'Advanced Parameters',
|
||||
'advanced_section_subtitle' =>
|
||||
'If you need RSS tags that Castopod does not handle, set them here.',
|
||||
'custom_rss' => 'Custom RSS tags for the episode',
|
||||
'custom_rss_hint' => 'This will be injected within the ❬item❭ tag.',
|
||||
'block' => 'Episode should be hidden from all platforms',
|
||||
'block_hint' =>
|
||||
'The episode show or hide post. If you want this episode removed from the Apple directory, toggle this on.',
|
||||
'submit_create' => 'Create episode',
|
||||
'submit_edit' => 'Save episode',
|
||||
],
|
||||
'publish_form' => [
|
||||
'back_to_episode_dashboard' => 'Back to episode dashboard',
|
||||
'post' => 'Your announcement post',
|
||||
'post_hint' =>
|
||||
"Write a message to announce the publication of your episode. The message will be broadcasted to all your followers in the fediverse and be featured in your podcast's homepage.",
|
||||
'message_placeholder' => 'Write your message…',
|
||||
'publication_date' => 'Publication date',
|
||||
'publication_method' => [
|
||||
'now' => 'Now',
|
||||
'schedule' => 'Schedule',
|
||||
],
|
||||
'scheduled_publication_date' => 'Scheduled publication date',
|
||||
'scheduled_publication_date_clear' => 'Clear publication date',
|
||||
'scheduled_publication_date_hint' =>
|
||||
'You can schedule the episode release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm',
|
||||
'submit' => 'Publish',
|
||||
'submit_edit' => 'Edit publication',
|
||||
'cancel_publication' => 'Cancel publication',
|
||||
'message_warning' => 'You did not write a message for your announcement post!',
|
||||
'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your episode.',
|
||||
'message_warning_submit' => 'Publish anyways',
|
||||
],
|
||||
'unpublish_form' => [
|
||||
'disclaimer' =>
|
||||
"Unpublishing the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.",
|
||||
'understand' => 'I understand, I want to unpublish the episode',
|
||||
'submit' => 'Unpublish',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'I understand, I want to delete the episode',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'embed' => [
|
||||
'title' => 'Embeddable player',
|
||||
'label' =>
|
||||
'Pick a theme color, copy the embeddable player to clipboard, then paste it on your website.',
|
||||
'clipboard_iframe' => 'Copy embeddable player to clipboard',
|
||||
'clipboard_url' => 'Copy address to clipboard',
|
||||
'dark' => 'Dark',
|
||||
'dark-transparent' => 'Dark transparent',
|
||||
'light' => 'Light',
|
||||
'light-transparent' => 'Light transparent',
|
||||
],
|
||||
];
|
||||
23
modules/Admin/Language/gd/EpisodeNavigation.php
Normal file
23
modules/Admin/Language/gd/EpisodeNavigation.php
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'go_to_page' => 'View episode page',
|
||||
'dashboard' => 'Episode dashboard',
|
||||
'episode-view' => 'Home',
|
||||
'episode-edit' => 'Edit episode',
|
||||
'episode-persons-manage' => 'Manage persons',
|
||||
'embed-add' => 'Embeddable player',
|
||||
'clips' => 'Clips',
|
||||
'video-clips-list' => 'Video clips',
|
||||
'video-clips-create' => 'New video clip',
|
||||
'soundbites-list' => 'Soundbites',
|
||||
'soundbites-create' => 'New soundbite',
|
||||
];
|
||||
32
modules/Admin/Language/gd/Fediverse.php
Normal file
32
modules/Admin/Language/gd/Fediverse.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'messages' => [
|
||||
'actorNotFound' => 'The account could not be found!',
|
||||
'blockActorSuccess' => '{actor} has been blocked!',
|
||||
'unblockActorSuccess' => 'Actor has been unblocked!',
|
||||
'blockDomainSuccess' => '{domain} has been blocked!',
|
||||
'unblockDomainSuccess' => '{domain} has been unblocked!',
|
||||
],
|
||||
'blocked_actors' => 'Blocked accounts',
|
||||
'blocked_domains' => 'Blocked domains',
|
||||
'block_lists_form' => [
|
||||
'handle' => 'Account handle',
|
||||
'handle_hint' => 'Input @username@domain account.',
|
||||
'domain' => 'Domain name',
|
||||
'submit' => 'Block!',
|
||||
],
|
||||
'list' => [
|
||||
'actor' => 'Account',
|
||||
'domain' => 'Domain name',
|
||||
'unblock' => 'Unblock',
|
||||
],
|
||||
];
|
||||
14
modules/Admin/Language/gd/Home.php
Normal file
14
modules/Admin/Language/gd/Home.php
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'no_podcast' => 'No podcast found',
|
||||
];
|
||||
61
modules/Admin/Language/gd/Install.php
Normal file
61
modules/Admin/Language/gd/Install.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'manual_config' => 'Manual configuration',
|
||||
'manual_config_subtitle' =>
|
||||
'Create a `.env` file with your settings and refresh the page to continue installation.',
|
||||
'form' => [
|
||||
'instance_config' => 'Instance configuration',
|
||||
'hostname' => 'Hostname',
|
||||
'media_base_url' => 'Media base URL',
|
||||
'media_base_url_hint' =>
|
||||
'If you use a CDN and/or an external analytics service, you may set them here.',
|
||||
'admin_gateway' => 'Admin gateway',
|
||||
'admin_gateway_hint' =>
|
||||
'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.',
|
||||
'auth_gateway' => 'Auth gateway',
|
||||
'auth_gateway_hint' =>
|
||||
'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.',
|
||||
'database_config' => 'Database configuration',
|
||||
'database_config_hint' =>
|
||||
'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
|
||||
'db_hostname' => 'Database hostname',
|
||||
'db_name' => 'Database name',
|
||||
'db_username' => 'Database username',
|
||||
'db_password' => 'Database password',
|
||||
'db_prefix' => 'Database prefix',
|
||||
'db_prefix_hint' =>
|
||||
"The prefix of the Castopod table names, leave as is if you don't know what it means.",
|
||||
'cache_config' => 'Cache configuration',
|
||||
'cache_config_hint' =>
|
||||
'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
|
||||
'cache_handler' => 'Cache handler',
|
||||
'cacheHandlerOptions' => [
|
||||
'file' => 'File',
|
||||
'redis' => 'Redis',
|
||||
'predis' => 'Predis',
|
||||
],
|
||||
'next' => 'Next',
|
||||
'submit' => 'Finish install',
|
||||
'create_superadmin' => 'Create your superadmin account',
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuperAdminSuccess' =>
|
||||
'Your superadmin account has been created successfully. Login to start podcasting!',
|
||||
'databaseConnectError' =>
|
||||
'Castopod could not connect to your database. Edit your database configuration and try again.',
|
||||
'writeError' =>
|
||||
"Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.",
|
||||
],
|
||||
];
|
||||
18
modules/Admin/Language/gd/MyAccount.php
Normal file
18
modules/Admin/Language/gd/MyAccount.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'info' => 'My account info',
|
||||
'changePassword' => 'Change my password',
|
||||
'messages' => [
|
||||
'wrongPasswordError' => "You've entered the wrong password, try again.",
|
||||
'passwordChangeSuccess' => 'Password has been successfully changed!',
|
||||
],
|
||||
];
|
||||
41
modules/Admin/Language/gd/Navigation.php
Normal file
41
modules/Admin/Language/gd/Navigation.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'toggle_sidebar' => 'Toggle sidebar',
|
||||
'go_to_website' => 'Go to website',
|
||||
'go_to_admin' => 'Go to admin',
|
||||
'dashboard' => 'Dashboard',
|
||||
'admin' => 'Home',
|
||||
'podcasts' => 'Podcasts',
|
||||
'podcast-list' => 'All podcasts',
|
||||
'podcast-create' => 'New podcast',
|
||||
'podcast-import' => 'Import a podcast',
|
||||
'persons' => 'Persons',
|
||||
'person-list' => 'All persons',
|
||||
'person-create' => 'New person',
|
||||
'fediverse' => 'Fediverse',
|
||||
'fediverse-blocked-actors' => 'Blocked accounts',
|
||||
'fediverse-blocked-domains' => 'Blocked domains',
|
||||
'users' => 'Users',
|
||||
'user-list' => 'All users',
|
||||
'user-create' => 'New user',
|
||||
'pages' => 'Pages',
|
||||
'page-list' => 'All pages',
|
||||
'page-create' => 'New Page',
|
||||
'settings' => 'Settings',
|
||||
'settings-general' => 'General',
|
||||
'settings-theme' => 'Theme',
|
||||
'account' => [
|
||||
'my-account' => 'My account',
|
||||
'change-password' => 'Change password',
|
||||
'logout' => 'Logout',
|
||||
],
|
||||
];
|
||||
30
modules/Admin/Language/gd/Page.php
Normal file
30
modules/Admin/Language/gd/Page.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => 'Back to home',
|
||||
'page' => 'Page',
|
||||
'all_pages' => 'All pages',
|
||||
'create' => 'New page',
|
||||
'go_to_page' => 'Go to page',
|
||||
'edit' => 'Edit page',
|
||||
'delete' => 'Delete page',
|
||||
'form' => [
|
||||
'title' => 'Title',
|
||||
'permalink' => 'Permalink',
|
||||
'content' => 'Content',
|
||||
'submit_create' => 'Create page',
|
||||
'submit_edit' => 'Save',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'The page “{pageTitle}” was created successfully!',
|
||||
'editSuccess' => 'The page was successfully updated!',
|
||||
],
|
||||
];
|
||||
21
modules/Admin/Language/gd/Pager.php
Normal file
21
modules/Admin/Language/gd/Pager.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'pageNavigation' => 'Page navigation',
|
||||
'first' => 'First',
|
||||
'previous' => 'Previous',
|
||||
'next' => 'Next',
|
||||
'last' => 'Last',
|
||||
'older' => 'Older',
|
||||
'newer' => 'Newer',
|
||||
'invalidTemplate' => '{0} is not a valid Pager template.',
|
||||
'invalidPaginationGroup' => '{0} is not a valid Pagination group.',
|
||||
];
|
||||
65
modules/Admin/Language/gd/Person.php
Normal file
65
modules/Admin/Language/gd/Person.php
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'persons' => 'Persons',
|
||||
'all_persons' => 'All persons',
|
||||
'no_person' => 'Nobody found!',
|
||||
'create' => 'Create a person',
|
||||
'view' => 'View person',
|
||||
'edit' => 'Edit person',
|
||||
'delete' => 'Delete person',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Person has been successfully created!',
|
||||
'editSuccess' => 'Person has been successfully updated!',
|
||||
'deleteSuccess' => 'Person has been removed!',
|
||||
],
|
||||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Full name',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
'unique_name_hint' => 'Used for URLs',
|
||||
'information_url' => 'Information URL',
|
||||
'information_url_hint' =>
|
||||
'Url to a relevant resource of information about the person, such as a homepage or third-party profile platform.',
|
||||
'submit_create' => 'Create person',
|
||||
'submit_edit' => 'Save person',
|
||||
],
|
||||
'podcast_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this podcast',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
],
|
||||
'episode_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this episode',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
],
|
||||
'credits' => 'Credits',
|
||||
];
|
||||
30
modules/Admin/Language/gd/Platforms.php
Normal file
30
modules/Admin/Language/gd/Platforms.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'Platforms',
|
||||
'home_url' => 'Go to {platformName} website',
|
||||
'submit_url' => 'Submit your podcast on {platformName}',
|
||||
'visible' => 'Display in podcast homepage?',
|
||||
'on_embed' => 'Display on embeddable player?',
|
||||
'remove' => 'Remove {platformName}',
|
||||
'submit' => 'Save',
|
||||
'messages' => [
|
||||
'updateSuccess' => 'Platform links have been successfully updated!',
|
||||
'removeLinkSuccess' => 'The platform link has been removed.',
|
||||
'removeLinkError' =>
|
||||
'The platform link could not be removed. Try again.',
|
||||
],
|
||||
'description' => [
|
||||
'podcasting' => 'The podcast ID on this platform',
|
||||
'social' => 'The podcast account ID on this platform',
|
||||
'funding' => 'Call to action message',
|
||||
],
|
||||
];
|
||||
272
modules/Admin/Language/gd/Podcast.php
Normal file
272
modules/Admin/Language/gd/Podcast.php
Normal file
|
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'no_podcast' => 'No podcast found!',
|
||||
'create' => 'Create podcast',
|
||||
'import' => 'Import podcast',
|
||||
'new_episode' => 'New Episode',
|
||||
'view' => 'View podcast',
|
||||
'edit' => 'Edit podcast',
|
||||
'delete' => 'Delete podcast',
|
||||
'see_episodes' => 'See episodes',
|
||||
'see_contributors' => 'See contributors',
|
||||
'go_to_page' => 'Go to page',
|
||||
'latest_episodes' => 'Latest episodes',
|
||||
'see_all_episodes' => 'See all episodes',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Podcast has been successfully created!',
|
||||
'editSuccess' => 'Podcast has been successfully updated!',
|
||||
'importSuccess' => 'Podcast has been successfully imported!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'cover' => 'Podcast cover',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast banner',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Delete podcast banner',
|
||||
'title' => 'Title',
|
||||
'handle' => 'Handle',
|
||||
'handle_hint' =>
|
||||
'Used to identify the podcast. Uppercase, lowercase, numbers and underscores are accepted.',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'episodic' => 'Episodic',
|
||||
'episodic_hint' => 'If episodes are intended to be consumed without any specific order. Newest episodes will be presented first.',
|
||||
'serial' => 'Serial',
|
||||
'serial_hint' => 'If episodes are intended to be consumed in sequential order. The oldest episodes will be presented first.',
|
||||
],
|
||||
'description' => 'Description',
|
||||
'classification_section_title' => 'Classification',
|
||||
'classification_section_subtitle' =>
|
||||
'These fields will impact your audience and competition.',
|
||||
'language' => 'Language',
|
||||
'category' => 'Category',
|
||||
'category_placeholder' => 'Select a category…',
|
||||
'other_categories' => 'Other categories',
|
||||
'parental_advisory' => [
|
||||
'label' => 'Parental advisory',
|
||||
'hint' => 'Does it contain explicit content?',
|
||||
'undefined' => 'undefined',
|
||||
'clean' => 'Clean',
|
||||
'explicit' => 'Explicit',
|
||||
],
|
||||
'author_section_title' => 'Author',
|
||||
'author_section_subtitle' => 'Who is managing the podcast?',
|
||||
'owner_name' => 'Owner name',
|
||||
'owner_name_hint' =>
|
||||
'For administrative use only. Visible in the public RSS feed.',
|
||||
'owner_email' => 'Owner email',
|
||||
'owner_email_hint' =>
|
||||
'Will be used by most platforms to verify the podcast ownership. Visible in the public RSS feed.',
|
||||
'publisher' => 'Publisher',
|
||||
'publisher_hint' =>
|
||||
'The group responsible for creating the show. Often refers to the parent company or network of a podcast. This field is sometimes labeled as ’Author’.',
|
||||
'copyright' => 'Copyright',
|
||||
'location_section_title' => 'Location',
|
||||
'location_section_subtitle' => 'What place is this podcast about?',
|
||||
'location_name' => 'Location name or address',
|
||||
'location_name_hint' => 'This can be a real place or fictional',
|
||||
'monetization_section_title' => 'Monetization',
|
||||
'monetization_section_subtitle' =>
|
||||
'Earn money thanks to your audience.',
|
||||
'payment_pointer' => 'Payment Pointer for Web Monetization',
|
||||
'payment_pointer_hint' =>
|
||||
'This is your where you will receive money thanks to Web Monetization',
|
||||
'advanced_section_title' => 'Advanced Parameters',
|
||||
'advanced_section_subtitle' =>
|
||||
'If you need RSS tags that Castopod does not handle, set them here.',
|
||||
'custom_rss' => 'Custom RSS tags for the podcast',
|
||||
'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.',
|
||||
'new_feed_url' => 'New feed URL',
|
||||
'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnership',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link URL',
|
||||
'partner_image_url' => 'Image URL',
|
||||
'partner_id_hint' => 'Your own partner ID',
|
||||
'partner_link_url_hint' => 'The generic partner link address',
|
||||
'partner_image_url_hint' => 'The generic partner image address',
|
||||
'status_section_title' => 'Status',
|
||||
'block' => 'Podcast should be hidden from all platforms',
|
||||
'complete' => 'Podcast will not be having new episodes',
|
||||
'lock' => 'Prevent podcast from being copied',
|
||||
'lock_hint' =>
|
||||
'The purpose is to tell other podcast platforms whether they are allowed to import this feed. A value of yes means that any attempt to import this feed into a new platform should be rejected.',
|
||||
'submit_create' => 'Create podcast',
|
||||
'submit_edit' => 'Save podcast',
|
||||
],
|
||||
'category_options' => [
|
||||
'uncategorized' => 'uncategorized',
|
||||
'arts' => 'Arts',
|
||||
'business' => 'Business',
|
||||
'comedy' => 'Comedy',
|
||||
'education' => 'Education',
|
||||
'fiction' => 'Fiction',
|
||||
'government' => 'Government',
|
||||
'health_and_fitness' => 'Health & Fitness',
|
||||
'history' => 'History',
|
||||
'kids_and_family' => 'Kids & Family',
|
||||
'leisure' => 'Leisure',
|
||||
'music' => 'Music',
|
||||
'news' => 'News',
|
||||
'religion_and_spirituality' => 'Religion & Spirituality',
|
||||
'science' => 'Science',
|
||||
'society_and_culture' => 'Society & Culture',
|
||||
'sports' => 'Sports',
|
||||
'technology' => 'Technology',
|
||||
'true_crime' => 'True Crime',
|
||||
'tv_and_film' => 'TV & Film',
|
||||
'books' => 'Books',
|
||||
'design' => 'Design',
|
||||
'fashion_and_beauty' => 'Fashion & Beauty',
|
||||
'food' => 'Food',
|
||||
'performing_arts' => 'Performing Arts',
|
||||
'visual_arts' => 'Visual Arts',
|
||||
'careers' => 'Careers',
|
||||
'entrepreneurship' => 'Entrepreneurship',
|
||||
'investing' => 'Investing',
|
||||
'management' => 'Management',
|
||||
'marketing' => 'Marketing',
|
||||
'non_profit' => 'Non-Profit',
|
||||
'comedy_interviews' => 'Comedy Interviews',
|
||||
'improv' => 'Improv',
|
||||
'stand_up' => 'Stand-Up',
|
||||
'courses' => 'Courses',
|
||||
'how_to' => 'How To',
|
||||
'language_learning' => 'Language Learning',
|
||||
'self_improvement' => 'Self-Improvement',
|
||||
'comedy_fiction' => 'Comedy Fiction',
|
||||
'drama' => 'Drama',
|
||||
'science_fiction' => 'Science Fiction',
|
||||
'alternative_health' => 'Alternative Health',
|
||||
'fitness' => 'Fitness',
|
||||
'medicine' => 'Medicine',
|
||||
'mental_health' => 'Mental Health',
|
||||
'nutrition' => 'Nutrition',
|
||||
'sexuality' => 'Sexuality',
|
||||
'education_for_kids' => 'Education for Kids',
|
||||
'parenting' => 'Parenting',
|
||||
'pets_and_animals' => 'Pets & Animals',
|
||||
'stories_for_kids' => 'Stories for Kids',
|
||||
'animation_and_manga' => 'Animation & Manga',
|
||||
'automotive' => 'Automotive',
|
||||
'aviation' => 'Aviation',
|
||||
'crafts' => 'Crafts',
|
||||
'games' => 'Games',
|
||||
'hobbies' => 'Hobbies',
|
||||
'home_and_garden' => 'Home & Garden',
|
||||
'video_games' => 'Video Games',
|
||||
'music_commentary' => 'Music Commentary',
|
||||
'music_history' => 'Music History',
|
||||
'music_interviews' => 'Music Interviews',
|
||||
'business_news' => 'Business News',
|
||||
'daily_news' => 'Daily News',
|
||||
'entertainment_news' => 'Entertainment News',
|
||||
'news_commentary' => 'News Commentary',
|
||||
'politics' => 'Politics',
|
||||
'sports_news' => 'Sports News',
|
||||
'tech_news' => 'Tech News',
|
||||
'buddhism' => 'Buddhism',
|
||||
'christianity' => 'Christianity',
|
||||
'hinduism' => 'Hinduism',
|
||||
'islam' => 'Islam',
|
||||
'judaism' => 'Judaism',
|
||||
'religion' => 'Religion',
|
||||
'spirituality' => 'Spirituality',
|
||||
'astronomy' => 'Astronomy',
|
||||
'chemistry' => 'Chemistry',
|
||||
'earth_sciences' => 'Earth Sciences',
|
||||
'life_sciences' => 'Life Sciences',
|
||||
'mathematics' => 'Mathematics',
|
||||
'natural_sciences' => 'Natural Sciences',
|
||||
'nature' => 'Nature',
|
||||
'physics' => 'Physics',
|
||||
'social_sciences' => 'Social Sciences',
|
||||
'documentary' => 'Documentary',
|
||||
'personal_journals' => 'Personal Journals',
|
||||
'philosophy' => 'Philosophy',
|
||||
'places_and_travel' => 'Places & Travel',
|
||||
'relationships' => 'Relationships',
|
||||
'baseball' => 'Baseball',
|
||||
'basketball' => 'Basketball',
|
||||
'cricket' => 'Cricket',
|
||||
'fantasy_sports' => 'Fantasy Sports',
|
||||
'football' => 'Football',
|
||||
'golf' => 'Golf',
|
||||
'hockey' => 'Hockey',
|
||||
'rugby' => 'Rugby',
|
||||
'running' => 'Running',
|
||||
'soccer' => 'Soccer',
|
||||
'swimming' => 'Swimming',
|
||||
'tennis' => 'Tennis',
|
||||
'volleyball' => 'Volleyball',
|
||||
'wilderness' => 'Wilderness',
|
||||
'wrestling' => 'Wrestling',
|
||||
'after_shows' => 'After Shows',
|
||||
'film_history' => 'Film History',
|
||||
'film_interviews' => 'Film Interviews',
|
||||
'film_reviews' => 'Film Reviews',
|
||||
'tv_reviews' => 'TV Reviews',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'By {publisher}',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
'list_of_episodes_season' =>
|
||||
'Season {seasonNumber} episodes ({episodeCount})',
|
||||
'no_episode' => 'No episode found!',
|
||||
'follow' => 'Follow',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activity',
|
||||
'episodes' => 'Episodes',
|
||||
'sponsor' => 'Sponsor',
|
||||
'funding_links' => 'Funding links for {podcastTitle}',
|
||||
'find_on' => 'Find {podcastTitle} on',
|
||||
'listen_on' => 'Listen on',
|
||||
];
|
||||
37
modules/Admin/Language/gd/PodcastImport.php
Normal file
37
modules/Admin/Language/gd/PodcastImport.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
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.',
|
||||
'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.',
|
||||
'imported_feed_url' => 'Feed URL',
|
||||
'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
|
||||
'new_podcast_section_title' => 'The new podcast',
|
||||
'advanced_params_section_title' => 'Advanced parameters',
|
||||
'advanced_params_section_subtitle' =>
|
||||
'Keep the default values if you have no idea of what the fields are for.',
|
||||
'slug_field' => 'Field to be used to calculate episode slug',
|
||||
'description_field' =>
|
||||
'Source field used for episode description / show notes',
|
||||
'force_renumber' => 'Force episodes renumbering',
|
||||
'force_renumber_hint' =>
|
||||
'Use this if your podcast does not have episode numbers but wish to set them during import.',
|
||||
'season_number' => 'Season number',
|
||||
'season_number_hint' =>
|
||||
'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
|
||||
'max_episodes' => 'Maximum number of episodes to import',
|
||||
'max_episodes_hint' => 'Leave blank to import all episodes',
|
||||
'lock_import' =>
|
||||
'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
|
||||
'submit' => 'Import podcast',
|
||||
];
|
||||
36
modules/Admin/Language/gd/PodcastNavigation.php
Normal file
36
modules/Admin/Language/gd/PodcastNavigation.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'go_to_page' => 'Go to podcast page',
|
||||
'dashboard' => 'Podcast dashboard',
|
||||
'podcast-view' => 'Home',
|
||||
'podcast-edit' => 'Edit podcast',
|
||||
'podcast-persons-manage' => 'Manage persons',
|
||||
'episodes' => 'Episodes',
|
||||
'episode-list' => 'All episodes',
|
||||
'episode-create' => 'New episode',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Analytics',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
'podcast-analytics-locations' => 'Locations',
|
||||
'podcast-analytics-unique-listeners' => 'Unique listeners',
|
||||
'podcast-analytics-players' => 'Players',
|
||||
'podcast-analytics-listening-time' => 'Listening time',
|
||||
'podcast-analytics-time-periods' => 'Time periods',
|
||||
'contributors' => 'Contributors',
|
||||
'contributor-list' => 'All contributors',
|
||||
'contributor-add' => 'Add contributor',
|
||||
'platforms' => 'External platforms',
|
||||
'platforms-podcasting' => 'Podcasting',
|
||||
'platforms-social' => 'Social networks',
|
||||
'platforms-funding' => 'Funding',
|
||||
];
|
||||
56
modules/Admin/Language/gd/Settings.php
Normal file
56
modules/Admin/Language/gd/Settings.php
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'General settings',
|
||||
'instance' => [
|
||||
'title' => 'Instance',
|
||||
'site_icon' => 'Site icon',
|
||||
'site_icon_delete' => 'Delete site icon',
|
||||
'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Site name',
|
||||
'site_description' => 'Site description',
|
||||
'submit' => 'Save',
|
||||
'editSuccess' => 'Instance has been updated successfully!',
|
||||
'deleteIconSuccess' => 'Site icon has been remove successfully!',
|
||||
],
|
||||
'images' => [
|
||||
'title' => 'Images',
|
||||
'subtitle' => 'Here you can regenerate all images based on the originals that were uploaded. To be used if you find that some images are missing. This task may take a while.',
|
||||
'regenerate' => 'Regenerate images',
|
||||
'regenerationSuccess' => 'All images have been regenerated successfully!',
|
||||
],
|
||||
'housekeeping' => [
|
||||
'title' => 'Housekeeping',
|
||||
'subtitle' => 'Runs various housekeeping tasks. Use this feature if you ever encounter issues with media files or data integrity. These tasks may take a while.',
|
||||
'reset_counts' => 'Reset counts',
|
||||
'reset_counts_helper' => 'This option will recalculate and reset all data counts (number of followers, posts, comments, …).',
|
||||
'rewrite_media' => 'Rewrite media metadata',
|
||||
'rewrite_media_helper' => 'This option will delete all superfluous media files and recreate them (images, audio files, transcripts, chapters, …)',
|
||||
'clear_cache' => 'Clear all cache',
|
||||
'clear_cache_helper' => 'This option will flush redis cache or writable/cache files.',
|
||||
'run' => 'Run housekeeping',
|
||||
'runSuccess' => 'Housekeeping has been run successfully!',
|
||||
],
|
||||
'theme' => [
|
||||
'title' => 'Theme',
|
||||
'accent_section_title' => 'Accent color',
|
||||
'accent_section_subtitle' => 'Choose the color to determine the look and feel of all public pages.',
|
||||
'pine' => 'Pine',
|
||||
'crimson' => 'Crimson',
|
||||
'amber' => 'Amber',
|
||||
'lake' => 'Lake',
|
||||
'jacaranda' => 'Jacaranda',
|
||||
'onyx' => 'Onyx',
|
||||
'submit' => 'Save',
|
||||
'setInstanceThemeSuccess' => 'Theme has been updated successfully!',
|
||||
],
|
||||
];
|
||||
31
modules/Admin/Language/gd/Soundbite.php
Normal file
31
modules/Admin/Language/gd/Soundbite.php
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'list' => [
|
||||
'title' => 'Soundbites',
|
||||
'soundbite' => 'Soundbite',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'Soundbite has been successfully created!',
|
||||
'deleteSuccess' => 'Soundbite has been successfully removed!',
|
||||
],
|
||||
'form' => [
|
||||
'title' => 'New soundbite',
|
||||
'soundbite_title' => 'Soundbite title',
|
||||
'start_time' => 'Start at',
|
||||
'duration' => 'Duration',
|
||||
'submit' => 'Create soundbite',
|
||||
],
|
||||
'play' => 'Play soundbite',
|
||||
'stop' => 'Stop soundbite',
|
||||
'create' => 'New soundbite',
|
||||
'delete' => 'Delete soundbite',
|
||||
];
|
||||
54
modules/Admin/Language/gd/User.php
Normal file
54
modules/Admin/Language/gd/User.php
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'edit_roles' => "Edit {username}'s roles",
|
||||
'forcePassReset' => 'Force pass reset',
|
||||
'ban' => 'Ban',
|
||||
'unban' => 'Unban',
|
||||
'delete' => 'Delete',
|
||||
'create' => 'New user',
|
||||
'view' => "{username}'s info",
|
||||
'all_users' => 'All users',
|
||||
'list' => [
|
||||
'user' => 'User',
|
||||
'roles' => 'Roles',
|
||||
'banned' => 'Banned?',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'new_password' => 'New Password',
|
||||
'roles' => 'Roles',
|
||||
'permissions' => 'Permissions',
|
||||
'submit_create' => 'Create user',
|
||||
'submit_edit' => 'Save',
|
||||
'submit_password_change' => 'Change!',
|
||||
],
|
||||
'roles' => [
|
||||
'superadmin' => 'Super admin',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' =>
|
||||
'User created successfully! {username} will be prompted with a password reset upon first authentication.',
|
||||
'rolesEditSuccess' =>
|
||||
"{username}'s roles have been successfully updated.",
|
||||
'forcePassResetSuccess' =>
|
||||
'{username} will be prompted with a password reset upon next visit.',
|
||||
'banSuccess' => '{username} has been banned.',
|
||||
'unbanSuccess' => '{username} has been unbanned.',
|
||||
'banSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply ban a superadmin…',
|
||||
'deleteSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply delete a superadmin…',
|
||||
'deleteSuccess' => '{username} has been deleted.',
|
||||
],
|
||||
];
|
||||
18
modules/Admin/Language/gd/Validation.php
Normal file
18
modules/Admin/Language/gd/Validation.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'min_dims' =>
|
||||
'{field} is either not an image, or it is not wide or tall enough.',
|
||||
'is_image_ratio' =>
|
||||
'{field} is either not an image or not of the right ratio.',
|
||||
'validate_url' =>
|
||||
'The {field} field must be a valid URL (eg. https://example.com/).',
|
||||
];
|
||||
72
modules/Admin/Language/gd/VideoClip.php
Normal file
72
modules/Admin/Language/gd/VideoClip.php
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'list' => [
|
||||
'title' => 'Video clips',
|
||||
'status' => [
|
||||
'label' => 'Status',
|
||||
'queued' => 'queued',
|
||||
'queued_hint' => 'Clip is waiting to be processed.',
|
||||
'pending' => 'pending',
|
||||
'pending_hint' => 'Clip will be generated shortly.',
|
||||
'running' => 'running',
|
||||
'running_hint' => 'Clip is being generated.',
|
||||
'failed' => 'failed',
|
||||
'failed_hint' => 'Clip could not be generated: script failure.',
|
||||
'passed' => 'passed',
|
||||
'passed_hint' => 'Clip was generated successfully!',
|
||||
],
|
||||
'clip' => 'Clip',
|
||||
'duration' => 'Job duration',
|
||||
],
|
||||
'title' => 'Video clip: {videoClipLabel}',
|
||||
'download_clip' => 'Download clip',
|
||||
'create' => 'New video clip',
|
||||
'go_to_page' => 'Go to clip page',
|
||||
'retry' => 'Retry clip generation',
|
||||
'delete' => 'Delete clip',
|
||||
'logs' => 'Job logs',
|
||||
'messages' => [
|
||||
'alreadyExistingError' => 'The video clip you are trying to create already exists!',
|
||||
'addToQueueSuccess' => 'Video clip has been added to queue, awaiting to be created!',
|
||||
'deleteSuccess' => 'Video clip has been successfully removed!',
|
||||
],
|
||||
'format' => [
|
||||
'landscape' => 'Landscape',
|
||||
'portrait' => 'Portrait',
|
||||
'squared' => 'Squared',
|
||||
],
|
||||
'form' => [
|
||||
'title' => 'New video clip',
|
||||
'params_section_title' => 'Video clip parameters',
|
||||
'clip_title' => 'Clip title',
|
||||
'format' => [
|
||||
'label' => 'Choose a format',
|
||||
'landscape_hint' => 'With a 16:9 ratio, landscape videos are great for PeerTube, Youtube and Vimeo.',
|
||||
'portrait_hint' => 'With a 9:16 ratio, portrait videos are great for TikTok, Youtube shorts and Instagram stories.',
|
||||
'squared_hint' => 'With a 1:1 ratio, squared videos are great for Mastodon, Facebook, Twitter and LinkedIn.',
|
||||
],
|
||||
'theme' => 'Select a theme',
|
||||
'start_time' => 'Start at',
|
||||
'duration' => 'Duration',
|
||||
'trim_start' => 'Trim start',
|
||||
'trim_end' => 'Trim end',
|
||||
'submit' => 'Create video clip',
|
||||
],
|
||||
'requirements' => [
|
||||
'title' => 'Missing requirements',
|
||||
'missing' => 'You have missing requirements. Make sure to add all the required items to be allowed creating a video for this episode!',
|
||||
'ffmpeg' => 'FFmpeg',
|
||||
'gd' => 'Graphics Draw (GD)',
|
||||
'freetype' => 'Freetype library for GD',
|
||||
'transcript' => 'Transcript file (.srt)',
|
||||
],
|
||||
];
|
||||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'edit publication',
|
||||
'unpublish' => 'unpublish',
|
||||
'delete' => 'delete',
|
||||
'deleted' => 'deleted',
|
||||
'delete-permanently' => 'delete permanently',
|
||||
'fediverse' => 'fediverse',
|
||||
'block-lists' => 'block lists',
|
||||
'users' => 'users',
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ return [
|
|||
'not_published' => 'Not published',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Episode',
|
||||
'visibility' => 'Visibility',
|
||||
'comments' => 'Comments',
|
||||
|
|
@ -47,6 +56,24 @@ return [
|
|||
'createSuccess' => 'Episode has been successfully created!',
|
||||
'editSuccess' => 'Episode has been successfully updated!',
|
||||
'publishCancelSuccess' => 'Episode publication successfully cancelled!',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -57,7 +84,7 @@ return [
|
|||
'cover' => 'Episode cover',
|
||||
'cover_hint' =>
|
||||
'If you do not set a cover, the podcast cover will be used instead.',
|
||||
'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Title',
|
||||
'title_hint' =>
|
||||
'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.',
|
||||
|
|
@ -147,7 +174,7 @@ return [
|
|||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.",
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'I understand, I want to delete the episode',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ return [
|
|||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared with at least 400px wide and tall.',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Full name',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
|
|
|
|||
|
|
@ -26,14 +26,34 @@ return [
|
|||
'createSuccess' => 'Podcast has been successfully created!',
|
||||
'editSuccess' => 'Podcast has been successfully updated!',
|
||||
'importSuccess' => 'Podcast has been successfully imported!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'cover' => 'Podcast cover',
|
||||
'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast banner',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio with at least 1500px wide.',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Delete podcast banner',
|
||||
'title' => 'Title',
|
||||
'handle' => 'Handle',
|
||||
|
|
@ -90,6 +110,9 @@ return [
|
|||
'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.',
|
||||
'new_feed_url' => 'New feed URL',
|
||||
'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnership',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link URL',
|
||||
|
|
@ -219,6 +242,12 @@ return [
|
|||
'film_reviews' => 'Film Reviews',
|
||||
'tv_reviews' => 'TV Reviews',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'By {publisher}',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
|||
|
||||
return [
|
||||
'warning' =>
|
||||
'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.',
|
||||
'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.',
|
||||
'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.',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ return [
|
|||
'episodes' => 'Episodes',
|
||||
'episode-list' => 'All episodes',
|
||||
'episode-create' => 'New episode',
|
||||
'episode-deleted' => 'Recycle bin',
|
||||
'analytics' => 'Analytics',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
'site_icon' => 'Site icon',
|
||||
'site_icon_delete' => 'Delete site icon',
|
||||
'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.',
|
||||
'site_icon_helper' => 'Icon must be squared with at least 512px wide and tall.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Site name',
|
||||
'site_description' => 'Site description',
|
||||
'submit' => 'Save',
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ return [
|
|||
'publish-edit' => 'edit publication',
|
||||
'unpublish' => 'unpublish',
|
||||
'delete' => 'delete',
|
||||
'deleted' => 'deleted',
|
||||
'delete-permanently' => 'delete permanently',
|
||||
'fediverse' => 'fediverse',
|
||||
'block-lists' => 'block lists',
|
||||
'users' => 'users',
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ return [
|
|||
'not_published' => 'Not published',
|
||||
],
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Episode',
|
||||
'visibility' => 'Visibility',
|
||||
'comments' => 'Comments',
|
||||
|
|
@ -47,6 +56,24 @@ return [
|
|||
'createSuccess' => 'Episode has been successfully created!',
|
||||
'editSuccess' => 'Episode has been successfully updated!',
|
||||
'publishCancelSuccess' => 'Episode publication successfully cancelled!',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
|
|
@ -57,7 +84,7 @@ return [
|
|||
'cover' => 'Episode cover',
|
||||
'cover_hint' =>
|
||||
'If you do not set a cover, the podcast cover will be used instead.',
|
||||
'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Title',
|
||||
'title_hint' =>
|
||||
'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.',
|
||||
|
|
@ -147,7 +174,7 @@ return [
|
|||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.",
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'I understand, I want to delete the episode',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ return [
|
|||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared with at least 400px wide and tall.',
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Full name',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue