chore: new Crowdin updates
This commit is contained in:
parent
3ce6541003
commit
9843ce3882
|
@ -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}',
|
||||
|
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
],
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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.',
|
||||
],
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
];
|
||||
|
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
],
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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.',
|
||||
],
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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}',
|
||||
|
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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',
|
||||
],
|
||||
];
|
|
@ -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é',
|
||||
];
|
|
@ -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.',
|
||||
],
|
||||
];
|
|
@ -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',
|
||||
];
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
:::
|
|
@ -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
|
||||
```
|
|
@ -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…
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
:::
|
|
@ -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
|
||||
```
|
|
@ -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…
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
:::
|
|
@ -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
|
||||
```
|
|
@ -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…
|
|
@ -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',
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue