From d76a1d9feeb7f21bffeab4cef2f6e03c70f340aa Mon Sep 17 00:00:00 2001 From: crowdin <project2_bot@noreply.code.castopod.org> Date: Thu, 20 Oct 2022 07:55:28 +0000 Subject: [PATCH] chore: new Crowdin updates --- app/Language/ko/Comment.php | 34 ++ app/Language/ko/Common.php | 30 ++ app/Language/ko/Episode.php | 33 ++ app/Language/ko/Fediverse.php | 37 +++ app/Language/ko/Home.php | 20 ++ app/Language/ko/Page.php | 17 + app/Language/ko/Podcast.php | 53 +++ app/Language/ko/Post.php | 40 +++ docs/src/ar/getting-started/update.md | 39 ++- docs/src/br/getting-started/update.md | 39 ++- docs/src/ca/getting-started/update.md | 94 +++--- docs/src/de/getting-started/update.md | 40 ++- docs/src/el/getting-started/update.md | 40 ++- docs/src/es/getting-started/update.md | 92 +++--- docs/src/fa/getting-started/update.md | 40 ++- docs/src/fr/getting-started/update.md | 96 +++--- docs/src/gd/getting-started/update.md | 40 ++- docs/src/gl/getting-started/update.md | 40 ++- docs/src/id/getting-started/update.md | 40 ++- docs/src/it/getting-started/update.md | 39 ++- docs/src/ko/getting-started/docker.md | 148 +++++++++ docs/src/ko/getting-started/install.md | 185 +++++++++++ docs/src/ko/getting-started/security.md | 26 ++ docs/src/ko/getting-started/update.md | 109 ++++++ docs/src/ko/index.md | 295 +++++++++++++++++ docs/src/nl/getting-started/update.md | 40 ++- docs/src/nn-NO/getting-started/update.md | 93 +++--- docs/src/oc/getting-started/update.md | 40 ++- docs/src/pl/getting-started/update.md | 39 ++- docs/src/pt-BR/getting-started/update.md | 92 +++--- docs/src/pt/getting-started/update.md | 40 ++- docs/src/ru/getting-started/update.md | 39 ++- docs/src/sk/getting-started/update.md | 40 ++- docs/src/sv/getting-started/update.md | 40 ++- docs/src/zh-Hans/getting-started/update.md | 84 +++-- modules/Admin/Language/ar/AboutCastopod.php | 22 ++ modules/Admin/Language/ar/Breadcrumb.php | 2 + modules/Admin/Language/ar/Navigation.php | 1 + modules/Admin/Language/br/AboutCastopod.php | 22 ++ modules/Admin/Language/br/Breadcrumb.php | 2 + modules/Admin/Language/br/Navigation.php | 1 + modules/Admin/Language/ca/AboutCastopod.php | 22 ++ modules/Admin/Language/ca/Breadcrumb.php | 2 + modules/Admin/Language/ca/Navigation.php | 1 + modules/Admin/Language/de/AboutCastopod.php | 22 ++ modules/Admin/Language/de/Breadcrumb.php | 2 + modules/Admin/Language/de/Navigation.php | 1 + modules/Admin/Language/el/AboutCastopod.php | 22 ++ modules/Admin/Language/el/Breadcrumb.php | 2 + modules/Admin/Language/el/Navigation.php | 1 + modules/Admin/Language/es/AboutCastopod.php | 22 ++ modules/Admin/Language/es/Breadcrumb.php | 2 + modules/Admin/Language/es/Navigation.php | 1 + modules/Admin/Language/fa/AboutCastopod.php | 22 ++ modules/Admin/Language/fa/Breadcrumb.php | 2 + modules/Admin/Language/fa/Navigation.php | 1 + modules/Admin/Language/fr/AboutCastopod.php | 22 ++ modules/Admin/Language/fr/Breadcrumb.php | 2 + modules/Admin/Language/fr/Navigation.php | 1 + modules/Admin/Language/gd/AboutCastopod.php | 22 ++ modules/Admin/Language/gd/Breadcrumb.php | 2 + modules/Admin/Language/gd/Navigation.php | 1 + modules/Admin/Language/gl/AboutCastopod.php | 22 ++ modules/Admin/Language/gl/Breadcrumb.php | 2 + modules/Admin/Language/gl/Navigation.php | 1 + modules/Admin/Language/id/AboutCastopod.php | 22 ++ modules/Admin/Language/id/Breadcrumb.php | 2 + modules/Admin/Language/id/Navigation.php | 1 + modules/Admin/Language/it/AboutCastopod.php | 22 ++ modules/Admin/Language/it/Breadcrumb.php | 2 + modules/Admin/Language/it/Navigation.php | 1 + modules/Admin/Language/ko/AboutCastopod.php | 22 ++ modules/Admin/Language/ko/Breadcrumb.php | 54 +++ modules/Admin/Language/ko/Charts.php | 40 +++ modules/Admin/Language/ko/Common.php | 51 +++ modules/Admin/Language/ko/Countries.php | 264 +++++++++++++++ modules/Admin/Language/ko/Dashboard.php | 28 ++ modules/Admin/Language/ko/Episode.php | 213 ++++++++++++ .../Admin/Language/ko/EpisodeNavigation.php | 23 ++ modules/Admin/Language/ko/Fediverse.php | 32 ++ modules/Admin/Language/ko/Home.php | 14 + modules/Admin/Language/ko/Install.php | 61 ++++ modules/Admin/Language/ko/Navigation.php | 42 +++ modules/Admin/Language/ko/Notifications.php | 19 ++ modules/Admin/Language/ko/Page.php | 30 ++ modules/Admin/Language/ko/Pager.php | 21 ++ modules/Admin/Language/ko/Person.php | 65 ++++ modules/Admin/Language/ko/Platforms.php | 30 ++ modules/Admin/Language/ko/Podcast.php | 310 ++++++++++++++++++ modules/Admin/Language/ko/PodcastImport.php | 37 +++ .../Admin/Language/ko/PodcastNavigation.php | 38 +++ modules/Admin/Language/ko/Settings.php | 58 ++++ modules/Admin/Language/ko/Soundbite.php | 31 ++ modules/Admin/Language/ko/Validation.php | 18 + modules/Admin/Language/ko/VideoClip.php | 72 ++++ modules/Admin/Language/nl/AboutCastopod.php | 22 ++ modules/Admin/Language/nl/Breadcrumb.php | 2 + modules/Admin/Language/nl/Navigation.php | 1 + .../Admin/Language/nn-NO/AboutCastopod.php | 22 ++ modules/Admin/Language/nn-NO/Breadcrumb.php | 2 + modules/Admin/Language/nn-NO/Navigation.php | 1 + modules/Admin/Language/oc/AboutCastopod.php | 22 ++ modules/Admin/Language/oc/Breadcrumb.php | 2 + modules/Admin/Language/oc/Navigation.php | 1 + modules/Admin/Language/pl/AboutCastopod.php | 22 ++ modules/Admin/Language/pl/Breadcrumb.php | 2 + modules/Admin/Language/pl/Navigation.php | 1 + .../Admin/Language/pt-BR/AboutCastopod.php | 22 ++ modules/Admin/Language/pt-BR/Breadcrumb.php | 2 + modules/Admin/Language/pt-BR/Navigation.php | 1 + modules/Admin/Language/pt/AboutCastopod.php | 22 ++ modules/Admin/Language/pt/Breadcrumb.php | 2 + modules/Admin/Language/pt/Navigation.php | 1 + modules/Admin/Language/ru/AboutCastopod.php | 22 ++ modules/Admin/Language/ru/Breadcrumb.php | 2 + modules/Admin/Language/ru/Navigation.php | 1 + modules/Admin/Language/sk/AboutCastopod.php | 22 ++ modules/Admin/Language/sk/Breadcrumb.php | 2 + modules/Admin/Language/sk/Navigation.php | 1 + modules/Admin/Language/sv/AboutCastopod.php | 22 ++ modules/Admin/Language/sv/Breadcrumb.php | 2 + modules/Admin/Language/sv/Navigation.php | 1 + .../Admin/Language/zh-Hans/AboutCastopod.php | 22 ++ modules/Admin/Language/zh-Hans/Breadcrumb.php | 2 + modules/Admin/Language/zh-Hans/Navigation.php | 1 + modules/Auth/Language/ar/Auth.php | 93 ++++++ modules/Auth/Language/br/Auth.php | 93 ++++++ modules/Auth/Language/ca/Auth.php | 93 ++++++ modules/Auth/Language/de/Auth.php | 93 ++++++ modules/Auth/Language/el/Auth.php | 93 ++++++ modules/Auth/Language/es/Auth.php | 93 ++++++ modules/Auth/Language/fa/Auth.php | 93 ++++++ modules/Auth/Language/fr/Auth.php | 93 ++++++ modules/Auth/Language/gd/Auth.php | 93 ++++++ modules/Auth/Language/gl/Auth.php | 93 ++++++ modules/Auth/Language/id/Auth.php | 93 ++++++ modules/Auth/Language/it/Auth.php | 93 ++++++ modules/Auth/Language/ko/Auth.php | 93 ++++++ modules/Auth/Language/nl/Auth.php | 93 ++++++ modules/Auth/Language/nn-NO/Auth.php | 93 ++++++ modules/Auth/Language/oc/Auth.php | 93 ++++++ modules/Auth/Language/pl/Auth.php | 93 ++++++ modules/Auth/Language/pt-BR/Auth.php | 93 ++++++ modules/Auth/Language/pt/Auth.php | 93 ++++++ modules/Auth/Language/ru/Auth.php | 93 ++++++ modules/Auth/Language/sk/Auth.php | 93 ++++++ modules/Auth/Language/sv/Auth.php | 93 ++++++ modules/Auth/Language/zh-Hans/Auth.php | 93 ++++++ modules/Install/Language/ko/Install.php | 62 ++++ .../Language/ko/PremiumPodcasts.php | 34 ++ .../Language/ko/Subscription.php | 100 ++++++ 151 files changed, 6255 insertions(+), 416 deletions(-) create mode 100644 app/Language/ko/Comment.php create mode 100644 app/Language/ko/Common.php create mode 100644 app/Language/ko/Episode.php create mode 100644 app/Language/ko/Fediverse.php create mode 100644 app/Language/ko/Home.php create mode 100644 app/Language/ko/Page.php create mode 100644 app/Language/ko/Podcast.php create mode 100644 app/Language/ko/Post.php create mode 100644 docs/src/ko/getting-started/docker.md create mode 100644 docs/src/ko/getting-started/install.md create mode 100644 docs/src/ko/getting-started/security.md create mode 100644 docs/src/ko/getting-started/update.md create mode 100644 docs/src/ko/index.md create mode 100644 modules/Admin/Language/ar/AboutCastopod.php create mode 100644 modules/Admin/Language/br/AboutCastopod.php create mode 100644 modules/Admin/Language/ca/AboutCastopod.php create mode 100644 modules/Admin/Language/de/AboutCastopod.php create mode 100644 modules/Admin/Language/el/AboutCastopod.php create mode 100644 modules/Admin/Language/es/AboutCastopod.php create mode 100644 modules/Admin/Language/fa/AboutCastopod.php create mode 100644 modules/Admin/Language/fr/AboutCastopod.php create mode 100644 modules/Admin/Language/gd/AboutCastopod.php create mode 100644 modules/Admin/Language/gl/AboutCastopod.php create mode 100644 modules/Admin/Language/id/AboutCastopod.php create mode 100644 modules/Admin/Language/it/AboutCastopod.php create mode 100644 modules/Admin/Language/ko/AboutCastopod.php create mode 100644 modules/Admin/Language/ko/Breadcrumb.php create mode 100644 modules/Admin/Language/ko/Charts.php create mode 100644 modules/Admin/Language/ko/Common.php create mode 100644 modules/Admin/Language/ko/Countries.php create mode 100644 modules/Admin/Language/ko/Dashboard.php create mode 100644 modules/Admin/Language/ko/Episode.php create mode 100644 modules/Admin/Language/ko/EpisodeNavigation.php create mode 100644 modules/Admin/Language/ko/Fediverse.php create mode 100644 modules/Admin/Language/ko/Home.php create mode 100644 modules/Admin/Language/ko/Install.php create mode 100644 modules/Admin/Language/ko/Navigation.php create mode 100644 modules/Admin/Language/ko/Notifications.php create mode 100644 modules/Admin/Language/ko/Page.php create mode 100644 modules/Admin/Language/ko/Pager.php create mode 100644 modules/Admin/Language/ko/Person.php create mode 100644 modules/Admin/Language/ko/Platforms.php create mode 100644 modules/Admin/Language/ko/Podcast.php create mode 100644 modules/Admin/Language/ko/PodcastImport.php create mode 100644 modules/Admin/Language/ko/PodcastNavigation.php create mode 100644 modules/Admin/Language/ko/Settings.php create mode 100644 modules/Admin/Language/ko/Soundbite.php create mode 100644 modules/Admin/Language/ko/Validation.php create mode 100644 modules/Admin/Language/ko/VideoClip.php create mode 100644 modules/Admin/Language/nl/AboutCastopod.php create mode 100644 modules/Admin/Language/nn-NO/AboutCastopod.php create mode 100644 modules/Admin/Language/oc/AboutCastopod.php create mode 100644 modules/Admin/Language/pl/AboutCastopod.php create mode 100644 modules/Admin/Language/pt-BR/AboutCastopod.php create mode 100644 modules/Admin/Language/pt/AboutCastopod.php create mode 100644 modules/Admin/Language/ru/AboutCastopod.php create mode 100644 modules/Admin/Language/sk/AboutCastopod.php create mode 100644 modules/Admin/Language/sv/AboutCastopod.php create mode 100644 modules/Admin/Language/zh-Hans/AboutCastopod.php create mode 100644 modules/Auth/Language/ar/Auth.php create mode 100644 modules/Auth/Language/br/Auth.php create mode 100644 modules/Auth/Language/ca/Auth.php create mode 100644 modules/Auth/Language/de/Auth.php create mode 100644 modules/Auth/Language/el/Auth.php create mode 100644 modules/Auth/Language/es/Auth.php create mode 100644 modules/Auth/Language/fa/Auth.php create mode 100644 modules/Auth/Language/fr/Auth.php create mode 100644 modules/Auth/Language/gd/Auth.php create mode 100644 modules/Auth/Language/gl/Auth.php create mode 100644 modules/Auth/Language/id/Auth.php create mode 100644 modules/Auth/Language/it/Auth.php create mode 100644 modules/Auth/Language/ko/Auth.php create mode 100644 modules/Auth/Language/nl/Auth.php create mode 100644 modules/Auth/Language/nn-NO/Auth.php create mode 100644 modules/Auth/Language/oc/Auth.php create mode 100644 modules/Auth/Language/pl/Auth.php create mode 100644 modules/Auth/Language/pt-BR/Auth.php create mode 100644 modules/Auth/Language/pt/Auth.php create mode 100644 modules/Auth/Language/ru/Auth.php create mode 100644 modules/Auth/Language/sk/Auth.php create mode 100644 modules/Auth/Language/sv/Auth.php create mode 100644 modules/Auth/Language/zh-Hans/Auth.php create mode 100644 modules/Install/Language/ko/Install.php create mode 100644 modules/PremiumPodcasts/Language/ko/PremiumPodcasts.php create mode 100644 modules/PremiumPodcasts/Language/ko/Subscription.php diff --git a/app/Language/ko/Comment.php b/app/Language/ko/Comment.php new file mode 100644 index 0000000000..1dd8f5eadc --- /dev/null +++ b/app/Language/ko/Comment.php @@ -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', +]; diff --git a/app/Language/ko/Common.php b/app/Language/ko/Common.php new file mode 100644 index 0000000000..1258afcc19 --- /dev/null +++ b/app/Language/ko/Common.php @@ -0,0 +1,30 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + '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', + 'legal_notice' => 'Legal notice', +]; diff --git a/app/Language/ko/Episode.php b/app/Language/ko/Episode.php new file mode 100644 index 0000000000..ebe39336fc --- /dev/null +++ b/app/Language/ko/Episode.php @@ -0,0 +1,33 @@ +<?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', + 'back_to_podcast' => 'Go back to podcast', +]; diff --git a/app/Language/ko/Fediverse.php b/app/Language/ko/Fediverse.php new file mode 100644 index 0000000000..32f54c074f --- /dev/null +++ b/app/Language/ko/Fediverse.php @@ -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', + ], +]; diff --git a/app/Language/ko/Home.php b/app/Language/ko/Home.php new file mode 100644 index 0000000000..1518239bd9 --- /dev/null +++ b/app/Language/ko/Home.php @@ -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', +]; diff --git a/app/Language/ko/Page.php b/app/Language/ko/Page.php new file mode 100644 index 0000000000..7cd606694e --- /dev/null +++ b/app/Language/ko/Page.php @@ -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.', + ], +]; diff --git a/app/Language/ko/Podcast.php b/app/Language/ko/Podcast.php new file mode 100644 index 0000000000..9b1e749aa1 --- /dev/null +++ b/app/Language/ko/Podcast.php @@ -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', +]; diff --git a/app/Language/ko/Post.php b/app/Language/ko/Post.php new file mode 100644 index 0000000000..58d1cf8002 --- /dev/null +++ b/app/Language/ko/Post.php @@ -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', +]; diff --git a/docs/src/ar/getting-started/update.md b/docs/src/ar/getting-started/update.md index 51e372ee8d..76668ae3eb 100644 --- a/docs/src/ar/getting-started/update.md +++ b/docs/src/ar/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,18 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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? + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/br/getting-started/update.md b/docs/src/br/getting-started/update.md index 51e372ee8d..76668ae3eb 100644 --- a/docs/src/br/getting-started/update.md +++ b/docs/src/br/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,18 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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? + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/ca/getting-started/update.md b/docs/src/ca/getting-started/update.md index cd28237259..b6a4832a4a 100644 --- a/docs/src/ca/getting-started/update.md +++ b/docs/src/ca/getting-started/update.md @@ -9,70 +9,86 @@ Després d'instal·lar Castopod, és possible que vulgueu actualitzar la vostra instà ncia a la darrera versió per gaudir de les últimes funcions ✨, correccions d'errors 🛠i millores de rendiment âš¡. -## Instruccions d'actualització automà tica +## Update instructions -> Aviat... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Instruccions d'actualització manual + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) -1. Aneu a la - [pà gina de llançaments](https://code.castopod.org/adaures/castopod/-/releases) - i comproveu si la vostra instà ncia està actualitzada amb la darrera versió de - Castopod +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 - - [On puc trobar la meva versió de Castopod?](#where-can-i-find-my-castopod-version) + - cf. + [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) -2. Baixeu l'últim paquet de llançament anomenat `Castopod Package`, podeu triar - entre els fitxers `zip` o `tar.gz` +2. Download the latest release package named `Castopod Package`, you may choose + between the `zip` or `tar.gz` archives - - âš ï¸ Assegureu-vos de descarregar el paquet Castopod i **NO** el codi font + - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) -3. Al vostre servidor: +3. On your server: - - Elimina tots els fitxers excepte `.env` i `public/media` - - Copieu els fitxers nous del paquet descarregat al vostre servidor + - Remove all files except `.env` and `public/media` + - Copy the new files from the downloaded package into your server - ::: info Nota + ::: info Note - És possible que hà giu de restablir els permisos dels fitxers durant el - procés d'instal·lació. Comproveu els [Detalls de seguretat](./security.md). + You may need to reset files permissions as during the install process. + Check [Security Concerns](./security.md). ::: -4. Les diferents versions poden incloure instruccions d'actualització - addicionals (vegeu la - [pà gina de versions](https://code.castopod.org/adaures/castopod/-/releases)). - Normalment són scripts de migració de bases de dades en format `.sql` per - actualitzar l'esquema de la base de dades. +4. Update your database schema from your `Castopod Admin` > `About` page or by + running: + + ```bash + php spark castopod:database-update + ``` + +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨ Enjoy your fresh instance, you're all done! + +::: info Note - - 👉 Assegureu-vos que executeu els scripts al vostre panell phpmyadmin o - utilitzeu la lÃnia d'ordres per actualitzar la base de dades juntament amb - els fitxers del paquet. - - [Fa molt de temps que no actualitzo la meva instà ncia... Què hauria de fer?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). -5. Si utilitzeu redis, esborreu la memòria cau. -6. ✨ Gaudiu de la vostra nova instà ncia, tot fet i preparat! +- 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) + +::: + +## Fully Automated updates + +> Aviat... 👀 ## Preguntes més freqüents (FAQ) ### On puc trobar la meva versió de Castopod? -Aneu al vostre panell de control de Castopod, la versió es mostra a la cantonada -inferior esquerra. +Go to your Castopod admin panel, the version is displayed on the bottom left +corner. -Alternativament, podeu trobar la versió al fitxer -`app > Config > Constants.php`. +Alternatively, you can find the version in the `app > Config > Constants.php` +file. ### Fa temps que no actualitzo la meva instà ncia... Què hauria de fer? -Cap problema. Només heu d'obtenir l'última versió tal com es descriu -anteriorment. Només, quan seguiu les instruccions de la versió en qüestió (4), -realitzeu-les de manera seqüencial, de la més antiga a la més nova. +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. > És possible que vulgueu fer una còpia de seguretat de la vostra instà ncia en > funció del temps que no heu actualitzat Castopod. -Per exemple, si sou a `v1.0.0-alpha.42` i voleu actualitzar a `v1.0.0-beta.1`: +For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to +`v1.0.0-beta.1`: 0. (molt recomanable) Feu una còpia de seguretat dels vostres fitxers i base de dades. @@ -88,7 +104,7 @@ Per exemple, si sou a `v1.0.0-alpha.42` i voleu actualitzar a `v1.0.0-beta.1`: ### Hauria de fer una còpia de seguretat abans d'actualitzar? -T'aconsellem que ho facis, perquè no ho perdis tot si alguna cosa va malament! +We advise you do, so you don't lose everything if anything goes wrong! -De manera més general, us aconsellem que feu còpies de seguretat periòdiques -dels vostres fitxers i base de dades de Castopod per evitar que ho perdeu tot... +More generally, we advise you make regular backups of your Castopod files and +database to prevent you from losing it all… diff --git a/docs/src/de/getting-started/update.md b/docs/src/de/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/de/getting-started/update.md +++ b/docs/src/de/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/el/getting-started/update.md b/docs/src/el/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/el/getting-started/update.md +++ b/docs/src/el/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/es/getting-started/update.md b/docs/src/es/getting-started/update.md index a5dd5b173e..601afbebbe 100644 --- a/docs/src/es/getting-started/update.md +++ b/docs/src/es/getting-started/update.md @@ -9,75 +9,85 @@ 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 âš¡. -## Instrucciones de actualización automática +## Update instructions -> Próximamente... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Instrucciones de actualización manual + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) -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 +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. - [¿Dónde puedo encontrar mi versión de Castopod?](#where-can-i-find-my-castopod-version) + [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) -2. Descargue el último paquete de lanzamiento llamado `Paquete Castopod`, puede - elegir entre los archivos `zip` o `tar.gz` +2. Download the latest release package named `Castopod Package`, you may choose + between the `zip` or `tar.gz` archives - - âš ï¸ Asegúrate de descargar el paquete de Castopod y **NO** el código fuente + - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) -3. En tu servidor: +3. On your server: - - Eliminar todos los archivos excepto `.env` y la carpeta `public/media` - - Copie los nuevos archivos del paquete descargado en su servidor + - Remove all files except `.env` and `public/media` + - Copy the new files from the downloaded package into your server - ::: Nota de información + ::: info Note - Es posible que necesite restablecer los permisos de los archivos después el - proceso de instalación. Compruebe - [preocupaciones de seguridad](./security.md). + You may need to reset files permissions as during the install process. + Check [Security Concerns](./security.md). ::: -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. +4. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 ¡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. + ```bash + php spark castopod:database-update + ``` + +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨ Enjoy your fresh instance, you're all done! -No he actualizado mi instancia en mucho tiempo… ¿Qué debo hacer?</p></li> </ul> +::: info Note - 5. Si estás usando redis, limpia tu caché. +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). -6. ✨ ¡Disfruta de tu instancia recién instalada, todo listo! +- 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) + +::: + +## Fully Automated updates + +> Próximamente... 👀 ## Preguntas Frecuentes (FAQ) ### ¿Dónde puedo encontrar mi versión de Castopod? -Ve al panel de administración de Castopod, la versión se muestra en la esquina -inferior izquierda. +Go to your Castopod admin panel, the version is displayed on the bottom left +corner. -Alternativamente, puedes encontrar la versión en el archivo -`app > Config > Constants.php`. +Alternatively, you can find the version in the `app > Config > Constants.php` +file. ### No he actualizado mi instancia en mucho tiempo… ¿Qué debo hacer? -¡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. +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. > 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 +For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to `v1.0.0-beta.1`: 0. (altamente recomendado) Haga una copia de seguridad de sus archivos y base de @@ -94,7 +104,7 @@ Por ejemplo, si estás en `v1.0.0-alpha.42` y te gustarÃa actualizar a ### ¿Debo hacer una copia de seguridad antes de actualizar? -Te aconsejamos que hagas, asà que no lo pierdas todo si algo sale mal! +We advise you do, so you don't lose everything if anything goes wrong! -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… +More generally, we advise you make regular backups of your Castopod files and +database to prevent you from losing it all… diff --git a/docs/src/fa/getting-started/update.md b/docs/src/fa/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/fa/getting-started/update.md +++ b/docs/src/fa/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/fr/getting-started/update.md b/docs/src/fr/getting-started/update.md index de303a2b84..36221d24c1 100644 --- a/docs/src/fr/getting-started/update.md +++ b/docs/src/fr/getting-started/update.md @@ -9,75 +9,86 @@ Après avoir installé Castopod, vous pouvez mettre à jour votre instance vers dernière version afin de profiter des dernières fonctionnalités ✨, des corrections de bugs 🛠et des améliorations de performance âš¡. -## Instructions de mise à jour automatique +## Update instructions -> Prochainement... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Instructions de mise à jour manuelle + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) -1. Allez sur la - [page de notes de versions](https://code.castopod.org/adaures/castopod/-/releases) - et vérifiez si votre instance est à jour avec la dernière version de - Castopod. +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. Téléchargez la dernière version du paquet nommé `Castopod Package`. Vous - pouvez choisir entre les archives au format `zip` ou `tar.gz`. +2. Download the latest release package named `Castopod Package`, you may choose + between the `zip` or `tar.gz` archives - - âš ï¸ Assurez-vous de bien télécharger le paquet Castopod `Castopod Package` - et **PAS** le code source. + - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) -3. Sur votre serveur : +3. On your server: - - Supprimer tous les fichiers sauf `.env` et `public/media` - - Copiez les nouveaux fichiers du package téléchargé sur votre serveur. + - Remove all files except `.env` and `public/media` + - Copy the new files from the downloaded package into your server - ::: info Nota Bene + ::: info Note - Vous devrez peut-être re-définir les autorisations de fichiers comme - effectué durant le processus d'installation. Vérifiez les - [questions de sécurité](./security.md). + You may need to reset files permissions as during the install process. + Check [Security Concerns](./security.md). ::: -4. Les versions peuvent être accompagnées d'instructions de mise à jour - supplémentaires (cf. la - [page des notes de versions](https://code.castopod.org/adaures/castopod/-/releases)). - Il s'agit généralement de scripts de migration de base de données au format - `.sql` qui mettent à jour le schéma de votre base de données. +4. Update your database schema from your `Castopod Admin` > `About` page or by + running: + + ```bash + php spark castopod:database-update + ``` + +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨ Enjoy your fresh instance, you're all done! + +::: info Note - - 👉 Assurez-vous d'exécuter les scripts sur votre interface phpmyadmin ou - utilisez la ligne de commande pour mettre à jour la base de données avec - les fichiers du paquet ! - - Je n'ai pas mis à jour mon instance depuis longtemps… Que devrais-je faire - ? +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). -5. Si vous utilisez redis, effacez votre cache. -6. ✨ Votre nouvelle instance est prête ! +- 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) + +::: + +## Fully Automated updates + +> Prochainement... 👀 ## Foire Aux Questions (FAQ) ### Où puis-je trouver ma version de Castopod ? -Allez dans votre panneau d'administration de Castopod, la version s'affiche en -bas à gauche. +Go to your Castopod admin panel, the version is displayed on the bottom left +corner. -Vous pouvez également trouver la version dans le fichier -`app > Config > Constants.php`. +Alternatively, you can find the version in the `app > Config > Constants.php` +file. ### [Je n'ai pas mis à jour mon instance depuis longtemps… Que devrais-je faire ?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) -Aucun souci ! Il suffit d'obtenir la dernière version comme décrit ci-dessus. -Lorsque vous exécutez les instructions de mise à jour (4), lancez-les -séquentiellement, de la plus ancienne à la plus récente. +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. > Vous devriez sauvegarder votre instance selon la date de votre dernière mise à > jour de Castopod. -Par exemple, si vous êtes en `v1.0.0-alpha.42` et souhaitez mettre à jour vers -la `v1.0.0-beta.1` : +For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to +`v1.0.0-beta.1`: 0. (fortement recommandé) Faites une sauvegarde de vos fichiers et de votre base de données. @@ -92,8 +103,7 @@ la `v1.0.0-beta.1` : ### Dois-je faire une sauvegarde avant de mettre à jour ? -Nous vous conseillons de le faire, afin de ne pas tout perdre si quelque chose -se passait mal ! +We advise you do, so you don't lose everything if anything goes wrong! -Plus généralement, nous vous conseillons de faire des sauvegardes régulières de -vos fichiers Castopod et de votre base de données afin d'éviter de tout perdre… +More generally, we advise you make regular backups of your Castopod files and +database to prevent you from losing it all… diff --git a/docs/src/gd/getting-started/update.md b/docs/src/gd/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/gd/getting-started/update.md +++ b/docs/src/gd/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/gl/getting-started/update.md b/docs/src/gl/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/gl/getting-started/update.md +++ b/docs/src/gl/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/id/getting-started/update.md b/docs/src/id/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/id/getting-started/update.md +++ b/docs/src/id/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/it/getting-started/update.md b/docs/src/it/getting-started/update.md index 51e372ee8d..76668ae3eb 100644 --- a/docs/src/it/getting-started/update.md +++ b/docs/src/it/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,18 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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? + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/ko/getting-started/docker.md b/docs/src/ko/getting-started/docker.md new file mode 100644 index 0000000000..ededc58251 --- /dev/null +++ b/docs/src/ko/getting-started/docker.md @@ -0,0 +1,148 @@ +--- +title: Official Docker images +sidebarDepth: 3 +--- + +# Official Docker images + +Castopod pushes 2 Docker images to the Docker Hub during its automated build +process: + +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle + with all of Castopod dependencies +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an + Nginx configuration for Castopod + +Additionally, Castopod requires a MySQL-compatible database. A Redis database +can be added as a cache handler. + +## Supported tags + +- `develop` [unstable], latest development branch build +- `beta` [stable], latest beta version build +- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`) + +## Example usage + +1. Install [docker](https://docs.docker.com/get-docker/) and + [docker-compose](https://docs.docker.com/compose/install/) +2. Create a `docker-compose.yml` file with the following: + + ```yml + version: "3.7" + + services: + app: + image: castopod/app:beta + container_name: "castopod-app" + volumes: + - castopod-media:/opt/castopod/public/media + environment: + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + CP_BASEURL: "http://castopod.example.com" + CP_ANALYTICS_SALT: changeme + CP_CACHE_HANDLER: redis + CP_REDIS_HOST: redis + networks: + - castopod-app + - castopod-db + restart: unless-stopped + + web-server: + image: castopod/web-server:beta + container_name: "castopod-web-server" + volumes: + - castopod-media:/var/www/html/media + networks: + - castopod-app + ports: + - 8080:80 + restart: unless-stopped + + mariadb: + image: mariadb:10.5 + container_name: "castopod-mariadb" + networks: + - castopod-db + volumes: + - castopod-db:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: changeme + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + restart: unless-stopped + + redis: + image: redis:7.0-alpine + container_name: "castopod-redis" + volumes: + - castopod-cache:/data + networks: + - castopod-app + + volumes: + castopod-media: + castopod-db: + castopod-cache: + + networks: + castopod-app: + castopod-db: + ``` + + You have to adapt some variables to your needs (e.g. `CP_BASEURL`, + `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`). + +3. Setup a reverse proxy for TLS (SSL/HTTPS) + + TLS is mandatory for ActivityPub to work. This job can easily be handled by + a reverse proxy, for example with [Caddy](https://caddyserver.com/): + + ``` + #castopod + castopod.example.com { + reverse_proxy localhost:8080 + } + ``` + +4. Run `docker-compose up -d`, wait for it to initialize and head on to + `https://castopod.example.com/cp-install` to finish setting up Castopod! + +5. You're all set, start podcasting! 🎙ï¸ðŸš€ + +## Environment Variables + +- **castopod/app** + + | Variable name | Type (`default`) | Default | + | ---------------------------- | ----------------------- | ---------------- | + | **`CP_BASEURL`** | string | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | string | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?string | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?string | `null` | + | **`CP_REDIS_PORT`** | ?number | `6379` | + | **`CP_REDIS_DATABASE`** | ?number | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | + | **`CP_EMAIL_FROM`** | ?string | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | + +- **castopod/web-server** + + | Variable name | Type | Default | + | --------------------- | ------- | ------- | + | **`CP_APP_HOSTNAME`** | ?string | `"app"` | diff --git a/docs/src/ko/getting-started/install.md b/docs/src/ko/getting-started/install.md new file mode 100644 index 0000000000..3d73187d08 --- /dev/null +++ b/docs/src/ko/getting-started/install.md @@ -0,0 +1,185 @@ +--- +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. + +::: tip Note + +We've released official Docker images for Castopod! + +If you prefer using Docker, you may skip this and go straight to the +[docker documentation](./docker.md) for Castopod. + +::: + +## 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`, +`REFERENCES`, `CREATE VIEW`. + +### (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 edit the `.env` file manually +based on the `.env.example` file. + +::: + +### Email/SMTP setup + +Email configuration is required for some features to work properly (eg. +retrieving your forgotten password, sending instructions to premium subscribers, +…) + +You may add your email configuration in your instance's `.env` like so: + +```ini +# […] + +email.fromEmail="your_email_address" +email.SMTPHost="your_smtp_host" +email.SMTPUser="your_smtp_user" +email.SMTPPass="your_smtp_password" +``` + +#### Email config options + +| Variable name | Type | Default | +| ---------------- | -------------------- | ------------ | +| **`fromEmail`** | string | `undefined` | +| **`fromName`** | string | `"Castopod"` | +| **`SMTPHost`** | string | `undefined` | +| **`SMTPUser`** | string | `undefined` | +| **`SMTPPass`** | string | `undefined` | +| **`SMTPPort`** | number | `25` | +| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | + +## 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> diff --git a/docs/src/ko/getting-started/security.md b/docs/src/ko/getting-started/security.md new file mode 100644 index 0000000000..e205698df8 --- /dev/null +++ b/docs/src/ko/getting-started/security.md @@ -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 +``` diff --git a/docs/src/ko/getting-started/update.md b/docs/src/ko/getting-started/update.md new file mode 100644 index 0000000000..98e019fbc7 --- /dev/null +++ b/docs/src/ko/getting-started/update.md @@ -0,0 +1,109 @@ +--- +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 âš¡. + +## Update instructions + +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. + + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) + +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 + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) + +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. Update your database schema from your `Castopod Admin` > `About` page or by + running: + + ```bash + php spark castopod:database-update + ``` + +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨ Enjoy your fresh instance, you're all done! + +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + +## 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… diff --git a/docs/src/ko/index.md b/docs/src/ko/index.md new file mode 100644 index 0000000000..d89daccba1 --- /dev/null +++ b/docs/src/ko/index.md @@ -0,0 +1,295 @@ +--- +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 + - 💎 Premium podcasts +- 📡 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, German, + Brazilian Portuguese & Spanish… with + [more to come](https://translate.castopod.org)! + +## 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. + +## Contributors ✨ + +Thanks goes to these wonderful people +([emoji key](https://allcontributors.org/docs/en/emoji-key)): + +<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> +<!-- prettier-ignore-start --> +<!-- markdownlint-disable --> +<table> + <tr> + <td align="center"><a href="https://github.com/yassinedoghri"><img src="https://code.castopod.org/uploads/-/system/user/avatar/3/avatar.png?s=100" width="100px;" alt=""/><br /><sub><b>Yassine Doghri</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/issues?author_username=yassinedoghri" title="Bug reports">ðŸ›</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Documentation">📖</a> <a href="https://code.castopod.org/adaures/castopod/merge_requests?scope=all&state=all&approver_usernames[]=yassinedoghri" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-yassinedoghri" title="Maintenance">🚧</a> <a href="#content-yassinedoghri" title="Content">🖋</a> <a href="#design-yassinedoghri" title="Design">🎨</a> <a href="#a11y-yassinedoghri" title="Accessibility">ï¸ï¸ï¸ï¸â™¿ï¸</a> <a href="https://translate.castopod.org" title="Translation">ðŸŒ</a> <a href="#question-yassinedoghri" title="Answering Questions">💬</a> <a href="#mentoring-yassinedoghri" title="Mentoring">🧑â€ðŸ«</a> <a href="#infra-yassinedoghri" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#ideas-yassinedoghri" title="Ideas, Planning, & Feedback">🤔</a> <a href="#projectManagement-yassinedoghri" title="Project Management">📆</a> <a href="https://blog.castopod.org/author/yassinedoghri/" title="Blogposts">ðŸ“</a></td> + <td align="center"><a href="https://code.castopod.org/benjamin"><img src="https://code.castopod.org/uploads/-/system/user/avatar/2/avatar.png?s=100" width="100px;" alt=""/><br /><sub><b>Benjamin Bellamy</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/issues?author_username=benjamin" title="Bug reports">ðŸ›</a> <a href="https://code.castopod.org/adaures/castopod/merge_requests?scope=all&state=all&approver_usernames[]=benjamin" title="Reviewed Pull Requests">👀</a> <a href="#content-benjamin" title="Content">🖋</a> <a href="https://translate.castopod.org" title="Translation">ðŸŒ</a> <a href="#question-benjamin" title="Answering Questions">💬</a> <a href="#infra-benjamin" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#ideas-benjamin" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://blog.castopod.org/author/benjamin-bellamy/" title="Blogposts">ðŸ“</a> <a href="#projectManagement-benjamin" title="Project Management">📆</a> <a href="#talk-benjamin" title="Talks">📢</a></td> + <td align="center"><a href="https://github.com/ola-hn"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Ola Hneini</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/merge_requests?scope=all&state=all&approver_usernames[]=ola" title="Reviewed Pull Requests">👀</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Documentation">📖</a> <a href="#maintenance-ola" title="Maintenance">🚧</a> <a href="#question-ola" title="Answering Questions">💬</a> <a href="#ideas-ola" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://mamot.fr/@rdelaage"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Romain de Laage</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="#infra-rdelaage" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Documentation">📖</a> <a href="https://translate.castopod.org" title="Translation">ðŸŒ</a> <a href="#ideas-rdelaage" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://twitter.com/lyonelbernard"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Lyonel Bernard</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=Lyonel" title="Bug reports">ðŸ›</a> <a href="#question-Lyonel" title="Answering Questions">💬</a> <a href="#audio-Lyonel" title="Audio">🔊</a> <a href="#ideas-Lyonel" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://www.crypticchameleon.com/"><img src="https://secure.gravatar.com/avatar/7c2a721b52d0763673a600e8f01bd745?s=80&d=identicon?s=100" width="100px;" alt=""/><br /><sub><b>Christopher Lagonick-Weitzel</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=ctlw83" title="Bug reports">ðŸ›</a> <a href="#question-ctlw83" title="Answering Questions">💬</a> <a href="#audio-ctlw83" title="Audio">🔊</a> <a href="#ideas-ctlw83" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://ernestoacosta.me/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Ernesto Acosta</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=ernestoacostame" title="Bug reports">ðŸ›</a> <a href="#audio-ernestoacostame" title="Audio">🔊</a> <a href="https://translate.castopod.org" title="Translation">ðŸŒ</a> <a href="#question-ernestoacostame" title="Answering Questions">💬</a> <a href="#ideas-ernestoacostame" title="Ideas, Planning, & Feedback">🤔</a></td> + </tr> + <tr> + <td align="center"><a href="https://code.castopod.org/Behel"><img src="https://secure.gravatar.com/avatar/ad63ee8ef8e3db8253d21e5012d2724f?s=80&d=identicon?s=100" width="100px;" alt=""/><br /><sub><b>Bastien Luneteau</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/issues?author_username=Behel" title="Bug reports">ðŸ›</a></td> + <td align="center"><a href="https://www.cecillie.fr/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Cécile Ricordeau</b></sub></a><br /><a href="#design-cecillie" title="Design">🎨</a></td> + <td align="center"><a href="https://code.castopod.org/PatrykMis"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Patryk MiÅ›</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://code.castopod.org/mspanc"><img src="https://secure.gravatar.com/avatar/eed8337939641eac5ad0b570bd6acf96?s=80&d=identicon?s=100" width="100px;" alt=""/><br /><sub><b>Marcin Lewandowski</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=mspanc" title="Bug reports">ðŸ›</a> <a href="#ideas-mspanc" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://code.castopod.org/SJanik"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Sebastian Janik</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a></td> + <td align="center"><a href="https://code.castopod.org/patryk"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Patryk Karczmarczyk</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a></td> + <td align="center"><a href="https://code.castopod.org/ddenis"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>denis d</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=ddenis" title="Bug reports">ðŸ›</a> <a href="#ideas-ddenis" title="Ideas, Planning, & Feedback">🤔</a></td> + </tr> + <tr> + <td align="center"><a href="https://code.castopod.org/douglaskastle"><img src="https://secure.gravatar.com/avatar/b7e652ba4b6bcd440afa069e7f7bc9e6?s=80&d=identicon?s=100" width="100px;" alt=""/><br /><sub><b>Douglas Kastle</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=douglaskastle" title="Bug reports">ðŸ›</a> <a href="#ideas-douglaskastle" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://code.castopod.org/cExplorer"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>cExplorer</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=cExplorer" title="Bug reports">ðŸ›</a> <a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://code.castopod.org/imacrea"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>ImaCrea</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=imacrea" title="Bug reports">ðŸ›</a> <a href="#ideas-imacrea" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://code.castopod.org/jonas"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Jonas S</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a></td> + <td align="center"><a href="https://code.castopod.org/yannL"><img src="https://secure.gravatar.com/avatar/9c46600ce566ec6d526370d8e104b1c8?s=80&d=identicon?s=100" width="100px;" alt=""/><br /><sub><b>LEFEBVRE Yann</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=yannL" title="Bug reports">ðŸ›</a></td> + <td align="center"><a href="https://code.castopod.org/spaetz"><img src="https://secure.gravatar.com/avatar/278e1af65e82993efd0ba7bbbacf6435?s=80&d=identicon?s=100" width="100px;" alt=""/><br /><sub><b>Sebastian Späth</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=spaetz" title="Bug reports">ðŸ›</a> <a href="#ideas-spaetz" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://code.castopod.org/rocky"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>rocky III</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=rocky" title="Bug reports">ðŸ›</a></td> + </tr> + <tr> + <td align="center"><a href="https://code.castopod.org/Regenpfeifer"><img src="https://code.castopod.org/uploads/-/system/user/avatar/103/avatar.png?s=100" width="100px;" alt=""/><br /><sub><b>Hermann Josef Eckl</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=Regenpfeifer" title="Bug reports">ðŸ›</a></td> + <td align="center"><a href="https://code.castopod.org/cyrilledel"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Delhaye Cyrille</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=cyrilledel" title="Bug reports">ðŸ›</a> <a href="#ideas-cyrilledel" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://twitter.com/otetranome"><img src="https://code.castopod.org/uploads/-/system/user/avatar/113/avatar.png?s=100" width="100px;" alt=""/><br /><sub><b>João Leandro</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a> <a href="#ideas-otetranome" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://achouvardas.eu/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Angelos Chouvardas</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://mastodon.fjerland.no/@eivind"><img src="https://mastodon.fjerland.no/system/accounts/avatars/107/769/768/295/192/222/original/e5c985fea6487dcb.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Eivind</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://mastodon.fedi.bzh/@ewen"><img src="https://mastodon.fedi.bzh/system/accounts/avatars/000/000/002/original/6f387690a504ae46.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Ewen</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a> <a href="#ideas-3wen" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://crowdin.com/profile/forght"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15073833/large/82d1e2e443a6df7edc43a7405dfeeb75_default.png?s=100" width="100px;" alt=""/><br /><sub><b>forght</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + </tr> + <tr> + <td align="center"><a href="https://crowdin.com/profile/glottis0q"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15209934/large/8b17ef6a7399f0b82a8198f87c224195.png?s=100" width="100px;" alt=""/><br /><sub><b>glottis0q</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://mstdn.fr/@ButterflyOfFire"><img src="https://static.mstdn.fr/static/accounts/avatars/000/065/901/original/e18d44b28edd0ada.png?s=100" width="100px;" alt=""/><br /><sub><b>ButterflyOfFire</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://github.com/lil5"><img src="https://avatars.githubusercontent.com/u/17646836?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lucian I. Last</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://crowdin.com/profile/luuzviir"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13166188/large/d03ab0abc7ce354b210d836955cd3805_default.png?s=100" width="100px;" alt=""/><br /><sub><b>LuuzViir</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://crowdin.com/profile/cthtc"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15211502/large/ed0651060cb8474a9519b5168bd377c1_default.png?s=100" width="100px;" alt=""/><br /><sub><b>CTHTC</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://crowdin.com/profile/retrograde"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15021651/large/b10c4057f85bf4de49c7fdf01354ecde.jpeg?s=100" width="100px;" alt=""/><br /><sub><b>Russian Retro</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://crowdin.com/profile/mareklach"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13572324/large/3eeba8d569c247ace33862bf4ef4748f.jpeg?s=100" width="100px;" alt=""/><br /><sub><b>Marek L'ach</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + </tr> + <tr> + <td align="center"><a href="https://crowdin.com/profile/gunchleoc"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13043878/large/3223f7b606296a8b1c92c5de39c459a2_default.png?s=100" width="100px;" alt=""/><br /><sub><b>GunChleoc</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://crowdin.com/profile/gabisnow"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15214858/large/5b083bdf9c9e9de67cc6ee72a6c8db18_default.png?s=100" width="100px;" alt=""/><br /><sub><b>GabiSnow</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://crowdin.com/profile/bendaha"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15331656/large/cd92450d2c20202299fb3a0075903e20_default.png?s=100" width="100px;" alt=""/><br /><sub><b>bendaha</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://crowdin.com/profile/samuelroland"><img src="https://crowdin-static.downloads.crowdin.com/avatar/14980053/large/3e154a37d03d6e98ae402ed3f930f4f5.png?s=100" width="100px;" alt=""/><br /><sub><b>Samuel Roland</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://dimitriregnier.net/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Dimitri Regnier</b></sub></a><br /><a href="#ideas-dimregnier" title="Ideas, Planning, & Feedback">🤔</a></td> + <td align="center"><a href="https://im.irithys.com/@thy"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15405614/large/e46d7f8e9f7c05997827563c3a3cf942.jpeg?s=100" width="100px;" alt=""/><br /><sub><b>irithys</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + <td align="center"><a href="https://twitter.com/caos30"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt=""/><br /><sub><b>Sergi</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + </tr> + <tr> + <td align="center"><a href="https://crowdin.com/profile/xosem"><img src="https://crowdin-static.downloads.crowdin.com/avatar/12617257/large/a201650da44fed28890b0e0d8477a663.jpg?s=100" width="100px;" alt=""/><br /><sub><b>ghose (XoseM)</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">ðŸŒ</a></td> + </tr> +</table> + +<!-- markdownlint-restore --> +<!-- prettier-ignore-end --> + +<!-- ALL-CONTRIBUTORS-LIST:END --> + +This project follows the +[all-contributors](https://github.com/all-contributors/all-contributors) +specification. Contributions of any kind welcome! + +## 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 diff --git a/docs/src/nl/getting-started/update.md b/docs/src/nl/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/nl/getting-started/update.md +++ b/docs/src/nl/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/nn-NO/getting-started/update.md b/docs/src/nn-NO/getting-started/update.md index 9fd2b55d19..3f99d4fc8a 100644 --- a/docs/src/nn-NO/getting-started/update.md +++ b/docs/src/nn-NO/getting-started/update.md @@ -8,68 +8,86 @@ sidebarDepth: 3 NÃ¥r du har installert Castopod, kan det vera lurt Ã¥ oppdatera nettstaden din til siste versjonen for Ã¥ fÃ¥ nye funksjonar, ✨, feilrettingar 🛠og betre yting âš¡. -## FramgangsmÃ¥te for Ã¥ oppdatera automatisk +## Update instructions -> Kjem snart... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## FramgangsmÃ¥te for Ã¥ oppdatera manuelt + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) -1. GÃ¥ til - [sida med utgjevingar](https://code.castopod.org/adaures/castopod/-/releases) - og sjÃ¥ om nettstaden din bruker siste utgÃ¥va av Castopod +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 - - jfr. - [Kvar finn eg Castopod-versjonsnummeret?](#where-can-i-find-my-castopod-version) + - cf. + [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) -2. Last ned den nyaste pakka som heiter `Castopod Package`, du kan velja mellom - `zip`- eller `tar.gz`-arkiva +2. Download the latest release package named `Castopod Package`, you may choose + between the `zip` or `tar.gz` archives - - âš ï¸ Pass pÃ¥ at du lastar ned programpakka, og **IKKJE** kjeldekoden + - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) -3. PÃ¥ vevtenaren din: +3. On your server: - - Fjern alle filene utanom `.env` og `public/media` - - Kopier dei nye filene frÃ¥ den nedlasta pakka til vevtenaren din + - Remove all files except `.env` and `public/media` + - Copy the new files from the downloaded package into your server - ::: info + ::: info Note - Det kan henda du mÃ¥ nullstilla filtilgangsrettar slik du gjer nÃ¥r du - installerer. SjÃ¥ [TryggleiksspørsmÃ¥l](./security.md). + You may need to reset files permissions as during the install process. + Check [Security Concerns](./security.md). ::: -4. Nokre utgjevingar kan ha fleire oppdateringsinstruksar (sjÃ¥ - [sida med utgjevingar](https://code.castopod.org/adaures/castopod/-/releases)). - Det gjeld vanlegvis migreringsskript i `.sql`-format for Ã¥ oppdatera - databaseskjemaet ditt. +4. Update your database schema from your `Castopod Admin` > `About` page or by + running: + + ```bash + php spark castopod:database-update + ``` + +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨ Enjoy your fresh instance, you're all done! + +::: info Note - - 👉 Pass pÃ¥ at du køyrer skripta i phpmyadmin-panelet ditt eller - kommandolina for Ã¥ oppdatera databasen i tillegg til pakkefilene! - - jfr. - [Eg har ikkje oppdatert pÃ¥ lenge… Kva skal eg gjera?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). -5. Viss du bruker redis, mÃ¥ du tøma bufferen. -6. ✨ Ferdig! +- 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) + +::: + +## Fully Automated updates + +> Kjem snart... 👀 ## Vanlege spørsmÃ¥l (FAQ) ### Kvar finn eg Castopod-versjonsnummeret? -GÃ¥ til styringspanelet for Castopod. Versjonsnummeret stÃ¥r i nedste venstre -hjørnet. +Go to your Castopod admin panel, the version is displayed on the bottom left +corner. -Du kan òg finna versjonsnummeret i `app > Config > Constants.php`-fila. +Alternatively, you can find the version in the `app > Config > Constants.php` +file. ### Eg har ikkje oppdatert pÃ¥ lenge… Kva skal eg gjera? -Ingen problem! Berre last ned den siste utgÃ¥va som skildra over. Hugs berre at -nÃ¥r du gÃ¥r gjennom utgjevingsinstruksane (4), gÃ¥r du gjennom dei frÃ¥ eldst til -nyast. +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. > Du bør truleg tryggingskopiera nettstaden din, avhengig av kor lenge sidan det > er du oppdaterte Castopod. -Til dømes viss du er pÃ¥ `v1.0.0-alpha.42` og vil oppgradera til `v1.0.0-beta.1`: +For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to +`v1.0.0-beta.1`: 0. (stekt tilrÃ¥dd) Ta ein tryggingskopi av filene og databasen din. @@ -82,8 +100,7 @@ Til dømes viss du er pÃ¥ `v1.0.0-alpha.42` og vil oppgradera til `v1.0.0-beta.1 ### Bør eg tryggingskopiera før eg oppdaterer? -Det bør du. Viss ikkje, kan du mista heile Castopod-nettstaden dersom noko gÃ¥r -gale! +We advise you do, so you don't lose everything if anything goes wrong! -I det heile bør du ta jamnlege tryggingskopiar av Castopod-filene og databasen -for Ã¥ unngÃ¥ Ã¥ mista noko… +More generally, we advise you make regular backups of your Castopod files and +database to prevent you from losing it all… diff --git a/docs/src/oc/getting-started/update.md b/docs/src/oc/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/oc/getting-started/update.md +++ b/docs/src/oc/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/pl/getting-started/update.md b/docs/src/pl/getting-started/update.md index 51e372ee8d..76668ae3eb 100644 --- a/docs/src/pl/getting-started/update.md +++ b/docs/src/pl/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,18 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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? + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/pt-BR/getting-started/update.md b/docs/src/pt-BR/getting-started/update.md index 18449201d3..398b5c0f11 100644 --- a/docs/src/pt-BR/getting-started/update.md +++ b/docs/src/pt-BR/getting-started/update.md @@ -9,71 +9,85 @@ Depois de instalar o Castopod, você pode querer atualizar sua instância para a última versão para desfrutar das últimas funcionalidades ✨, correção de bugs 🛠e melhorias de desempenho âš¡. -## Instruções de atualização automática +## Update instructions -> Em breve... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Instruções para atualização manual + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) -1. Vá para a - [página de versões](https://code.castopod.org/adaures/castopod/-/releases) e - veja se sua instância está atualizada com a última versão do Castopod +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. - [Onde posso encontrar minha versão do Castopod?](#where-can-i-find-my-castopod-version) + [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) -2. Baixe o último pacote de versão chamado `Castopod Package`, você pode - escolher entre os arquivos `zip` ou `tar.gz` +2. Download the latest release package named `Castopod Package`, you may choose + between the `zip` or `tar.gz` archives - - âš ï¸ Certifique-se de baixar o pacote Castopod e **NÃO** o Código Fonte + - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) -3. No seu servidor: +3. On your server: - - Remova todos os arquivos, exceto `.env` e `public/media` - - Copie os novos arquivos do pacote baixado para o seu servidor + - Remove all files except `.env` and `public/media` + - Copy the new files from the downloaded package into your server - ::: info Nota + ::: info Note - Talvez seja necessário redefinir as permissões de arquivos como durante o - processo de instalação. Verifique as - [Questões de segurança](./security.md). + You may need to reset files permissions as during the install process. + Check [Security Concerns](./security.md). ::: -4. Versões podem vir com instruções de atualização adicionais (veja a - [página de versões](https://code.castopod.org/adaures/castopod/-/releases)). - Geralmente são scripts de migração de banco de dados no formato `.sql` para - atualizar seu esquema de banco de dados. +4. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 Certifique-se de executar os scripts em seu painel phpmyadmin ou use a - linha de comando para atualizar o banco de dados junto com os arquivos do - pacote! - - cf. - [Faz muito tempo que não atualizo minha instância… O que devo fazer?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) + ```bash + php spark castopod:database-update + ``` + +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨ Enjoy your fresh instance, you're all done! + +::: info Note -5. Se você estiver usando redis, limpe seu cache. -6. ✨ Aproveite sua instância atualizada, está tudo pronto! +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Em breve... 👀 ## Perguntas frequentes (FAQ) ### Onde posso encontrar minha versão do Castopod? -Vá para o painel de administração do Castopod, a versão é exibida no canto -inferior esquerdo. +Go to your Castopod admin panel, the version is displayed on the bottom left +corner. -Ou então, você pode encontrar a versão no arquivo -`app > Config > Constants.php`. +Alternatively, you can find the version in the `app > Config > Constants.php` +file. ### Faz muito tempo que não atualizo minha instância… O que devo fazer? -Sem problemas! Basta obter a versão mais recente, conforme descrito acima. Só -que, ao passar pelas instruções da versão (4), execute-as sequencialmente, da -mais antiga para a mais recente. +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. > Você pode querer fazer backup de sua instância dependendo de quanto tempo você > não atualizou o Castopod. -Por exemplo, se você estiver na `v1.0.0-alpha.42` e gostaria de atualizar para a +For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to `v1.0.0-beta.1`: 0. (altamente recomendado) Faça um backup de seus arquivos e banco de dados. @@ -89,7 +103,7 @@ Por exemplo, se você estiver na `v1.0.0-alpha.42` e gostaria de atualizar para ### Devo fazer um backup antes de atualizar? -Aconselhamos você a fazer, assim você não perde tudo se algo der errado! +We advise you do, so you don't lose everything if anything goes wrong! -De forma mais geral, recomendamos que você faça backups regulares dos seus -arquivos de Castopod e banco de dados para evitar que você perca tudo… +More generally, we advise you make regular backups of your Castopod files and +database to prevent you from losing it all… diff --git a/docs/src/pt/getting-started/update.md b/docs/src/pt/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/pt/getting-started/update.md +++ b/docs/src/pt/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/ru/getting-started/update.md b/docs/src/ru/getting-started/update.md index 51e372ee8d..76668ae3eb 100644 --- a/docs/src/ru/getting-started/update.md +++ b/docs/src/ru/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,18 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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? + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/sk/getting-started/update.md b/docs/src/sk/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/sk/getting-started/update.md +++ b/docs/src/sk/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/sv/getting-started/update.md b/docs/src/sv/getting-started/update.md index 1f48e27492..98e019fbc7 100644 --- a/docs/src/sv/getting-started/update.md +++ b/docs/src/sv/getting-started/update.md @@ -9,11 +9,13 @@ 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 +## Update instructions -> Coming soon... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## Manual update instructions + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) 1. Go to the [releases page](https://code.castopod.org/adaures/castopod/-/releases) and @@ -26,6 +28,8 @@ improvements âš¡. between the `zip` or `tar.gz` archives - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) 3. On your server: @@ -39,19 +43,31 @@ improvements âš¡. ::: -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. Update your database schema from your `Castopod Admin` > `About` page or by + running: - - 👉 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) + ```bash + php spark castopod:database-update + ``` -5. If you are using redis, clear your cache. +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` 6. ✨ Enjoy your fresh instance, you're all done! +::: info Note + +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). + +- 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) + +::: + +## Fully Automated updates + +> Coming soon... 👀 + ## Frequently asked questions (FAQ) ### Where can I find my Castopod version? diff --git a/docs/src/zh-Hans/getting-started/update.md b/docs/src/zh-Hans/getting-started/update.md index 4662479258..6e8b2b1890 100644 --- a/docs/src/zh-Hans/getting-started/update.md +++ b/docs/src/zh-Hans/getting-started/update.md @@ -8,60 +8,85 @@ sidebarDepth: 3 安装 Castopod åŽï¼Œä½ å¯èƒ½å¸Œæœ›å°†å®žä¾‹æ›´æ–°åˆ°æœ€æ–°ç‰ˆæœ¬ 版本以享å—最新功能 ✨, ä¿®å¤é”™è¯¯ 🛠和性能æå‡ âš¡ã€‚ -## 自动更新说明 +## Update instructions -> å³å°†åˆ°æ¥... 👀 +0. âš ï¸ Before any update, we highly recommend you backup your Castopod files and + database. -## 手动更新说明 + - cf. + [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) -1. 跳转至 [å‘布页é¢](https://code.castopod.org/adaures/castopod/-/releases) 并且 - 查看自己的实例是å¦ä¸ºæœ€æ–°ç‰ˆæœ¬çš„ Castopod +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 - - å‚考 - [在哪里å¯ä»¥æ‰¾åˆ°æˆ‘çš„ Castopod 版本å·ï¼Ÿ](#where-can-i-find-my-castopod-version) + - cf. + [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) -2. 下载命å为 `Castopod Package`çš„æœ€æ–°ç‰ˆæœ¬ï¼Œä½ å¯ä»¥é€‰æ‹© `zip` 或 `tar.gz` 压缩包 +2. Download the latest release package named `Castopod Package`, you may choose + between the `zip` or `tar.gz` archives - - âš ï¸ è¯·ç¡®ä¿ä½ 下载的是 Castopod 软件包而 **ä¸æ˜¯** æºä»£ç + - âš ï¸ Make sure you download the Castopod Package and **NOT** the Source Code + - Note that you can also download the latest package from + [castopod.org](https://castopod.org/) -3. åœ¨ä½ çš„æœåŠ¡å™¨ä¸Šï¼š +3. On your server: - - åˆ é™¤é™¤ `.env` 文件和 `public/media` 目录之外的所有文件 - - 将下载软件包ä¸çš„新文件å¤åˆ¶åˆ°ä½ çš„æœåŠ¡å™¨ä¸ + - Remove all files except `.env` and `public/media` + - Copy the new files from the downloaded package into your server - ::: æ³¨æ„ + ::: info Note - ä½ å¯èƒ½åœ¨æ›´æ–°è¿‡ç¨‹ä¸éœ€è¦é‡ç½®æ–‡ä»¶æƒé™ã€‚ 检查 [安全问题](./security.md)。 + You may need to reset files permissions as during the install process. + Check [Security Concerns](./security.md). ::: -4. 新版本å¯èƒ½æœ‰é¢å¤–的更新说明(请å‚阅 - [å‘布页é¢](https://code.castopod.org/adaures/castopod/-/releases))。 通常以 - `.sql` æ ¼å¼çš„æ•°æ®åº“è¿ç§»è„šæœ¬æ›´æ–°ä½ çš„æ•°æ®åº“结构。 +4. Update your database schema from your `Castopod Admin` > `About` page or by + running: + + ```bash + php spark castopod:database-update + ``` + +5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨ Enjoy your fresh instance, you're all done! + +::: info Note - - 👉 ç¡®ä¿åœ¨ phpmyadmin é¢æ¿ä¸Šè¿è¡Œè„šæœ¬æˆ–使用命令 è¡Œæ¥æ›´æ–°æ•°æ®åº“以åŠåŒ…æ–‡ä»¶ï¼ - - å‚阅 - [我很长时间没有更新我的实例… 我该怎么办?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +Releases may come with additional update instructions (see +[releases page](https://code.castopod.org/adaures/castopod/-/releases)). -5. å¦‚æžœä½ æ£åœ¨ä½¿ç”¨ redis,请清除缓å˜ã€‚ -6. ✨ 享å—ä½ çš„æ–°å®žä¾‹, ä½ å·²ç»æ›´æ–°å®Œæ¯•ï¼ +- 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) + +::: + +## Fully Automated updates + +> å³å°†åˆ°æ¥... 👀 ## 常è§é—®é¢˜ï¼ˆFAQ) ### 在哪里å¯ä»¥æ‰¾åˆ°æˆ‘çš„ Castopod 版本å·ï¼Ÿ -è·³è½¬åˆ°ä½ çš„ Castopod 管ç†é¢æ¿ï¼Œç‰ˆæœ¬å·æ˜¾ç¤ºåœ¨å·¦ä¸‹è§’。 +Go to your Castopod admin panel, the version is displayed on the bottom left +corner. -æˆ–è€…ï¼Œä½ å¯ä»¥åœ¨ `åº”ç”¨ç¨‹åº > é…ç½® > Constants.php` 文件ä¸æ‰¾åˆ°ç‰ˆæœ¬å·ã€‚ +Alternatively, you can find the version in the `app > Config > Constants.php` +file. ### 我很长时间没有更新我的实例… 我该怎么办? -æ²¡é—®é¢˜ï¼ åªéœ€å¦‚上所述获å–最新版本。 在执行上文æ¥éª¤ (4) 时,将脚本按旧到新ä¾æ¬¡æ‰§ -行。 +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. > ä½ å¯èƒ½æƒ³è¦å¤‡ä»½ä½ 的实例,这å–决于您多久没有更新过 Castopod 。 -ä¾‹å¦‚ï¼Œå¦‚æžœä½ åœ¨ `v1.0.0-alpha.42` 并想è¦å‡çº§åˆ° `v1.0.0-beta.1` +For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to +`v1.0.0-beta.1`: 0. (强烈推è) å¤‡ä»½ä½ çš„æ–‡ä»¶å’Œæ•°æ®åº“。 @@ -74,6 +99,7 @@ sidebarDepth: 3 ### 我是å¦åº”该在更新å‰å¤‡ä»½ï¼Ÿ -æˆ‘ä»¬å»ºè®®ä½ è¿™æ ·åšï¼Œè¿™æ ·å°±ä¸ä¼šåœ¨å‡ºçŽ°ä»»ä½•é—®é¢˜æ—¶ä¸¢å¤±æ•°æ®ï¼ +We advise you do, so you don't lose everything if anything goes wrong! -æ›´ç¬¼ç»Ÿåœ°è¯´ï¼Œæˆ‘ä»¬å»ºè®®ä½ å®šæœŸå¤‡ä»½æ‚¨çš„ Castopod 文件和 æ•°æ®åº“,防æ¢ä¸¢å¤±æ‰€æœ‰å†…容…… +More generally, we advise you make regular backups of your Castopod files and +database to prevent you from losing it all… diff --git a/modules/Admin/Language/ar/AboutCastopod.php b/modules/Admin/Language/ar/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/ar/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/ar/Breadcrumb.php b/modules/Admin/Language/ar/Breadcrumb.php index 0156d94397..f557a2ec6f 100644 --- a/modules/Admin/Language/ar/Breadcrumb.php +++ b/modules/Admin/Language/ar/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'صÙØات', 'settings' => 'الإعدادات', 'theme' => 'الØلة', + 'about' => 'about', 'add' => 'إضاÙØ©', 'new' => 'جديد', 'edit' => 'تعديل', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'unpublish', 'delete' => 'اØØ°Ù', + 'remove' => 'remove', 'fediverse' => 'الÙديÙرس', 'block-lists' => 'قوائم Øجب', 'users' => 'مستخدمون', diff --git a/modules/Admin/Language/ar/Navigation.php b/modules/Admin/Language/ar/Navigation.php index f264138acd..5fab3c3ec7 100644 --- a/modules/Admin/Language/ar/Navigation.php +++ b/modules/Admin/Language/ar/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'الإعدادات', 'settings-general' => 'العامة', 'settings-theme' => 'الØلة', + 'about' => 'About', 'account' => [ 'my-account' => 'Øسابي', 'change-password' => 'تغيير الكلمة السرية', diff --git a/modules/Admin/Language/br/AboutCastopod.php b/modules/Admin/Language/br/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/br/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/br/Breadcrumb.php b/modules/Admin/Language/br/Breadcrumb.php index c2eb298af4..46a4350bff 100644 --- a/modules/Admin/Language/br/Breadcrumb.php +++ b/modules/Admin/Language/br/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pajennoù', 'settings' => 'arventennoù', 'theme' => 'neuz', + 'about' => 'about', 'add' => 'ouzhpennañ', 'new' => 'krouiñ', 'edit' => 'kemmañ', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'diembannañ', 'delete' => 'dilemel', + 'remove' => 'remove', 'fediverse' => 'kevrebed', 'block-lists' => 'roll ar re stanket', 'users' => 'implijerien·ezed', diff --git a/modules/Admin/Language/br/Navigation.php b/modules/Admin/Language/br/Navigation.php index b82240f963..a445181f9c 100644 --- a/modules/Admin/Language/br/Navigation.php +++ b/modules/Admin/Language/br/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Arventennoù', 'settings-general' => 'Hollek', 'settings-theme' => 'Neuz', + 'about' => 'About', 'account' => [ 'my-account' => 'Ma c\'hont', 'change-password' => 'Kemmañ ar ger-tremen', diff --git a/modules/Admin/Language/ca/AboutCastopod.php b/modules/Admin/Language/ca/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/ca/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/ca/Breadcrumb.php b/modules/Admin/Language/ca/Breadcrumb.php index 9fa7362a6d..5115dc0491 100644 --- a/modules/Admin/Language/ca/Breadcrumb.php +++ b/modules/Admin/Language/ca/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pà gines', 'settings' => 'preferències', 'theme' => 'tema', + 'about' => 'about', 'add' => 'afegir', 'new' => 'nova', 'edit' => 'editar', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'desfer la publicació', 'delete' => 'eliminar', + 'remove' => 'remove', 'fediverse' => 'Fediverse', 'block-lists' => 'llista de bloquejats', 'users' => 'usuaris', diff --git a/modules/Admin/Language/ca/Navigation.php b/modules/Admin/Language/ca/Navigation.php index 77b48aee6e..2d75ea4f5e 100644 --- a/modules/Admin/Language/ca/Navigation.php +++ b/modules/Admin/Language/ca/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Preferències', 'settings-general' => 'General', 'settings-theme' => 'Tema', + 'about' => 'About', 'account' => [ 'my-account' => 'El meu compte', 'change-password' => 'Canviar la contrasenya', diff --git a/modules/Admin/Language/de/AboutCastopod.php b/modules/Admin/Language/de/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/de/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/de/Breadcrumb.php b/modules/Admin/Language/de/Breadcrumb.php index 2bf0fc70dd..188481fb63 100644 --- a/modules/Admin/Language/de/Breadcrumb.php +++ b/modules/Admin/Language/de/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'Seiten', 'settings' => 'Einstellungen', 'theme' => 'Erscheinungsbild', + 'about' => 'about', 'add' => 'hinzufügen', 'new' => 'neu', 'edit' => 'bearbeiten', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'Veröffentlichung aufheben', 'delete' => 'löschen', + 'remove' => 'remove', 'fediverse' => 'Fediversum', 'block-lists' => 'Sperrlisten', 'users' => 'Benutzer', diff --git a/modules/Admin/Language/de/Navigation.php b/modules/Admin/Language/de/Navigation.php index 04fad13755..d2264e2577 100644 --- a/modules/Admin/Language/de/Navigation.php +++ b/modules/Admin/Language/de/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Einstellungen', 'settings-general' => 'Allgemein', 'settings-theme' => 'Erscheinungsbild', + 'about' => 'About', 'account' => [ 'my-account' => 'Mein Konto', 'change-password' => 'Passwort ändern', diff --git a/modules/Admin/Language/el/AboutCastopod.php b/modules/Admin/Language/el/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/el/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/el/Breadcrumb.php b/modules/Admin/Language/el/Breadcrumb.php index 38b8ec9272..25c2cb6da9 100644 --- a/modules/Admin/Language/el/Breadcrumb.php +++ b/modules/Admin/Language/el/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'σελίδες', 'settings' => 'Ïυθμίσεις', 'theme' => 'θÎμα', + 'about' => 'about', 'add' => 'Ï€Ïοσθήκη', 'new' => 'νÎο', 'edit' => 'επεξεÏγασία', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'αναίÏεση δημοσίευσης', 'delete' => 'διαγÏαφή', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'λίστες αποκλεισμÎνων', 'users' => 'χÏήστες', diff --git a/modules/Admin/Language/el/Navigation.php b/modules/Admin/Language/el/Navigation.php index 2325bd3800..e454c1210c 100644 --- a/modules/Admin/Language/el/Navigation.php +++ b/modules/Admin/Language/el/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Ρυθμίσεις', 'settings-general' => 'Γενικά', 'settings-theme' => 'ΘÎμα', + 'about' => 'About', 'account' => [ 'my-account' => 'Ο λογαÏιασμός μου', 'change-password' => 'Αλλαγή ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης', diff --git a/modules/Admin/Language/es/AboutCastopod.php b/modules/Admin/Language/es/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/es/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/es/Breadcrumb.php b/modules/Admin/Language/es/Breadcrumb.php index 621ca94ed3..63fc38d95b 100644 --- a/modules/Admin/Language/es/Breadcrumb.php +++ b/modules/Admin/Language/es/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'páginas', 'settings' => 'configuración', 'theme' => 'tema', + 'about' => 'about', 'add' => 'añadir', 'new' => 'nuevo', 'edit' => 'editar', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'anular publicación', 'delete' => 'borrar', + 'remove' => 'remove', 'fediverse' => 'fediverso', 'block-lists' => 'listas de bloqueo', 'users' => 'usuarios', diff --git a/modules/Admin/Language/es/Navigation.php b/modules/Admin/Language/es/Navigation.php index 43c5889342..fefb73e5fc 100644 --- a/modules/Admin/Language/es/Navigation.php +++ b/modules/Admin/Language/es/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Configuración', 'settings-general' => 'General', 'settings-theme' => 'Tema', + 'about' => 'About', 'account' => [ 'my-account' => 'Mi cuenta', 'change-password' => 'Cambiar contraseña', diff --git a/modules/Admin/Language/fa/AboutCastopod.php b/modules/Admin/Language/fa/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/fa/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/fa/Breadcrumb.php b/modules/Admin/Language/fa/Breadcrumb.php index f3269bfa4e..b1742abfb1 100644 --- a/modules/Admin/Language/fa/Breadcrumb.php +++ b/modules/Admin/Language/fa/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pages', 'settings' => 'settings', 'theme' => 'theme', + 'about' => 'about', 'add' => 'add', 'new' => 'new', 'edit' => 'edit', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'unpublish', 'delete' => 'delete', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'block lists', 'users' => 'users', diff --git a/modules/Admin/Language/fa/Navigation.php b/modules/Admin/Language/fa/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/fa/Navigation.php +++ b/modules/Admin/Language/fa/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/fr/AboutCastopod.php b/modules/Admin/Language/fr/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/fr/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/fr/Breadcrumb.php b/modules/Admin/Language/fr/Breadcrumb.php index 375caa16d0..6f78f95dc0 100644 --- a/modules/Admin/Language/fr/Breadcrumb.php +++ b/modules/Admin/Language/fr/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pages', 'settings' => 'paramètres', 'theme' => 'thème', + 'about' => 'about', 'add' => 'ajouter', 'new' => 'créer', 'edit' => 'modifier', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'dépublier', 'delete' => 'supprimer', + 'remove' => 'remove', 'fediverse' => 'fédiverse', 'block-lists' => 'listes de blocage', 'users' => 'utilisateurs', diff --git a/modules/Admin/Language/fr/Navigation.php b/modules/Admin/Language/fr/Navigation.php index 8e870a1478..a0cd50c018 100644 --- a/modules/Admin/Language/fr/Navigation.php +++ b/modules/Admin/Language/fr/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Paramètres', 'settings-general' => 'Général', 'settings-theme' => 'Thème', + 'about' => 'About', 'account' => [ 'my-account' => 'Mon compte', 'change-password' => 'Modifier le mot de passe', diff --git a/modules/Admin/Language/gd/AboutCastopod.php b/modules/Admin/Language/gd/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/gd/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/gd/Breadcrumb.php b/modules/Admin/Language/gd/Breadcrumb.php index f3269bfa4e..b1742abfb1 100644 --- a/modules/Admin/Language/gd/Breadcrumb.php +++ b/modules/Admin/Language/gd/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pages', 'settings' => 'settings', 'theme' => 'theme', + 'about' => 'about', 'add' => 'add', 'new' => 'new', 'edit' => 'edit', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'unpublish', 'delete' => 'delete', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'block lists', 'users' => 'users', diff --git a/modules/Admin/Language/gd/Navigation.php b/modules/Admin/Language/gd/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/gd/Navigation.php +++ b/modules/Admin/Language/gd/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/gl/AboutCastopod.php b/modules/Admin/Language/gl/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/gl/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/gl/Breadcrumb.php b/modules/Admin/Language/gl/Breadcrumb.php index 7aa07fba53..4716a004a2 100644 --- a/modules/Admin/Language/gl/Breadcrumb.php +++ b/modules/Admin/Language/gl/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'páxinas', 'settings' => 'axustes', 'theme' => 'decorado', + 'about' => 'about', 'add' => 'engadir', 'new' => 'novo', 'edit' => 'editar', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'retirar publicación', 'delete' => 'eliminar', + 'remove' => 'remove', 'fediverse' => 'fediverso', 'block-lists' => 'listas de bloqueo', 'users' => 'usuarias', diff --git a/modules/Admin/Language/gl/Navigation.php b/modules/Admin/Language/gl/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/gl/Navigation.php +++ b/modules/Admin/Language/gl/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/id/AboutCastopod.php b/modules/Admin/Language/id/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/id/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/id/Breadcrumb.php b/modules/Admin/Language/id/Breadcrumb.php index 676e47b75f..371cdea540 100644 --- a/modules/Admin/Language/id/Breadcrumb.php +++ b/modules/Admin/Language/id/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pages', 'settings' => 'settings', 'theme' => 'theme', + 'about' => 'about', 'add' => 'add', 'new' => 'new', 'edit' => 'edit', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'unpublish', 'delete' => 'delete', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'block lists', 'users' => 'pengguna', diff --git a/modules/Admin/Language/id/Navigation.php b/modules/Admin/Language/id/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/id/Navigation.php +++ b/modules/Admin/Language/id/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/it/AboutCastopod.php b/modules/Admin/Language/it/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/it/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/it/Breadcrumb.php b/modules/Admin/Language/it/Breadcrumb.php index 9876ee9b22..d1922c5ea6 100644 --- a/modules/Admin/Language/it/Breadcrumb.php +++ b/modules/Admin/Language/it/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pagine', 'settings' => 'impostazioni', 'theme' => 'tema', + 'about' => 'about', 'add' => 'aggiungi', 'new' => 'nuovo', 'edit' => 'modifica', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'annulla pubblicazione', 'delete' => 'elimina', + 'remove' => 'remove', 'fediverse' => 'fediverso', 'block-lists' => 'elenco bloccati', 'users' => 'utenti', diff --git a/modules/Admin/Language/it/Navigation.php b/modules/Admin/Language/it/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/it/Navigation.php +++ b/modules/Admin/Language/it/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/ko/AboutCastopod.php b/modules/Admin/Language/ko/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/ko/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/ko/Breadcrumb.php b/modules/Admin/Language/ko/Breadcrumb.php new file mode 100644 index 0000000000..b1742abfb1 --- /dev/null +++ b/modules/Admin/Language/ko/Breadcrumb.php @@ -0,0 +1,54 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'label' => 'breadcrumb', + config('Admin') + ->gateway => 'Home', + 'podcasts' => 'podcasts', + 'episodes' => 'episodes', + 'subscriptions' => 'subscriptions', + 'contributors' => 'contributors', + 'pages' => 'pages', + 'settings' => 'settings', + 'theme' => 'theme', + 'about' => 'about', + 'add' => 'add', + 'new' => 'new', + 'edit' => 'edit', + 'persons' => 'persons', + 'publish' => 'publish', + 'publish-edit' => 'edit publication', + 'publish-date-edit' => 'edit publication date', + 'unpublish' => 'unpublish', + 'delete' => 'delete', + 'remove' => 'remove', + 'fediverse' => 'fediverse', + 'block-lists' => 'block lists', + 'users' => 'users', + 'my-account' => 'my account', + 'change-password' => 'change password', + 'import' => 'feed import', + 'platforms' => 'platforms', + 'social' => 'social networks', + 'funding' => 'funding', + 'analytics' => 'analytics', + 'locations' => 'locations', + 'webpages' => 'web pages', + 'unique-listeners' => 'unique listeners', + 'players' => 'players', + 'listening-time' => 'listening time', + 'time-periods' => 'time periods', + 'soundbites' => 'soundbites', + 'video-clips' => 'video clips', + 'embed' => 'embeddable player', + 'notifications' => 'notifications', + 'suspend' => 'suspend', +]; diff --git a/modules/Admin/Language/ko/Charts.php b/modules/Admin/Language/ko/Charts.php new file mode 100644 index 0000000000..4b33530ef0 --- /dev/null +++ b/modules/Admin/Language/ko/Charts.php @@ -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 [ + 'by_service_weekly' => 'Episode downloads by service (for the past week)', + 'by_player_weekly' => 'Episode downloads by player (for the past week)', + 'by_player_yearly' => 'Episode downloads by player (for the past year)', + 'by_device_weekly' => 'Episode downloads by device (for the past week)', + 'by_os_weekly' => 'Episode downloads by O.S. (for the past week)', + 'podcast_by_region' => 'Episode downloads by region (for the past week)', + 'unique_daily_listeners' => 'Daily unique listeners', + 'unique_monthly_listeners' => 'Monthly unique listeners', + 'by_browser' => 'Web pages usage by browser (for the past week)', + 'podcast_by_day' => 'Episode daily downloads', + 'podcast_by_month' => 'Episode monthly downloads', + 'episode_by_day' => 'Episode daily downloads (first 60 days)', + 'episode_by_month' => 'Episode monthly downloads', + 'episodes_by_day' => + '5 latest episodes downloads (during their first 60 days)', + 'by_country_weekly' => 'Episode downloads by country (for the past week)', + 'by_country_yearly' => 'Episode downloads by country (for the past year)', + 'by_domain_weekly' => 'Web pages visits by source (for the past week)', + 'by_domain_yearly' => 'Web pages visits by source (for the past year)', + 'by_entry_page' => 'Web pages visits by landing page (for the past week)', + 'podcast_bots' => 'Bots (crawlers)', + 'daily_listening_time' => 'Daily cumulative listening time', + 'monthly_listening_time' => 'Monthly cumulative listening time', + 'by_weekday' => 'By week day (for the past 60 days)', + 'by_hour' => 'By time of day (for the past 60 days)', + 'podcast_by_bandwidth' => 'Daily used bandwidth (in MB)', + 'total_storage_by_month' => 'Monthly storage (in MB)', + 'total_bandwidth_by_month' => 'Monthly used bandwidth (in MB)', +]; diff --git a/modules/Admin/Language/ko/Common.php b/modules/Admin/Language/ko/Common.php new file mode 100644 index 0000000000..596c8bcdec --- /dev/null +++ b/modules/Admin/Language/ko/Common.php @@ -0,0 +1,51 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'yes' => 'Yes', + 'no' => 'No', + 'cancel' => 'Cancel', + 'optional' => 'Optional', + 'more' => 'More', + 'no_data' => 'No data found!', + 'close' => 'Close', + 'edit' => 'Edit', + 'copy' => 'Copy', + 'copied' => 'Copied!', + 'home' => 'Home', + 'explicit' => 'Explicit', + 'powered_by' => 'Powered by {castopod}', + 'actions' => 'Actions', + 'pageInfo' => 'Page {currentPage} out of {pageCount}', + 'go_back' => 'Go back', + 'forms' => [ + 'editor' => [ + 'write' => 'Write', + 'preview' => 'Preview', + 'help' => 'Powered by markdown', + ], + 'multiSelect' => [ + 'selectText' => 'Press to select', + 'loadingText' => 'Loading…', + 'noResultsText' => 'No results found', + 'noChoicesText' => 'No choices to choose from', + 'maxItemText' => 'Cannot add more items', + ], + 'upload_file' => 'Upload a file', + 'remote_url' => 'Remote URL', + ], + 'play_episode_button' => [ + 'play' => 'Play', + 'playing' => 'Playing', + ], + 'size_limit' => 'Size limit: {0}.', + 'choose_interact' => 'Choose how to interact', + 'view' => 'View', +]; diff --git a/modules/Admin/Language/ko/Countries.php b/modules/Admin/Language/ko/Countries.php new file mode 100644 index 0000000000..4cd5d9c857 --- /dev/null +++ b/modules/Admin/Language/ko/Countries.php @@ -0,0 +1,264 @@ +<?php + +declare(strict_types=1); + +/** + * ISO 3166 country codes + * + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'AD' => 'Andorra', + 'AE' => 'United Arab Emirates', + 'AF' => 'Afghanistan', + 'AG' => 'Antigua and Barbuda', + 'AI' => 'Anguilla', + 'AL' => 'Albania', + 'AM' => 'Armenia', + 'AO' => 'Angola', + 'AQ' => 'Antarctica', + 'AR' => 'Argentina', + 'AS' => 'American Samoa', + 'AT' => 'Austria', + 'AU' => 'Australia', + 'AW' => 'Aruba', + 'AX' => 'Ã…land Islands', + 'AZ' => 'Azerbaijan', + 'BA' => 'Bosnia and Herzegovina', + 'BB' => 'Barbados', + 'BD' => 'Bangladesh', + 'BE' => 'Belgium', + 'BF' => 'Burkina Faso', + 'BG' => 'Bulgaria', + 'BH' => 'Bahrain', + 'BI' => 'Burundi', + 'BJ' => 'Benin', + 'BL' => 'Saint Barthélemy', + 'BM' => 'Bermuda', + 'BN' => 'Brunei Darussalam', + 'BO' => 'Bolivia, Plurinational State of', + 'BQ' => 'Bonaire, Sint Eustatius and Saba', + 'BR' => 'Brazil', + 'BS' => 'Bahamas', + 'BT' => 'Bhutan', + 'BV' => 'Bouvet Island', + 'BW' => 'Botswana', + 'BY' => 'Belarus', + 'BZ' => 'Belize', + 'CA' => 'Canada', + 'CC' => 'Cocos (Keeling) Islands', + 'CD' => 'Congo, the Democratic Republic of the', + 'CF' => 'Central African Republic', + 'CG' => 'Congo', + 'CH' => 'Switzerland', + 'CI' => "Côte d'Ivoire", + 'CK' => 'Cook Islands', + 'CL' => 'Chile', + 'CM' => 'Cameroon', + 'CN' => 'China', + 'CO' => 'Colombia', + 'CR' => 'Costa Rica', + 'CU' => 'Cuba', + 'CV' => 'Cape Verde', + 'CW' => 'Curaçao', + 'CX' => 'Christmas Island', + 'CY' => 'Cyprus', + 'CZ' => 'Czech Republic', + 'DE' => 'Germany', + 'DJ' => 'Djibouti', + 'DK' => 'Denmark', + 'DM' => 'Dominica', + 'DO' => 'Dominican Republic', + 'DZ' => 'Algeria', + 'EC' => 'Ecuador', + 'EE' => 'Estonia', + 'EG' => 'Egypt', + 'EH' => 'Western Sahara', + 'ER' => 'Eritrea', + 'ES' => 'Spain', + 'ET' => 'Ethiopia', + 'FI' => 'Finland', + 'FJ' => 'Fiji', + 'FK' => 'Falkland Islands (Malvinas)', + 'FM' => 'Micronesia, Federated States of', + 'FO' => 'Faroe Islands', + 'FR' => 'France', + 'GA' => 'Gabon', + 'GB' => 'United Kingdom', + 'GD' => 'Grenada', + 'GE' => 'Georgia', + 'GF' => 'French Guiana', + 'GG' => 'Guernsey', + 'GH' => 'Ghana', + 'GI' => 'Gibraltar', + 'GL' => 'Greenland', + 'GM' => 'Gambia', + 'GN' => 'Guinea', + 'GP' => 'Guadeloupe', + 'GQ' => 'Equatorial Guinea', + 'GR' => 'Greece', + 'GS' => 'South Georgia and the South Sandwich Islands', + 'GT' => 'Guatemala', + 'GU' => 'Guam', + 'GW' => 'Guinea-Bissau', + 'GY' => 'Guyana', + 'HK' => 'Hong Kong', + 'HM' => 'Heard Island and McDonald Islands', + 'HN' => 'Honduras', + 'HR' => 'Croatia', + 'HT' => 'Haiti', + 'HU' => 'Hungary', + 'ID' => 'Indonesia', + 'IE' => 'Ireland', + 'IL' => 'Israel', + 'IM' => 'Isle of Man', + 'IN' => 'India', + 'IO' => 'British Indian Ocean Territory', + 'IQ' => 'Iraq', + 'IR' => 'Iran, Islamic Republic of', + 'IS' => 'Iceland', + 'IT' => 'Italy', + 'JE' => 'Jersey', + 'JM' => 'Jamaica', + 'JO' => 'Jordan', + 'JP' => 'Japan', + 'KE' => 'Kenya', + 'KG' => 'Kyrgyzstan', + 'KH' => 'Cambodia', + 'KI' => 'Kiribati', + 'KM' => 'Comoros', + 'KN' => 'Saint Kitts and Nevis', + 'KP' => "Korea, Democratic People's Republic of", + 'KR' => 'Korea, Republic of', + 'KW' => 'Kuwait', + 'KY' => 'Cayman Islands', + 'KZ' => 'Kazakhstan', + 'LA' => "Lao People's Democratic Republic", + 'LB' => 'Lebanon', + 'LC' => 'Saint Lucia', + 'LI' => 'Liechtenstein', + 'LK' => 'Sri Lanka', + 'LR' => 'Liberia', + 'LS' => 'Lesotho', + 'LT' => 'Lithuania', + 'LU' => 'Luxembourg', + 'LV' => 'Latvia', + 'LY' => 'Libya', + 'MA' => 'Morocco', + 'MC' => 'Monaco', + 'MD' => 'Moldova, Republic of', + 'ME' => 'Montenegro', + 'MF' => 'Saint Martin (French part)', + 'MG' => 'Madagascar', + 'MH' => 'Marshall Islands', + 'MK' => 'Macedonia, the Former Yugoslav Republic of', + 'ML' => 'Mali', + 'MM' => 'Myanmar', + 'MN' => 'Mongolia', + 'MO' => 'Macao', + 'MP' => 'Northern Mariana Islands', + 'MQ' => 'Martinique', + 'MR' => 'Mauritania', + 'MS' => 'Montserrat', + 'MT' => 'Malta', + 'MU' => 'Mauritius', + 'MV' => 'Maldives', + 'MW' => 'Malawi', + 'MX' => 'Mexico', + 'MY' => 'Malaysia', + 'MZ' => 'Mozambique', + 'N/A' => 'Not Applicable (local IP…)', + 'NA' => 'Namibia', + 'NC' => 'New Caledonia', + 'NE' => 'Niger', + 'NF' => 'Norfolk Island', + 'NG' => 'Nigeria', + 'NI' => 'Nicaragua', + 'NL' => 'Netherlands', + 'NO' => 'Norway', + 'NP' => 'Nepal', + 'NR' => 'Nauru', + 'NU' => 'Niue', + 'NZ' => 'New Zealand', + 'OM' => 'Oman', + 'PA' => 'Panama', + 'PE' => 'Peru', + 'PF' => 'French Polynesia', + 'PG' => 'Papua New Guinea', + 'PH' => 'Philippines', + 'PK' => 'Pakistan', + 'PL' => 'Poland', + 'PM' => 'Saint Pierre and Miquelon', + 'PN' => 'Pitcairn', + 'PR' => 'Puerto Rico', + 'PS' => 'Palestine, State of', + 'PT' => 'Portugal', + 'PW' => 'Palau', + 'PY' => 'Paraguay', + 'QA' => 'Qatar', + 'RE' => 'Réunion', + 'RO' => 'Romania', + 'RS' => 'Serbia', + 'RU' => 'Russian Federation', + 'RW' => 'Rwanda', + 'SA' => 'Saudi Arabia', + 'SB' => 'Solomon Islands', + 'SC' => 'Seychelles', + 'SD' => 'Sudan', + 'SE' => 'Sweden', + 'SG' => 'Singapore', + 'SH' => 'Saint Helena, Ascension and Tristan da Cunha', + 'SI' => 'Slovenia', + 'SJ' => 'Svalbard and Jan Mayen', + 'SK' => 'Slovakia', + 'SL' => 'Sierra Leone', + 'SM' => 'San Marino', + 'SN' => 'Senegal', + 'SO' => 'Somalia', + 'SR' => 'Suriname', + 'SS' => 'South Sudan', + 'ST' => 'Sao Tome and Principe', + 'SV' => 'El Salvador', + 'SX' => 'Sint Maarten (Dutch part)', + 'SY' => 'Syrian Arab Republic', + 'SZ' => 'Swaziland', + 'TC' => 'Turks and Caicos Islands', + 'TD' => 'Chad', + 'TF' => 'French Southern Territories', + 'TG' => 'Togo', + 'TH' => 'Thailand', + 'TJ' => 'Tajikistan', + 'TK' => 'Tokelau', + 'TL' => 'Timor-Leste', + 'TM' => 'Turkmenistan', + 'TN' => 'Tunisia', + 'TO' => 'Tonga', + 'TR' => 'Turkey', + 'TT' => 'Trinidad and Tobago', + 'TV' => 'Tuvalu', + 'TW' => 'Taiwan, Province of China', + 'TZ' => 'Tanzania, United Republic of', + 'UA' => 'Ukraine', + 'UG' => 'Uganda', + 'UM' => 'United States Minor Outlying Islands', + 'US' => 'United States', + 'UY' => 'Uruguay', + 'UZ' => 'Uzbekistan', + 'VA' => 'Holy See (Vatican City State)', + 'VC' => 'Saint Vincent and the Grenadines', + 'VE' => 'Venezuela, Bolivarian Republic of', + 'VG' => 'Virgin Islands, British', + 'VI' => 'Virgin Islands, U.S.', + 'VN' => 'Viet Nam', + 'VU' => 'Vanuatu', + 'WF' => 'Wallis and Futuna', + 'WS' => 'Samoa', + 'YE' => 'Yemen', + 'YT' => 'Mayotte', + 'ZA' => 'South Africa', + 'ZM' => 'Zambia', + 'ZW' => 'Zimbabwe', +]; diff --git a/modules/Admin/Language/ko/Dashboard.php b/modules/Admin/Language/ko/Dashboard.php new file mode 100644 index 0000000000..881073fd26 --- /dev/null +++ b/modules/Admin/Language/ko/Dashboard.php @@ -0,0 +1,28 @@ +<?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 [ + 'home' => 'Admin dashboard', + 'welcome_message' => 'Welcome to the admin area!', + 'podcasts' => [ + 'title' => 'Podcasts', + 'not_found' => 'No published podcast', + 'last_published' => 'Last published on {lastPublicationDate}', + ], + 'episodes' => [ + 'title' => 'Episodes', + 'not_found' => 'No published episode', + 'last_published' => 'Last published on {lastPublicationDate}', + ], + 'storage' => [ + 'title' => 'Storage', + 'subtitle' => '{totalUploaded} out of {totalStorage}', + ], +]; diff --git a/modules/Admin/Language/ko/Episode.php b/modules/Admin/Language/ko/Episode.php new file mode 100644 index 0000000000..91313a7c5a --- /dev/null +++ b/modules/Admin/Language/ko/Episode.php @@ -0,0 +1,213 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'season' => 'Season {seasonNumber}', + 'season_abbr' => 'S{seasonNumber}', + 'number' => 'Episode {episodeNumber}', + 'number_abbr' => 'Ep. {episodeNumber}', + 'season_episode' => 'Season {seasonNumber} episode {episodeNumber}', + 'season_episode_abbr' => 'S{seasonNumber}E{episodeNumber}', + 'number_of_comments' => '{numberOfComments, plural, + one {# comment} + other {# comments} + }', + 'all_podcast_episodes' => 'All podcast episodes', + 'back_to_podcast' => 'Go back to podcast', + 'edit' => 'Edit', + 'publish' => 'Publish', + 'publish_edit' => 'Edit publication', + 'publish_date_edit' => 'Edit publication date', + 'unpublish' => 'Unpublish', + 'publish_error' => 'Episode is already published.', + 'publish_edit_error' => 'Episode is already published.', + 'publish_cancel_error' => 'Episode is already published.', + 'publish_date_edit_error' => 'Episode has not been published yet, you cannot edit its publication date.', + 'publish_date_edit_future_error' => 'Episode\'s publication date can only be set to a past date! If you would like to reschedule it, unpublish it first.', + 'publish_date_edit_success' => 'Episode\'s publication date has been updated successfully!', + 'unpublish_error' => 'Episode is not published.', + 'delete' => 'Delete', + 'go_to_page' => 'Go to page', + 'create' => 'Add an episode', + 'publication_status' => [ + 'published' => 'Published', + 'with_podcast' => 'Published', + 'scheduled' => 'Scheduled', + 'not_published' => 'Not published', + ], + 'with_podcast_hint' => 'To be published at the same time as the podcast', + 'list' => [ + 'search' => [ + 'placeholder' => 'Search for an episode', + 'clear' => 'Clear search', + 'submit' => 'Search', + ], + 'number_of_episodes' => '{numberOfEpisodes, plural, + one {# episode} + other {# episodes} + }', + 'episode' => 'Episode', + 'visibility' => 'Visibility', + 'comments' => 'Comments', + 'actions' => 'Actions', + ], + 'messages' => [ + 'createSuccess' => 'Episode has been successfully created!', + 'editSuccess' => 'Episode has been successfully updated!', + 'publishSuccess' => '{publication_status, select, + published {Episode successfully published!} + scheduled {Episode publication successfully scheduled!} + with_podcast {This episode will be published at the same time as the podcast.} + other {This episode is not published.} + }', + 'publishCancelSuccess' => 'Episode publication successfully cancelled!', + 'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.', + 'scheduleDateError' => 'Schedule date must be set!', + 'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.', + 'deleteSuccess' => 'Episode successfully deleted!', + 'deleteError' => 'Failed to delete episode {type, select, + transcript {transcript} + chapters {chapters} + image {cover} + audio {audio} + other {media} + }.', + 'deleteFileError' => 'Failed to delete {type, select, + transcript {transcript} + chapters {chapters} + image {cover} + audio {audio} + other {media} + } file {file_path}. You may manually remove it from your disk.', + 'sameSlugError' => 'An episode with the chosen slug already exists.', + ], + 'form' => [ + 'file_size_error' => + 'Your file size is too big! Max size is {0}. Increase the `memory_limit`, `upload_max_filesize` and `post_max_size` values in your php configuration file then restart your web server to upload your file.', + 'audio_file' => 'Audio file', + 'audio_file_hint' => 'Choose an .mp3 or .m4a audio file.', + 'info_section_title' => 'Episode info', + 'cover' => 'Episode cover', + 'cover_hint' => + 'If you do not set a cover, the podcast cover will be used instead.', + 'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.', + 'title' => 'Title', + 'title_hint' => + 'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.', + 'permalink' => 'Permalink', + 'season_number' => 'Season', + 'episode_number' => 'Episode', + 'type' => [ + 'label' => 'Type', + 'full' => 'Full', + 'full_hint' => 'Complete content (the episode)', + 'trailer' => 'Trailer', + 'trailer_hint' => 'Short, promotional piece of content that represents a preview of the current show', + 'bonus' => 'Bonus', + 'bonus_hint' => 'Extra content for the show (for example, behind the scenes info or interviews with the cast) or cross-promotional content for another show', + ], + 'premium_title' => 'Premium', + 'premium' => 'Episode must be accessible to premium subscribers only', + 'parental_advisory' => [ + 'label' => 'Parental advisory', + 'hint' => 'Does the episode contain explicit content?', + 'undefined' => 'undefined', + 'clean' => 'Clean', + 'explicit' => 'Explicit', + ], + 'show_notes_section_title' => 'Show notes', + 'show_notes_section_subtitle' => + 'Up to 4000 characters, be clear and concise. Show notes help potential listeners in finding the episode.', + 'description' => 'Description', + 'description_footer' => 'Description footer', + 'description_footer_hint' => + 'This text is added at the end of each episode description, it is a good place to input your social links for example.', + 'additional_files_section_title' => 'Additional files', + 'additional_files_section_subtitle' => + 'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.', + 'location_section_title' => 'Location', + 'location_section_subtitle' => 'What place is this episode about?', + 'location_name' => 'Location name or address', + 'location_name_hint' => 'This can be a real or fictional location', + 'transcript' => 'Transcript (subtitles / closed captions)', + 'transcript_hint' => 'Only .srt are allowed.', + 'transcript_download' => 'Download transcript', + 'transcript_file' => 'Transcript file (.srt)', + 'transcript_remote_url' => 'Remote url for transcript', + 'transcript_file_delete' => 'Delete transcript file', + 'chapters' => 'Chapters', + 'chapters_hint' => 'File must be in JSON Chapters format.', + 'chapters_download' => 'Download chapters', + 'chapters_file' => 'Chapters file', + 'chapters_remote_url' => 'Remote url for chapters file', + 'chapters_file_delete' => 'Delete chapters file', + 'advanced_section_title' => 'Advanced Parameters', + 'advanced_section_subtitle' => + 'If you need RSS tags that Castopod does not handle, set them here.', + 'custom_rss' => 'Custom RSS tags for the episode', + 'custom_rss_hint' => 'This will be injected within the â¬itemâ tag.', + 'block' => 'Episode should be hidden from public catalogues', + 'block_hint' => + 'The episode show or hide status: toggling this on prevents the episode from appearing in Apple Podcasts, Google Podcasts, and any third party apps that pull shows from these directories. (Not guaranteed)', + 'submit_create' => 'Create episode', + 'submit_edit' => 'Save episode', + ], + 'publish_form' => [ + 'back_to_episode_dashboard' => 'Back to episode dashboard', + 'post' => 'Your announcement post', + 'post_hint' => + "Write a message to announce the publication of your episode. The message will be broadcasted to all your followers in the fediverse and be featured in your podcast's homepage.", + 'message_placeholder' => 'Write your message…', + 'publication_date' => 'Publication date', + 'publication_method' => [ + 'now' => 'Now', + 'schedule' => 'Schedule', + 'with_podcast' => 'Publish alongside podcast', + ], + 'scheduled_publication_date' => 'Scheduled publication date', + 'scheduled_publication_date_clear' => 'Clear publication date', + 'scheduled_publication_date_hint' => + 'You can schedule the episode release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm', + 'submit' => 'Publish', + 'submit_edit' => 'Edit publication', + 'cancel_publication' => 'Cancel publication', + 'message_warning' => 'You did not write a message for your announcement post!', + 'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your episode.', + 'message_warning_submit' => 'Publish anyways', + ], + 'publish_date_edit_form' => [ + 'new_publication_date' => 'New publication date', + 'new_publication_date_hint' => 'Must be set to a past date.', + 'submit' => 'Edit publication date', + ], + 'unpublish_form' => [ + 'disclaimer' => + "Unpublishing the episode will delete all the comments and posts associated with it and remove it from the podcast's RSS feed.", + 'understand' => 'I understand, I want to unpublish the episode', + 'submit' => 'Unpublish', + ], + 'delete_form' => [ + 'disclaimer' => + "Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.", + 'understand' => 'I understand, I want to delete the episode', + 'submit' => 'Delete', + ], + 'embed' => [ + 'title' => 'Embeddable player', + 'label' => + 'Pick a theme color, copy the embeddable player to clipboard, then paste it on your website.', + 'clipboard_iframe' => 'Copy embeddable player to clipboard', + 'clipboard_url' => 'Copy address to clipboard', + 'dark' => 'Dark', + 'dark-transparent' => 'Dark transparent', + 'light' => 'Light', + 'light-transparent' => 'Light transparent', + ], +]; diff --git a/modules/Admin/Language/ko/EpisodeNavigation.php b/modules/Admin/Language/ko/EpisodeNavigation.php new file mode 100644 index 0000000000..1406e3010e --- /dev/null +++ b/modules/Admin/Language/ko/EpisodeNavigation.php @@ -0,0 +1,23 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'go_to_page' => 'View episode page', + 'dashboard' => 'Episode dashboard', + 'episode-view' => 'Home', + 'episode-edit' => 'Edit episode', + 'episode-persons-manage' => 'Manage persons', + 'embed-add' => 'Embeddable player', + 'clips' => 'Clips', + 'video-clips-list' => 'Video clips', + 'video-clips-create' => 'New video clip', + 'soundbites-list' => 'Soundbites', + 'soundbites-create' => 'New soundbite', +]; diff --git a/modules/Admin/Language/ko/Fediverse.php b/modules/Admin/Language/ko/Fediverse.php new file mode 100644 index 0000000000..0e4ca66d89 --- /dev/null +++ b/modules/Admin/Language/ko/Fediverse.php @@ -0,0 +1,32 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'messages' => [ + 'actorNotFound' => 'The account could not be found!', + 'blockActorSuccess' => '{actor} has been blocked!', + 'unblockActorSuccess' => 'Actor has been unblocked!', + 'blockDomainSuccess' => '{domain} has been blocked!', + 'unblockDomainSuccess' => '{domain} has been unblocked!', + ], + 'blocked_actors' => 'Blocked accounts', + 'blocked_domains' => 'Blocked domains', + 'block_lists_form' => [ + 'handle' => 'Account handle', + 'handle_hint' => 'Input @username@domain account.', + 'domain' => 'Domain name', + 'submit' => 'Block!', + ], + 'list' => [ + 'actor' => 'Account', + 'domain' => 'Domain name', + 'unblock' => 'Unblock', + ], +]; diff --git a/modules/Admin/Language/ko/Home.php b/modules/Admin/Language/ko/Home.php new file mode 100644 index 0000000000..3ff4c04dc8 --- /dev/null +++ b/modules/Admin/Language/ko/Home.php @@ -0,0 +1,14 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'all_podcasts' => 'All podcasts', + 'no_podcast' => 'No podcast found', +]; diff --git a/modules/Admin/Language/ko/Install.php b/modules/Admin/Language/ko/Install.php new file mode 100644 index 0000000000..36e373a285 --- /dev/null +++ b/modules/Admin/Language/ko/Install.php @@ -0,0 +1,61 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'manual_config' => 'Manual configuration', + 'manual_config_subtitle' => + 'Create a `.env` file with your settings and refresh the page to continue installation.', + 'form' => [ + 'instance_config' => 'Instance configuration', + 'hostname' => 'Hostname', + 'media_base_url' => 'Media base URL', + 'media_base_url_hint' => + 'If you use a CDN and/or an external analytics service, you may set them here.', + 'admin_gateway' => 'Admin gateway', + 'admin_gateway_hint' => + 'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.', + 'auth_gateway' => 'Auth gateway', + 'auth_gateway_hint' => + 'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.', + 'database_config' => 'Database configuration', + 'database_config_hint' => + 'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.', + 'db_hostname' => 'Database hostname', + 'db_name' => 'Database name', + 'db_username' => 'Database username', + 'db_password' => 'Database password', + 'db_prefix' => 'Database prefix', + 'db_prefix_hint' => + "The prefix of the Castopod table names, leave as is if you don't know what it means.", + 'cache_config' => 'Cache configuration', + 'cache_config_hint' => + 'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.', + 'cache_handler' => 'Cache handler', + 'cacheHandlerOptions' => [ + 'file' => 'File', + 'redis' => 'Redis', + 'predis' => 'Predis', + ], + 'next' => 'Next', + 'submit' => 'Finish install', + 'create_superadmin' => 'Create your superadmin account', + 'email' => 'Email', + 'username' => 'Username', + 'password' => 'Password', + ], + 'messages' => [ + 'createSuperAdminSuccess' => + 'Your superadmin account has been created successfully. Login to start podcasting!', + 'databaseConnectError' => + 'Castopod could not connect to your database. Edit your database configuration and try again.', + 'writeError' => + "Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.", + ], +]; diff --git a/modules/Admin/Language/ko/Navigation.php b/modules/Admin/Language/ko/Navigation.php new file mode 100644 index 0000000000..610f14345d --- /dev/null +++ b/modules/Admin/Language/ko/Navigation.php @@ -0,0 +1,42 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'toggle_sidebar' => 'Toggle sidebar', + 'go_to_website' => 'Go to website', + 'go_to_admin' => 'Go to admin', + 'dashboard' => 'Dashboard', + 'admin' => 'Home', + 'podcasts' => 'Podcasts', + 'podcast-list' => 'All podcasts', + 'podcast-create' => 'New podcast', + 'podcast-import' => 'Import a podcast', + 'persons' => 'Persons', + 'person-list' => 'All persons', + 'person-create' => 'New person', + 'fediverse' => 'Fediverse', + 'fediverse-blocked-actors' => 'Blocked accounts', + 'fediverse-blocked-domains' => 'Blocked domains', + 'users' => 'Users', + 'user-list' => 'All users', + 'user-create' => 'New user', + 'pages' => 'Pages', + 'page-list' => 'All pages', + 'page-create' => 'New Page', + 'settings' => 'Settings', + 'settings-general' => 'General', + 'settings-theme' => 'Theme', + 'about' => 'About', + 'account' => [ + 'my-account' => 'My account', + 'change-password' => 'Change password', + 'logout' => 'Logout', + ], +]; diff --git a/modules/Admin/Language/ko/Notifications.php b/modules/Admin/Language/ko/Notifications.php new file mode 100644 index 0000000000..2b139d5181 --- /dev/null +++ b/modules/Admin/Language/ko/Notifications.php @@ -0,0 +1,19 @@ +<?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' => 'Notifications', + 'reply' => '{actor_username} replied to your post', + 'favourite' => '{actor_username} favourited your post', + 'reblog' => '{actor_username} shared your post', + 'follow' => '{actor_username} started following you', + 'no_notifications' => 'No notifications', + 'mark_all_as_read' => 'Mark all as read', +]; diff --git a/modules/Admin/Language/ko/Page.php b/modules/Admin/Language/ko/Page.php new file mode 100644 index 0000000000..b6f49de574 --- /dev/null +++ b/modules/Admin/Language/ko/Page.php @@ -0,0 +1,30 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'back_to_home' => 'Back to home', + 'page' => 'Page', + 'all_pages' => 'All pages', + 'create' => 'New page', + 'go_to_page' => 'Go to page', + 'edit' => 'Edit page', + 'delete' => 'Delete page', + 'form' => [ + 'title' => 'Title', + 'permalink' => 'Permalink', + 'content' => 'Content', + 'submit_create' => 'Create page', + 'submit_edit' => 'Save', + ], + 'messages' => [ + 'createSuccess' => 'The page “{pageTitle}†was created successfully!', + 'editSuccess' => 'The page was successfully updated!', + ], +]; diff --git a/modules/Admin/Language/ko/Pager.php b/modules/Admin/Language/ko/Pager.php new file mode 100644 index 0000000000..e25ee63810 --- /dev/null +++ b/modules/Admin/Language/ko/Pager.php @@ -0,0 +1,21 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'pageNavigation' => 'Page navigation', + 'first' => 'First', + 'previous' => 'Previous', + 'next' => 'Next', + 'last' => 'Last', + 'older' => 'Older', + 'newer' => 'Newer', + 'invalidTemplate' => '{0} is not a valid Pager template.', + 'invalidPaginationGroup' => '{0} is not a valid Pagination group.', +]; diff --git a/modules/Admin/Language/ko/Person.php b/modules/Admin/Language/ko/Person.php new file mode 100644 index 0000000000..a652be9fda --- /dev/null +++ b/modules/Admin/Language/ko/Person.php @@ -0,0 +1,65 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'persons' => 'Persons', + 'all_persons' => 'All persons', + 'no_person' => 'Nobody found!', + 'create' => 'Create a person', + 'view' => 'View person', + 'edit' => 'Edit person', + 'delete' => 'Delete person', + 'messages' => [ + 'createSuccess' => 'Person has been successfully created!', + 'editSuccess' => 'Person has been successfully updated!', + 'deleteSuccess' => 'Person has been removed!', + ], + 'form' => [ + 'avatar' => 'Avatar', + 'avatar_size_hint' => + 'Avatar must be squared and at least 400px wide and tall.', + 'full_name' => 'Full name', + 'full_name_hint' => 'This is the full name or alias of the person.', + 'unique_name' => 'Unique name', + 'unique_name_hint' => 'Used for URLs', + 'information_url' => 'Information URL', + 'information_url_hint' => + 'Url to a relevant resource of information about the person, such as a homepage or third-party profile platform.', + 'submit_create' => 'Create person', + 'submit_edit' => 'Save person', + ], + 'podcast_form' => [ + 'title' => 'Manage persons', + 'add_section_title' => 'Add persons to this podcast', + 'add_section_subtitle' => 'You may pick several persons and roles.', + 'persons' => 'Persons', + 'persons_hint' => + 'You may select one or several persons with the same roles. You need to create the persons first.', + 'roles' => 'Roles', + 'roles_hint' => + 'You may select none, one or several roles for a person.', + 'submit_add' => 'Add person(s)', + 'remove' => 'Remove', + ], + 'episode_form' => [ + 'title' => 'Manage persons', + 'add_section_title' => 'Add persons to this episode', + 'add_section_subtitle' => 'You may pick several persons and roles.', + 'persons' => 'Persons', + 'persons_hint' => + 'You may select one or several persons with the same roles. You need to create the persons first.', + 'roles' => 'Roles', + 'roles_hint' => + 'You may select none, one or several roles for a person.', + 'submit_add' => 'Add person(s)', + 'remove' => 'Remove', + ], + 'credits' => 'Credits', +]; diff --git a/modules/Admin/Language/ko/Platforms.php b/modules/Admin/Language/ko/Platforms.php new file mode 100644 index 0000000000..ab17d5999b --- /dev/null +++ b/modules/Admin/Language/ko/Platforms.php @@ -0,0 +1,30 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'title' => 'Platforms', + 'home_url' => 'Go to {platformName} website', + 'submit_url' => 'Submit your podcast on {platformName}', + 'visible' => 'Display in podcast homepage?', + 'on_embed' => 'Display on embeddable player?', + 'remove' => 'Remove {platformName}', + 'submit' => 'Save', + 'messages' => [ + 'updateSuccess' => 'Platform links have been successfully updated!', + 'removeLinkSuccess' => 'The platform link has been removed.', + 'removeLinkError' => + 'The platform link could not be removed. Try again.', + ], + 'description' => [ + 'podcasting' => 'The podcast ID on this platform', + 'social' => 'The podcast account ID on this platform', + 'funding' => 'Call to action message', + ], +]; diff --git a/modules/Admin/Language/ko/Podcast.php b/modules/Admin/Language/ko/Podcast.php new file mode 100644 index 0000000000..426b763b8b --- /dev/null +++ b/modules/Admin/Language/ko/Podcast.php @@ -0,0 +1,310 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'all_podcasts' => 'All podcasts', + 'no_podcast' => 'No podcast found!', + 'create' => 'Create podcast', + 'import' => 'Import podcast', + 'new_episode' => 'New Episode', + 'view' => 'View podcast', + 'edit' => 'Edit podcast', + 'publish' => 'Publish podcast', + 'publish_edit' => 'Edit publication', + 'delete' => 'Delete podcast', + 'see_episodes' => 'See episodes', + 'see_contributors' => 'See contributors', + 'go_to_page' => 'Go to page', + 'latest_episodes' => 'Latest episodes', + 'see_all_episodes' => 'See all episodes', + 'draft' => 'Draft', + 'messages' => [ + 'createSuccess' => 'Podcast 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.', + 'publishError' => 'This podcast is either already published or scheduled for publication.', + 'publishEditError' => 'This podcast is not scheduled for publication.', + 'publishCancelSuccess' => 'Podcast publication successfully cancelled!', + 'scheduleDateError' => 'Schedule date must be set!', + ], + 'form' => [ + 'identity_section_title' => 'Podcast identity', + 'identity_section_subtitle' => 'These fields allow you to get noticed.', + 'cover' => 'Podcast cover', + 'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.', + 'banner' => 'Podcast banner', + 'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.', + 'banner_delete' => 'Delete podcast banner', + 'title' => 'Title', + 'handle' => 'Handle', + 'handle_hint' => + 'Used to identify the podcast. Uppercase, lowercase, numbers and underscores are accepted.', + 'type' => [ + 'label' => 'Type', + 'episodic' => 'Episodic', + 'episodic_hint' => 'If episodes are intended to be consumed without any specific order. Newest episodes will be presented first.', + 'serial' => 'Serial', + 'serial_hint' => 'If episodes are intended to be consumed in sequential order. The oldest episodes will be presented first.', + ], + 'description' => 'Description', + 'classification_section_title' => 'Classification', + 'classification_section_subtitle' => + 'These fields will impact your audience and competition.', + 'language' => 'Language', + 'category' => 'Category', + 'category_placeholder' => 'Select a category…', + 'other_categories' => 'Other categories', + 'parental_advisory' => [ + 'label' => 'Parental advisory', + 'hint' => 'Does it contain explicit content?', + 'undefined' => 'undefined', + 'clean' => 'Clean', + 'explicit' => 'Explicit', + ], + 'author_section_title' => 'Author', + 'author_section_subtitle' => 'Who is managing the podcast?', + 'owner_name' => 'Owner name', + 'owner_name_hint' => + 'For administrative use only. Visible in the public RSS feed.', + 'owner_email' => 'Owner email', + 'owner_email_hint' => + 'Will be used by most platforms to verify the podcast ownership. Visible in the public RSS feed.', + 'publisher' => 'Publisher', + 'publisher_hint' => + 'The group responsible for creating the show. Often refers to the parent company or network of a podcast. This field is sometimes labeled as ’Author’.', + 'copyright' => 'Copyright', + 'location_section_title' => 'Location', + 'location_section_subtitle' => 'What place is this podcast about?', + 'location_name' => 'Location name or address', + 'location_name_hint' => 'This can be a real place or fictional', + 'monetization_section_title' => 'Monetization', + 'monetization_section_subtitle' => + 'Earn money thanks to your audience.', + 'premium' => 'Premium', + 'premium_by_default' => 'Episodes must be set as premium by default', + 'premium_by_default_hint' => 'Podcast episodes will be marked as premium by default. You can still choose to set some episodes, trailers or bonuses as public.', + 'payment_pointer' => 'Payment Pointer for Web Monetization', + 'payment_pointer_hint' => + 'This is your where you will receive money thanks to Web Monetization', + 'advanced_section_title' => 'Advanced Parameters', + 'advanced_section_subtitle' => + 'If you need RSS tags that Castopod does not handle, set them here.', + 'custom_rss' => 'Custom RSS tags for the podcast', + 'custom_rss_hint' => 'This will be injected within the â¬channelâ tag.', + 'new_feed_url' => 'New feed URL', + 'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.', + 'old_feed_url' => 'Old feed URL', + 'update_feed' => 'Update feed', + 'update_feed_tip' => 'Import this podcast\'s latest episodes', + 'partnership' => 'Partnership', + 'partner_id' => 'ID', + 'partner_link_url' => 'Link URL', + 'partner_image_url' => 'Image URL', + 'partner_id_hint' => 'Your own partner ID', + 'partner_link_url_hint' => 'The generic partner link address', + 'partner_image_url_hint' => 'The generic partner image address', + 'status_section_title' => 'Status', + 'block' => 'Podcast should be hidden from public catalogues', + 'block_hint' => + 'The podcast show or hide status: toggling this on prevents the entire podcast from appearing in Apple Podcasts, Google Podcasts, and any third party apps that pull shows from these directories. (Not guaranteed)', + 'complete' => 'Podcast will not be having new episodes', + 'lock' => 'Prevent podcast from being copied', + 'lock_hint' => + 'The purpose is to tell other podcast platforms whether they are allowed to import this feed. A value of yes means that any attempt to import this feed into a new platform should be rejected.', + 'submit_create' => 'Create podcast', + 'submit_edit' => 'Save podcast', + ], + 'category_options' => [ + 'uncategorized' => 'uncategorized', + 'arts' => 'Arts', + 'business' => 'Business', + 'comedy' => 'Comedy', + 'education' => 'Education', + 'fiction' => 'Fiction', + 'government' => 'Government', + 'health_and_fitness' => 'Health & Fitness', + 'history' => 'History', + 'kids_and_family' => 'Kids & Family', + 'leisure' => 'Leisure', + 'music' => 'Music', + 'news' => 'News', + 'religion_and_spirituality' => 'Religion & Spirituality', + 'science' => 'Science', + 'society_and_culture' => 'Society & Culture', + 'sports' => 'Sports', + 'technology' => 'Technology', + 'true_crime' => 'True Crime', + 'tv_and_film' => 'TV & Film', + 'books' => 'Books', + 'design' => 'Design', + 'fashion_and_beauty' => 'Fashion & Beauty', + 'food' => 'Food', + 'performing_arts' => 'Performing Arts', + 'visual_arts' => 'Visual Arts', + 'careers' => 'Careers', + 'entrepreneurship' => 'Entrepreneurship', + 'investing' => 'Investing', + 'management' => 'Management', + 'marketing' => 'Marketing', + 'non_profit' => 'Non-Profit', + 'comedy_interviews' => 'Comedy Interviews', + 'improv' => 'Improv', + 'stand_up' => 'Stand-Up', + 'courses' => 'Courses', + 'how_to' => 'How To', + 'language_learning' => 'Language Learning', + 'self_improvement' => 'Self-Improvement', + 'comedy_fiction' => 'Comedy Fiction', + 'drama' => 'Drama', + 'science_fiction' => 'Science Fiction', + 'alternative_health' => 'Alternative Health', + 'fitness' => 'Fitness', + 'medicine' => 'Medicine', + 'mental_health' => 'Mental Health', + 'nutrition' => 'Nutrition', + 'sexuality' => 'Sexuality', + 'education_for_kids' => 'Education for Kids', + 'parenting' => 'Parenting', + 'pets_and_animals' => 'Pets & Animals', + 'stories_for_kids' => 'Stories for Kids', + 'animation_and_manga' => 'Animation & Manga', + 'automotive' => 'Automotive', + 'aviation' => 'Aviation', + 'crafts' => 'Crafts', + 'games' => 'Games', + 'hobbies' => 'Hobbies', + 'home_and_garden' => 'Home & Garden', + 'video_games' => 'Video Games', + 'music_commentary' => 'Music Commentary', + 'music_history' => 'Music History', + 'music_interviews' => 'Music Interviews', + 'business_news' => 'Business News', + 'daily_news' => 'Daily News', + 'entertainment_news' => 'Entertainment News', + 'news_commentary' => 'News Commentary', + 'politics' => 'Politics', + 'sports_news' => 'Sports News', + 'tech_news' => 'Tech News', + 'buddhism' => 'Buddhism', + 'christianity' => 'Christianity', + 'hinduism' => 'Hinduism', + 'islam' => 'Islam', + 'judaism' => 'Judaism', + 'religion' => 'Religion', + 'spirituality' => 'Spirituality', + 'astronomy' => 'Astronomy', + 'chemistry' => 'Chemistry', + 'earth_sciences' => 'Earth Sciences', + 'life_sciences' => 'Life Sciences', + 'mathematics' => 'Mathematics', + 'natural_sciences' => 'Natural Sciences', + 'nature' => 'Nature', + 'physics' => 'Physics', + 'social_sciences' => 'Social Sciences', + 'documentary' => 'Documentary', + 'personal_journals' => 'Personal Journals', + 'philosophy' => 'Philosophy', + 'places_and_travel' => 'Places & Travel', + 'relationships' => 'Relationships', + 'baseball' => 'Baseball', + 'basketball' => 'Basketball', + 'cricket' => 'Cricket', + 'fantasy_sports' => 'Fantasy Sports', + 'football' => 'Football', + 'golf' => 'Golf', + 'hockey' => 'Hockey', + 'rugby' => 'Rugby', + 'running' => 'Running', + 'soccer' => 'Soccer', + 'swimming' => 'Swimming', + 'tennis' => 'Tennis', + 'volleyball' => 'Volleyball', + 'wilderness' => 'Wilderness', + 'wrestling' => 'Wrestling', + 'after_shows' => 'After Shows', + 'film_history' => 'Film History', + 'film_interviews' => 'Film Interviews', + 'film_reviews' => 'Film Reviews', + 'tv_reviews' => 'TV Reviews', + ], + 'publish_form' => [ + 'back_to_podcast_dashboard' => 'Back to podcast dashboard', + 'post' => 'Your announcement post', + 'post_hint' => + "Write a message to announce the publication of your podcast. The message will be featured in your podcast's homepage.", + 'message_placeholder' => 'Write your message…', + 'submit' => 'Publish', + 'publication_date' => 'Publication date', + 'publication_method' => [ + 'now' => 'Now', + 'schedule' => 'Schedule', + ], + 'scheduled_publication_date' => 'Scheduled publication date', + 'scheduled_publication_date_hint' => + 'You can schedule the podcast release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm', + 'submit_edit' => 'Edit publication', + 'cancel_publication' => 'Cancel publication', + 'message_warning' => 'You did not write a message for your announcement post!', + 'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your podcast.', + 'message_warning_submit' => 'Publish anyway', + ], + 'publication_status_banner' => [ + 'draft_mode' => 'draft mode', + 'not_published' => 'This podcast is not yet published.', + 'scheduled' => 'This podcast is scheduled for publication on {publication_date}.', + ], + 'delete_form' => [ + 'disclaimer' => + "Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.", + 'understand' => 'I understand, I want the podcast to be permanently deleted', + 'submit' => 'Delete', + ], + 'by' => 'By {publisher}', + 'season' => 'Season {seasonNumber}', + 'list_of_episodes_year' => '{year} episodes ({episodeCount})', + 'list_of_episodes_season' => + 'Season {seasonNumber} episodes ({episodeCount})', + 'no_episode' => 'No episode found!', + 'follow' => 'Follow', + 'followers' => '{numberOfFollowers, plural, + one {# follower} + other {# followers} + }', + 'posts' => '{numberOfPosts, plural, + one {# post} + other {# posts} + }', + 'activity' => 'Activity', + 'episodes' => 'Episodes', + 'sponsor' => 'Sponsor', + 'funding_links' => 'Funding links for {podcastTitle}', + 'find_on' => 'Find {podcastTitle} on', + 'listen_on' => 'Listen on', +]; diff --git a/modules/Admin/Language/ko/PodcastImport.php b/modules/Admin/Language/ko/PodcastImport.php new file mode 100644 index 0000000000..7c3ef67d1f --- /dev/null +++ b/modules/Admin/Language/ko/PodcastImport.php @@ -0,0 +1,37 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'warning' => + 'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.', + 'old_podcast_section_title' => 'The podcast to import', + 'old_podcast_section_subtitle' => + 'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.', + 'imported_feed_url' => 'Feed URL', + 'imported_feed_url_hint' => 'The feed must be in xml or rss format.', + 'new_podcast_section_title' => 'The new podcast', + 'advanced_params_section_title' => 'Advanced parameters', + 'advanced_params_section_subtitle' => + 'Keep the default values if you have no idea of what the fields are for.', + 'slug_field' => 'Field to be used to calculate episode slug', + 'description_field' => + 'Source field used for episode description / show notes', + 'force_renumber' => 'Force episodes renumbering', + 'force_renumber_hint' => + 'Use this if your podcast does not have episode numbers but wish to set them during import.', + 'season_number' => 'Season number', + 'season_number_hint' => + 'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.', + 'max_episodes' => 'Maximum number of episodes to import', + 'max_episodes_hint' => 'Leave blank to import all episodes', + 'lock_import' => + 'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.', + 'submit' => 'Import podcast', +]; diff --git a/modules/Admin/Language/ko/PodcastNavigation.php b/modules/Admin/Language/ko/PodcastNavigation.php new file mode 100644 index 0000000000..b4d7ddc089 --- /dev/null +++ b/modules/Admin/Language/ko/PodcastNavigation.php @@ -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 [ + 'go_to_page' => 'Go to podcast page', + 'dashboard' => 'Podcast dashboard', + 'podcast-view' => 'Home', + 'podcast-edit' => 'Edit podcast', + 'podcast-persons-manage' => 'Manage persons', + 'episodes' => 'Episodes', + 'episode-list' => 'All episodes', + 'episode-create' => 'New episode', + 'analytics' => 'Analytics', + 'podcast-analytics' => 'Audience overview', + 'podcast-analytics-webpages' => 'Web pages visits', + 'podcast-analytics-locations' => 'Locations', + 'podcast-analytics-unique-listeners' => 'Unique listeners', + 'podcast-analytics-players' => 'Players', + 'podcast-analytics-listening-time' => 'Listening time', + 'podcast-analytics-time-periods' => 'Time periods', + 'premium' => 'Premium', + 'subscription-list' => 'All subscriptions', + 'subscription-add' => 'Add subscription', + 'contributors' => 'Contributors', + 'contributor-list' => 'All contributors', + 'contributor-add' => 'Add contributor', + 'platforms' => 'External platforms', + 'platforms-podcasting' => 'Podcasting', + 'platforms-social' => 'Social networks', + 'platforms-funding' => 'Funding', +]; diff --git a/modules/Admin/Language/ko/Settings.php b/modules/Admin/Language/ko/Settings.php new file mode 100644 index 0000000000..4a70dcbaa0 --- /dev/null +++ b/modules/Admin/Language/ko/Settings.php @@ -0,0 +1,58 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'title' => 'General settings', + 'instance' => [ + 'title' => 'Instance', + 'site_icon' => 'Site icon', + 'site_icon_delete' => 'Delete site icon', + 'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.', + 'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.', + 'site_name' => 'Site name', + 'site_description' => 'Site description', + 'submit' => 'Save', + 'editSuccess' => 'Instance has been updated successfully!', + 'deleteIconSuccess' => 'Site icon has been remove successfully!', + ], + 'images' => [ + 'title' => 'Images', + 'subtitle' => 'Here you can regenerate all images based on the originals that were uploaded. To be used if you find that some images are missing. This task may take a while.', + 'regenerate' => 'Regenerate images', + 'regenerationSuccess' => 'All images have been regenerated successfully!', + ], + 'housekeeping' => [ + 'title' => 'Housekeeping', + 'subtitle' => 'Runs various housekeeping tasks. Use this feature if you ever encounter issues with media files or data integrity. These tasks may take a while.', + 'reset_counts' => 'Reset counts', + 'reset_counts_helper' => 'This option will recalculate and reset all data counts (number of followers, posts, comments, …).', + 'rewrite_media' => 'Rewrite media metadata', + 'rewrite_media_helper' => 'This option will delete all superfluous media files and recreate them (images, audio files, transcripts, chapters, …)', + 'rename_episodes_files' => 'Rename episode audio files', + 'rename_episodes_files_hint' => 'This option will rename all episodes audio files to a random string of characters. Use this if one of your private episodes link was leaked as this will effectively hide it.', + 'clear_cache' => 'Clear all cache', + 'clear_cache_helper' => 'This option will flush redis cache or writable/cache files.', + 'run' => 'Run housekeeping', + 'runSuccess' => 'Housekeeping has been run successfully!', + ], + 'theme' => [ + 'title' => 'Theme', + 'accent_section_title' => 'Accent color', + 'accent_section_subtitle' => 'Choose the color to determine the look and feel of all public pages.', + 'pine' => 'Pine', + 'crimson' => 'Crimson', + 'amber' => 'Amber', + 'lake' => 'Lake', + 'jacaranda' => 'Jacaranda', + 'onyx' => 'Onyx', + 'submit' => 'Save', + 'setInstanceThemeSuccess' => 'Theme has been updated successfully!', + ], +]; diff --git a/modules/Admin/Language/ko/Soundbite.php b/modules/Admin/Language/ko/Soundbite.php new file mode 100644 index 0000000000..a3f828fe09 --- /dev/null +++ b/modules/Admin/Language/ko/Soundbite.php @@ -0,0 +1,31 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2021 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'list' => [ + 'title' => 'Soundbites', + 'soundbite' => 'Soundbite', + ], + 'messages' => [ + 'createSuccess' => 'Soundbite has been successfully created!', + 'deleteSuccess' => 'Soundbite has been successfully removed!', + ], + 'form' => [ + 'title' => 'New soundbite', + 'soundbite_title' => 'Soundbite title', + 'start_time' => 'Start at', + 'duration' => 'Duration', + 'submit' => 'Create soundbite', + ], + 'play' => 'Play soundbite', + 'stop' => 'Stop soundbite', + 'create' => 'New soundbite', + 'delete' => 'Delete soundbite', +]; diff --git a/modules/Admin/Language/ko/Validation.php b/modules/Admin/Language/ko/Validation.php new file mode 100644 index 0000000000..750b19688f --- /dev/null +++ b/modules/Admin/Language/ko/Validation.php @@ -0,0 +1,18 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2020 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'min_dims' => + '{field} is either not an image, or it is not wide or tall enough.', + 'is_image_ratio' => + '{field} is either not an image or not of the right ratio.', + 'validate_url' => + 'The {field} field must be a valid URL (eg. https://example.com/).', +]; diff --git a/modules/Admin/Language/ko/VideoClip.php b/modules/Admin/Language/ko/VideoClip.php new file mode 100644 index 0000000000..638de697bb --- /dev/null +++ b/modules/Admin/Language/ko/VideoClip.php @@ -0,0 +1,72 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2021 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'list' => [ + 'title' => 'Video clips', + 'status' => [ + 'label' => 'Status', + 'queued' => 'queued', + 'queued_hint' => 'Clip is waiting to be processed.', + 'pending' => 'pending', + 'pending_hint' => 'Clip will be generated shortly.', + 'running' => 'running', + 'running_hint' => 'Clip is being generated.', + 'failed' => 'failed', + 'failed_hint' => 'Clip could not be generated: script failure.', + 'passed' => 'passed', + 'passed_hint' => 'Clip was generated successfully!', + ], + 'clip' => 'Clip', + 'duration' => 'Job duration', + ], + 'title' => 'Video clip: {videoClipLabel}', + 'download_clip' => 'Download clip', + 'create' => 'New video clip', + 'go_to_page' => 'Go to clip page', + 'retry' => 'Retry clip generation', + 'delete' => 'Delete clip', + 'logs' => 'Job logs', + 'messages' => [ + 'alreadyExistingError' => 'The video clip you are trying to create already exists!', + 'addToQueueSuccess' => 'Video clip has been added to queue, awaiting to be created!', + 'deleteSuccess' => 'Video clip has been successfully removed!', + ], + 'format' => [ + 'landscape' => 'Landscape', + 'portrait' => 'Portrait', + 'squared' => 'Squared', + ], + 'form' => [ + 'title' => 'New video clip', + 'params_section_title' => 'Video clip parameters', + 'clip_title' => 'Clip title', + 'format' => [ + 'label' => 'Choose a format', + 'landscape_hint' => 'With a 16:9 ratio, landscape videos are great for PeerTube, Youtube and Vimeo.', + 'portrait_hint' => 'With a 9:16 ratio, portrait videos are great for TikTok, Youtube shorts and Instagram stories.', + 'squared_hint' => 'With a 1:1 ratio, squared videos are great for Mastodon, Facebook, Twitter and LinkedIn.', + ], + 'theme' => 'Select a theme', + 'start_time' => 'Start at', + 'duration' => 'Duration', + 'trim_start' => 'Trim start', + 'trim_end' => 'Trim end', + 'submit' => 'Create video clip', + ], + 'requirements' => [ + 'title' => 'Missing requirements', + 'missing' => 'You have missing requirements. Make sure to add all the required items to be allowed creating a video for this episode!', + 'ffmpeg' => 'FFmpeg', + 'gd' => 'Graphics Draw (GD)', + 'freetype' => 'Freetype library for GD', + 'transcript' => 'Transcript file (.srt)', + ], +]; diff --git a/modules/Admin/Language/nl/AboutCastopod.php b/modules/Admin/Language/nl/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/nl/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/nl/Breadcrumb.php b/modules/Admin/Language/nl/Breadcrumb.php index a5c08f435d..f7821de4ee 100644 --- a/modules/Admin/Language/nl/Breadcrumb.php +++ b/modules/Admin/Language/nl/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'paginas', 'settings' => 'instellingen', 'theme' => 'thema', + 'about' => 'about', 'add' => 'toevoegen', 'new' => 'nieuw', 'edit' => 'bewerken', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'publicatie ongedaan maken', 'delete' => 'verwijder', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'blokkeerlijst', 'users' => 'gebruikers', diff --git a/modules/Admin/Language/nl/Navigation.php b/modules/Admin/Language/nl/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/nl/Navigation.php +++ b/modules/Admin/Language/nl/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/nn-NO/AboutCastopod.php b/modules/Admin/Language/nn-NO/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/nn-NO/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/nn-NO/Breadcrumb.php b/modules/Admin/Language/nn-NO/Breadcrumb.php index d59e34efed..c191408eff 100644 --- a/modules/Admin/Language/nn-NO/Breadcrumb.php +++ b/modules/Admin/Language/nn-NO/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'sider', 'settings' => 'innstillingar', 'theme' => 'bunad', + 'about' => 'about', 'add' => 'legg til', 'new' => 'ny', 'edit' => 'rediger', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'avpubliser', 'delete' => 'slett', + 'remove' => 'remove', 'fediverse' => 'fødiverset', 'block-lists' => 'blokkeringslister', 'users' => 'brukarar', diff --git a/modules/Admin/Language/nn-NO/Navigation.php b/modules/Admin/Language/nn-NO/Navigation.php index ce1b2185b2..75bd5b42c3 100644 --- a/modules/Admin/Language/nn-NO/Navigation.php +++ b/modules/Admin/Language/nn-NO/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Innstillingar', 'settings-general' => 'Generelt', 'settings-theme' => 'Bunad', + 'about' => 'About', 'account' => [ 'my-account' => 'Kontoen min', 'change-password' => 'Endre passord', diff --git a/modules/Admin/Language/oc/AboutCastopod.php b/modules/Admin/Language/oc/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/oc/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/oc/Breadcrumb.php b/modules/Admin/Language/oc/Breadcrumb.php index f3269bfa4e..b1742abfb1 100644 --- a/modules/Admin/Language/oc/Breadcrumb.php +++ b/modules/Admin/Language/oc/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pages', 'settings' => 'settings', 'theme' => 'theme', + 'about' => 'about', 'add' => 'add', 'new' => 'new', 'edit' => 'edit', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'unpublish', 'delete' => 'delete', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'block lists', 'users' => 'users', diff --git a/modules/Admin/Language/oc/Navigation.php b/modules/Admin/Language/oc/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/oc/Navigation.php +++ b/modules/Admin/Language/oc/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/pl/AboutCastopod.php b/modules/Admin/Language/pl/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/pl/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/pl/Breadcrumb.php b/modules/Admin/Language/pl/Breadcrumb.php index d472ef1063..3d90674734 100644 --- a/modules/Admin/Language/pl/Breadcrumb.php +++ b/modules/Admin/Language/pl/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'strony', 'settings' => 'ustawienia', 'theme' => 'motyw', + 'about' => 'about', 'add' => 'dodaj', 'new' => 'nowy', 'edit' => 'edytuj', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'cofnij publikacjÄ™', 'delete' => 'usuÅ„', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'listy blokowanych', 'users' => 'użytkownicy', diff --git a/modules/Admin/Language/pl/Navigation.php b/modules/Admin/Language/pl/Navigation.php index d4a4410497..3b2b74ca2e 100644 --- a/modules/Admin/Language/pl/Navigation.php +++ b/modules/Admin/Language/pl/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Ustawienia', 'settings-general' => 'Ogólne', 'settings-theme' => 'Motyw', + 'about' => 'About', 'account' => [ 'my-account' => 'Moje konto', 'change-password' => 'ZmieÅ„ hasÅ‚o', diff --git a/modules/Admin/Language/pt-BR/AboutCastopod.php b/modules/Admin/Language/pt-BR/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/pt-BR/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/pt-BR/Breadcrumb.php b/modules/Admin/Language/pt-BR/Breadcrumb.php index 028fb11cd7..47646fddf8 100644 --- a/modules/Admin/Language/pt-BR/Breadcrumb.php +++ b/modules/Admin/Language/pt-BR/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'páginas', 'settings' => 'configurações', 'theme' => 'tema', + 'about' => 'about', 'add' => 'adicionar', 'new' => 'novo', 'edit' => 'editar', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'despublicar', 'delete' => 'excluir', + 'remove' => 'remove', 'fediverse' => 'fediverso', 'block-lists' => 'listas de bloqueio', 'users' => 'usuários', diff --git a/modules/Admin/Language/pt-BR/Navigation.php b/modules/Admin/Language/pt-BR/Navigation.php index c0e86154cd..92b351aebe 100644 --- a/modules/Admin/Language/pt-BR/Navigation.php +++ b/modules/Admin/Language/pt-BR/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Confirgurações', 'settings-general' => 'Geral', 'settings-theme' => 'Tema', + 'about' => 'About', 'account' => [ 'my-account' => 'Minha conta', 'change-password' => 'Alterar senha', diff --git a/modules/Admin/Language/pt/AboutCastopod.php b/modules/Admin/Language/pt/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/pt/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/pt/Breadcrumb.php b/modules/Admin/Language/pt/Breadcrumb.php index f3269bfa4e..b1742abfb1 100644 --- a/modules/Admin/Language/pt/Breadcrumb.php +++ b/modules/Admin/Language/pt/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pages', 'settings' => 'settings', 'theme' => 'theme', + 'about' => 'about', 'add' => 'add', 'new' => 'new', 'edit' => 'edit', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'unpublish', 'delete' => 'delete', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'block lists', 'users' => 'users', diff --git a/modules/Admin/Language/pt/Navigation.php b/modules/Admin/Language/pt/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/pt/Navigation.php +++ b/modules/Admin/Language/pt/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/ru/AboutCastopod.php b/modules/Admin/Language/ru/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/ru/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/ru/Breadcrumb.php b/modules/Admin/Language/ru/Breadcrumb.php index 33432cfdd5..72874de6df 100644 --- a/modules/Admin/Language/ru/Breadcrumb.php +++ b/modules/Admin/Language/ru/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'Ñтраниц', 'settings' => 'наÑтройки', 'theme' => 'тема', + 'about' => 'about', 'add' => 'добавить', 'new' => 'новаÑ', 'edit' => 'изменить', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'ÑнÑÑ‚ÑŒ Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸', 'delete' => 'удалить', + 'remove' => 'remove', 'fediverse' => 'ФедивёрÑ', 'block-lists' => 'ÑпиÑок блокируемых', 'users' => 'пользователи', diff --git a/modules/Admin/Language/ru/Navigation.php b/modules/Admin/Language/ru/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/ru/Navigation.php +++ b/modules/Admin/Language/ru/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/sk/AboutCastopod.php b/modules/Admin/Language/sk/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/sk/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/sk/Breadcrumb.php b/modules/Admin/Language/sk/Breadcrumb.php index 3c7422811e..4afaa5d4b3 100644 --- a/modules/Admin/Language/sk/Breadcrumb.php +++ b/modules/Admin/Language/sk/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'stránky', 'settings' => 'nastavenia', 'theme' => 'vzhľad', + 'about' => 'about', 'add' => 'pridaÅ¥', 'new' => 'pridaÅ¥', 'edit' => 'upraviÅ¥', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'zruÅ¡iÅ¥ zverejnenie', 'delete' => 'vymazaÅ¥', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'zoznamy blokovaných', 'users' => 'použÃvatelia', diff --git a/modules/Admin/Language/sk/Navigation.php b/modules/Admin/Language/sk/Navigation.php index f2c9e53abf..45badfd7f9 100644 --- a/modules/Admin/Language/sk/Navigation.php +++ b/modules/Admin/Language/sk/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Nastavenia', 'settings-general' => 'VÅ¡eobecné', 'settings-theme' => 'Vzhľad', + 'about' => 'About', 'account' => [ 'my-account' => 'Môj úÄet', 'change-password' => 'ZmeniÅ¥ heslo', diff --git a/modules/Admin/Language/sv/AboutCastopod.php b/modules/Admin/Language/sv/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/sv/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/sv/Breadcrumb.php b/modules/Admin/Language/sv/Breadcrumb.php index f3269bfa4e..b1742abfb1 100644 --- a/modules/Admin/Language/sv/Breadcrumb.php +++ b/modules/Admin/Language/sv/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => 'pages', 'settings' => 'settings', 'theme' => 'theme', + 'about' => 'about', 'add' => 'add', 'new' => 'new', 'edit' => 'edit', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'unpublish', 'delete' => 'delete', + 'remove' => 'remove', 'fediverse' => 'fediverse', 'block-lists' => 'block lists', 'users' => 'users', diff --git a/modules/Admin/Language/sv/Navigation.php b/modules/Admin/Language/sv/Navigation.php index 68d4609d5d..610f14345d 100644 --- a/modules/Admin/Language/sv/Navigation.php +++ b/modules/Admin/Language/sv/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => 'Settings', 'settings-general' => 'General', 'settings-theme' => 'Theme', + 'about' => 'About', 'account' => [ 'my-account' => 'My account', 'change-password' => 'Change password', diff --git a/modules/Admin/Language/zh-Hans/AboutCastopod.php b/modules/Admin/Language/zh-Hans/AboutCastopod.php new file mode 100644 index 0000000000..3fb62afffe --- /dev/null +++ b/modules/Admin/Language/zh-Hans/AboutCastopod.php @@ -0,0 +1,22 @@ +<?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' => 'About Castopod', + 'host_name' => 'Host name', + 'version' => 'Castopod version', + 'php_version' => 'PHP version', + 'os' => 'Operating System', + 'languages' => 'Languages', + 'update_database' => 'Update database', + 'messages' => [ + 'databaseUpdateSuccess' => 'Database is up to date!', + ], +]; diff --git a/modules/Admin/Language/zh-Hans/Breadcrumb.php b/modules/Admin/Language/zh-Hans/Breadcrumb.php index 80105ec375..9d90fe9013 100644 --- a/modules/Admin/Language/zh-Hans/Breadcrumb.php +++ b/modules/Admin/Language/zh-Hans/Breadcrumb.php @@ -19,6 +19,7 @@ return [ 'pages' => '页', 'settings' => '设置', 'theme' => '主题', + 'about' => 'about', 'add' => 'æ·»åŠ ', 'new' => '新建', 'edit' => '编辑', @@ -28,6 +29,7 @@ return [ 'publish-date-edit' => 'edit publication date', 'unpublish' => 'å–消å‘布', 'delete' => 'åˆ é™¤', + 'remove' => 'remove', 'fediverse' => 'è”邦宇宙', 'block-lists' => 'å°ç¦åˆ—表', 'users' => '用户', diff --git a/modules/Admin/Language/zh-Hans/Navigation.php b/modules/Admin/Language/zh-Hans/Navigation.php index 9cf34c78c3..4be5629014 100644 --- a/modules/Admin/Language/zh-Hans/Navigation.php +++ b/modules/Admin/Language/zh-Hans/Navigation.php @@ -33,6 +33,7 @@ return [ 'settings' => '设置', 'settings-general' => '通用', 'settings-theme' => '主题', + 'about' => 'About', 'account' => [ 'my-account' => '我的å¸æˆ·', 'change-password' => '修改密ç ', diff --git a/modules/Auth/Language/ar/Auth.php b/modules/Auth/Language/ar/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/ar/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/br/Auth.php b/modules/Auth/Language/br/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/br/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/ca/Auth.php b/modules/Auth/Language/ca/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/ca/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/de/Auth.php b/modules/Auth/Language/de/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/de/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/el/Auth.php b/modules/Auth/Language/el/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/el/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/es/Auth.php b/modules/Auth/Language/es/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/es/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/fa/Auth.php b/modules/Auth/Language/fa/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/fa/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/fr/Auth.php b/modules/Auth/Language/fr/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/fr/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/gd/Auth.php b/modules/Auth/Language/gd/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/gd/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/gl/Auth.php b/modules/Auth/Language/gl/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/gl/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/id/Auth.php b/modules/Auth/Language/id/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/id/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/it/Auth.php b/modules/Auth/Language/it/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/it/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/ko/Auth.php b/modules/Auth/Language/ko/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/ko/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/nl/Auth.php b/modules/Auth/Language/nl/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/nl/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/nn-NO/Auth.php b/modules/Auth/Language/nn-NO/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/nn-NO/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/oc/Auth.php b/modules/Auth/Language/oc/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/oc/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/pl/Auth.php b/modules/Auth/Language/pl/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/pl/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/pt-BR/Auth.php b/modules/Auth/Language/pt-BR/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/pt-BR/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/pt/Auth.php b/modules/Auth/Language/pt/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/pt/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/ru/Auth.php b/modules/Auth/Language/ru/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/ru/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/sk/Auth.php b/modules/Auth/Language/sk/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/sk/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/sv/Auth.php b/modules/Auth/Language/sv/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/sv/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Auth/Language/zh-Hans/Auth.php b/modules/Auth/Language/zh-Hans/Auth.php new file mode 100644 index 0000000000..09e3cd6b0b --- /dev/null +++ b/modules/Auth/Language/zh-Hans/Auth.php @@ -0,0 +1,93 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'instance_groups' => [ + 'owner' => [ + 'title' => 'Instance Owner', + 'description' => 'The Castopod owner.', + ], + 'superadmin' => [ + 'title' => 'Super admin', + 'description' => 'Has complete control over Castopod.', + ], + 'manager' => [ + 'title' => 'Manager', + 'description' => 'Manages Castopod\'s content.', + ], + 'podcaster' => [ + 'title' => 'Podcaster', + 'description' => 'General users of Castopod.', + ], + ], + 'instance_permissions' => [ + 'admin.access' => 'Can access the Castopod admin area.', + 'admin.settings' => 'Can access the Castopod settings.', + 'users.manage' => 'Can manage Castopod users.', + 'persons.manage' => 'Can manage persons.', + 'pages.manage' => 'Can manage pages.', + 'podcasts.view' => 'Can view all podcasts.', + 'podcasts.create' => 'Can create new podcasts.', + 'podcasts.import' => 'Can import podcasts.', + 'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.', + ], + 'podcast_groups' => [ + 'owner' => [ + 'title' => 'Podcast Owner', + 'description' => 'The podcast owner.', + ], + 'admin' => [ + 'title' => 'Admin', + 'description' => 'Has complete control of podcast #{id}.', + ], + 'editor' => [ + 'title' => 'Editor', + 'description' => 'Manages content and publications of podcast #{id}.', + ], + 'author' => [ + 'title' => 'Author', + 'description' => 'Manages content of podcast #{id} but cannot publish them.', + ], + 'guest' => [ + 'title' => 'Guest', + 'description' => 'General contributor of the podcast #{id}.', + ], + ], + 'podcast_permissions' => [ + 'view' => 'Can view dashboard and analytics of podcast #{id}.', + 'edit' => 'Can edit podcast #{id}.', + 'delete' => 'Can delete podcast #{id}.', + 'manage-import' => 'Can synchronize imported podcast #{id}.', + 'manage-persons' => 'Can manage subscriptions of podcast #{id}.', + 'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.', + 'manage-contributors' => 'Can manage contributors of podcast #{id}.', + 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', + 'manage-publications' => 'Can publish podcast #{id}.', + 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', + 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', + 'episodes.create' => 'Can create episodes for podcast #{id}.', + 'episodes.edit' => 'Can edit episodes of podcast #{id}.', + 'episodes.delete' => 'Can delete episodes of podcast #{id}.', + 'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.', + 'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.', + 'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.', + 'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.', + ], + + // missing keys + 'code' => 'Your 6-digit code', + + 'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.', + 'set_password' => 'Set your password', + + // Welcome email + 'welcomeSubject' => 'You\'ve been invited to {siteName}', + 'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.', +]; diff --git a/modules/Install/Language/ko/Install.php b/modules/Install/Language/ko/Install.php new file mode 100644 index 0000000000..1f66ef118f --- /dev/null +++ b/modules/Install/Language/ko/Install.php @@ -0,0 +1,62 @@ +<?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' => 'Castopod installer', + 'manual_config' => 'Manual configuration', + 'manual_config_subtitle' => + 'Create a `.env` file with your settings and refresh the page to continue installation.', + 'form' => [ + 'instance_config' => 'Instance configuration', + 'hostname' => 'Hostname', + 'media_base_url' => 'Media base URL', + 'media_base_url_hint' => + 'If you use a CDN and/or an external analytics service, you may set them here.', + 'admin_gateway' => 'Admin gateway', + 'admin_gateway_hint' => + 'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.', + 'auth_gateway' => 'Auth gateway', + 'auth_gateway_hint' => + 'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.', + 'database_config' => 'Database configuration', + 'database_config_hint' => + 'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.', + 'db_hostname' => 'Database hostname', + 'db_name' => 'Database name', + 'db_username' => 'Database username', + 'db_password' => 'Database password', + 'db_prefix' => 'Database prefix', + 'db_prefix_hint' => + "The prefix of the Castopod table names, leave as is if you don't know what it means.", + 'cache_config' => 'Cache configuration', + 'cache_config_hint' => + 'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.', + 'cache_handler' => 'Cache handler', + 'cacheHandlerOptions' => [ + 'file' => 'File', + 'redis' => 'Redis', + 'predis' => 'Predis', + ], + 'next' => 'Next', + 'submit' => 'Finish install', + 'create_superadmin' => 'Create your superadmin account', + 'email' => 'Email', + 'username' => 'Username', + 'password' => 'Password', + ], + 'messages' => [ + 'createSuperAdminSuccess' => + 'Your superadmin account has been created successfully. Login to start podcasting!', + 'databaseConnectError' => + 'Castopod could not connect to your database. Edit your database configuration and try again.', + 'writeError' => + "Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.", + ], +]; diff --git a/modules/PremiumPodcasts/Language/ko/PremiumPodcasts.php b/modules/PremiumPodcasts/Language/ko/PremiumPodcasts.php new file mode 100644 index 0000000000..18c0dd4e4e --- /dev/null +++ b/modules/PremiumPodcasts/Language/ko/PremiumPodcasts.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'podcast_is_premium' => 'Podcast contains premium episodes', + 'episode_is_premium' => 'Episode is premium, only available to premium subscribers', + 'unlock_episode' => 'This episode is for premium subscribers only. Click to unlock it!', + 'banner_unlock' => 'This podcast contains premium episodes, only available to premium subscribers.', + 'banner_lock' => 'Podcast is unlocked, enjoy the premium episodes!', + 'subscribe' => 'Subscribe', + 'lock' => 'Lock', + 'unlock' => 'Unlock', + 'unlock_form' => [ + 'title' => 'Premium content', + 'subtitle' => 'This podcast contains locked premium episodes! Do you have the key to unlock them?', + 'token' => 'Enter your key', + 'token_hint' => 'If you are subscribed to {podcastTitle}, you may copy the key that was sent to you via email and paste it here.', + 'submit' => 'Unlock all episodes!', + 'call_to_action' => 'Unlock all episodes of {podcastTitle}:', + 'subscribe_cta' => 'Subscribe now!', + ], + 'messages' => [ + 'unlockSuccess' => 'Podcast was successfully unlocked! Enjoy the premium episodes!', + 'unlockBadAttempt' => 'Your key does not seem to be working…', + 'lockSuccess' => 'Podcast was successfully locked!', + ], +]; diff --git a/modules/PremiumPodcasts/Language/ko/Subscription.php b/modules/PremiumPodcasts/Language/ko/Subscription.php new file mode 100644 index 0000000000..f8af256f70 --- /dev/null +++ b/modules/PremiumPodcasts/Language/ko/Subscription.php @@ -0,0 +1,100 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Ad Aures + * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 + * @link https://castopod.org/ + */ + +return [ + 'podcast_subscriptions' => 'Podcast subscriptions', + 'add' => 'New subscription', + 'view' => 'View subscription', + 'edit' => 'Edit subscription', + 'regenerate_token' => 'Regenerate token', + 'suspend' => 'Suspend subscription', + 'resume' => 'Resume subscription', + 'delete' => 'Delete subscription', + 'status' => [ + 'active' => 'Active', + 'suspended' => 'Suspended', + 'expired' => 'Expired', + ], + 'list' => [ + 'number' => 'Number', + 'email' => 'Email', + 'expiration_date' => 'Expiration date', + 'unlimited' => 'Unlimited', + 'downloads' => 'Downloads', + 'status' => 'Status', + ], + 'form' => [ + 'email' => 'Email', + 'expiration_date' => 'Expiration date', + 'expiration_date_hint' => 'The date and time at which the subscription expires. Leave empty for an unlimited subscription.', + 'submit_add' => 'Add subscription', + 'submit_edit' => 'Edit subscription', + ], + 'form_link_add' => [ + 'link' => 'Subscription page link', + 'link_hint' => 'This will add a call to action in the website inviting listeners to subscribe to the podcast.', + 'submit' => 'Save link', + ], + 'suspend_form' => [ + 'disclaimer' => 'Suspending the subscription will restrict the subscriber from having access to the premium content. You will still be able to lift the suspension afterwards.', + 'reason' => 'Reason', + 'reason_placeholder' => 'Why are you suspending the subscription?', + "submit" => 'Suspend subscription', + ], + 'delete_form' => [ + 'disclaimer' => 'Deleting {subscriber}\'s subscription will remove all analytics data associated with it.', + 'understand' => 'I understand, remove the subscription permanently', + 'submit' => 'Remove subscription', + ], + 'messages' => [ + 'addSuccess' => 'New subscription added! A welcome email was sent to {subscriber}.', + 'addError' => 'Subscription could not be added.', + 'editSuccess' => 'Subscription expiry date was updated! An email was sent to {subscriber}.', + 'editError' => 'Subscription could not be edited.', + 'regenerateTokenSuccess' => 'Token regenerated! An email was sent to {subscriber} with the new token.', + 'regenerateTokenError' => 'Token could not be regenerated.', + 'deleteSuccess' => 'Subscription was removed! An email was sent to {subscriber}.', + 'deleteError' => 'Subscription could not be removed.', + 'suspendSuccess' => 'Subscription was suspended! An email was sent to {subscriber}.', + 'suspendError' => 'Subscription could not be suspended.', + 'resumeSuccess' => 'Subscription was resumed! An email was sent to {subscriber}.', + 'resumeError' => 'Subscription could not be resumed.', + 'linkSaveSuccess' => 'Subscription link was saved successfully! It will appear in the website as a Call To Action!', + 'linkRemoveSuccess' => 'Subscription link was removed successfully!', + ], + 'emails' => [ + 'greeting' => 'Hey,', + 'token' => 'Your token: {0}', + 'unique_feed_link' => 'Your unique feed link: {0}', + 'how_to_use' => 'How to use?', + 'two_ways' => 'You have two ways of unlocking the premium episodes:', + 'import_into_app' => 'Copy your unique feed url inside your favourite podcast app (import it as a private feed to prevent exposing your credentials).', + 'go_to_website' => 'Go to {podcastWebsite}\'s website and unlock the podcast with your token.', + 'welcome_subject' => 'Welcome to {podcastTitle}', + 'welcome' => 'You have subscribed to {podcastTitle}, thank you and welcome aboard!', + 'welcome_token_title' => 'Here are your credentials to unlock the podcast\'s premium episodes:', + 'welcome_expires' => 'Your subscription was set to expire on {0}.', + 'welcome_never_expires' => 'Your subscription was set to never expire.', + 'reset_subject' => 'Your token was reset!', + 'reset_token' => 'Your access to {podcastTitle} has been reset!', + 'reset_token_title' => 'New credentials have been generated for you to unlock the podcast\'s premium episodes:', + 'edited_subject' => 'Your subscription has been updated!', + 'edited_expires' => 'Your subscription for {podcastTitle} was set to expire on {expiresAt}.', + 'edited_never_expires' => 'Your subscription for {podcastTitle} was set to never expire!', + 'suspended_subject' => 'Your subscription has been suspended!', + 'suspended' => 'Your subscription for {podcastTitle} has been suspended! You can no longer access the podcast\'s premium episodes.', + 'suspended_reason' => 'That is for the following reason: {0}', + 'resumed_subject' => 'Your subscription has been resumed!', + 'resumed' => 'Your subscription for {podcastTitle} has been resumed! You may access the podcast\'s premium episodes again.', + 'deleted_subject' => 'Your subscription has been removed!', + 'deleted' => 'Your subscription for {podcastTitle} has been removed! You no longer have access to the podcast\'s premium episodes.', + 'footer' => '{castopod} hosted on {host}', + ], +]; -- GitLab