From c220b310ed59cad188af044b1fed0c39efc7da5b Mon Sep 17 00:00:00 2001 From: Yassine Doghri Date: Tue, 29 Mar 2022 15:33:32 +0000 Subject: [PATCH] feat(i18n): add german language as supported locale + create Language files from english source --- app/Config/App.php | 2 +- app/Language/de/Comment.php | 34 +++ app/Language/de/Common.php | 29 ++ app/Language/de/Episode.php | 33 +++ app/Language/de/Fediverse.php | 37 +++ app/Language/de/Home.php | 20 ++ app/Language/de/Page.php | 17 ++ app/Language/de/Podcast.php | 53 ++++ app/Language/de/Post.php | 40 +++ modules/Admin/Language/de/Admin.php | 15 + modules/Admin/Language/de/Breadcrumb.php | 48 ++++ modules/Admin/Language/de/Charts.php | 38 +++ modules/Admin/Language/de/Common.php | 49 ++++ modules/Admin/Language/de/Contributor.php | 41 +++ modules/Admin/Language/de/Countries.php | 264 ++++++++++++++++++ modules/Admin/Language/de/Episode.php | 165 +++++++++++ .../Admin/Language/de/EpisodeNavigation.php | 23 ++ modules/Admin/Language/de/Fediverse.php | 32 +++ modules/Admin/Language/de/Home.php | 14 + modules/Admin/Language/de/Install.php | 61 ++++ modules/Admin/Language/de/MyAccount.php | 18 ++ modules/Admin/Language/de/Navigation.php | 41 +++ modules/Admin/Language/de/Page.php | 30 ++ modules/Admin/Language/de/Pager.php | 21 ++ modules/Admin/Language/de/Person.php | 65 +++++ modules/Admin/Language/de/Platforms.php | 30 ++ modules/Admin/Language/de/Podcast.php | 243 ++++++++++++++++ modules/Admin/Language/de/PodcastImport.php | 37 +++ .../Admin/Language/de/PodcastNavigation.php | 35 +++ modules/Admin/Language/de/Settings.php | 56 ++++ modules/Admin/Language/de/Soundbite.php | 31 ++ modules/Admin/Language/de/User.php | 54 ++++ modules/Admin/Language/de/Validation.php | 18 ++ modules/Admin/Language/de/VideoClip.php | 72 +++++ modules/Install/Language/de/Install.php | 62 ++++ 35 files changed, 1827 insertions(+), 1 deletion(-) create mode 100644 app/Language/de/Comment.php create mode 100644 app/Language/de/Common.php create mode 100644 app/Language/de/Episode.php create mode 100644 app/Language/de/Fediverse.php create mode 100644 app/Language/de/Home.php create mode 100644 app/Language/de/Page.php create mode 100644 app/Language/de/Podcast.php create mode 100644 app/Language/de/Post.php create mode 100644 modules/Admin/Language/de/Admin.php create mode 100644 modules/Admin/Language/de/Breadcrumb.php create mode 100644 modules/Admin/Language/de/Charts.php create mode 100644 modules/Admin/Language/de/Common.php create mode 100644 modules/Admin/Language/de/Contributor.php create mode 100644 modules/Admin/Language/de/Countries.php create mode 100644 modules/Admin/Language/de/Episode.php create mode 100644 modules/Admin/Language/de/EpisodeNavigation.php create mode 100644 modules/Admin/Language/de/Fediverse.php create mode 100644 modules/Admin/Language/de/Home.php create mode 100644 modules/Admin/Language/de/Install.php create mode 100644 modules/Admin/Language/de/MyAccount.php create mode 100644 modules/Admin/Language/de/Navigation.php create mode 100644 modules/Admin/Language/de/Page.php create mode 100644 modules/Admin/Language/de/Pager.php create mode 100644 modules/Admin/Language/de/Person.php create mode 100644 modules/Admin/Language/de/Platforms.php create mode 100644 modules/Admin/Language/de/Podcast.php create mode 100644 modules/Admin/Language/de/PodcastImport.php create mode 100644 modules/Admin/Language/de/PodcastNavigation.php create mode 100644 modules/Admin/Language/de/Settings.php create mode 100644 modules/Admin/Language/de/Soundbite.php create mode 100644 modules/Admin/Language/de/User.php create mode 100644 modules/Admin/Language/de/Validation.php create mode 100644 modules/Admin/Language/de/VideoClip.php create mode 100644 modules/Install/Language/de/Install.php diff --git a/app/Config/App.php b/app/Config/App.php index c52f4d3e..2a676da7 100644 --- a/app/Config/App.php +++ b/app/Config/App.php @@ -101,7 +101,7 @@ class App extends BaseConfig * * @var string[] */ - public array $supportedLocales = ['en', 'fr', 'pl']; + public array $supportedLocales = ['en', 'fr', 'pl', 'de']; /** * -------------------------------------------------------------------------- diff --git a/app/Language/de/Comment.php b/app/Language/de/Comment.php new file mode 100644 index 00000000..1dd8f5ea --- /dev/null +++ b/app/Language/de/Comment.php @@ -0,0 +1,34 @@ + "{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/de/Common.php b/app/Language/de/Common.php new file mode 100644 index 00000000..aff8136b --- /dev/null +++ b/app/Language/de/Common.php @@ -0,0 +1,29 @@ + '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', +]; diff --git a/app/Language/de/Episode.php b/app/Language/de/Episode.php new file mode 100644 index 00000000..ebe39336 --- /dev/null +++ b/app/Language/de/Episode.php @@ -0,0 +1,33 @@ + '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/de/Fediverse.php b/app/Language/de/Fediverse.php new file mode 100644 index 00000000..32f54c07 --- /dev/null +++ b/app/Language/de/Fediverse.php @@ -0,0 +1,37 @@ + '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/de/Home.php b/app/Language/de/Home.php new file mode 100644 index 00000000..1518239b --- /dev/null +++ b/app/Language/de/Home.php @@ -0,0 +1,20 @@ + '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/de/Page.php b/app/Language/de/Page.php new file mode 100644 index 00000000..7cd60669 --- /dev/null +++ b/app/Language/de/Page.php @@ -0,0 +1,17 @@ + '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/de/Podcast.php b/app/Language/de/Podcast.php new file mode 100644 index 00000000..d69cd86d --- /dev/null +++ b/app/Language/de/Podcast.php @@ -0,0 +1,53 @@ + '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/de/Post.php b/app/Language/de/Post.php new file mode 100644 index 00000000..58d1cf80 --- /dev/null +++ b/app/Language/de/Post.php @@ -0,0 +1,40 @@ + "{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/modules/Admin/Language/de/Admin.php b/modules/Admin/Language/de/Admin.php new file mode 100644 index 00000000..5e394237 --- /dev/null +++ b/modules/Admin/Language/de/Admin.php @@ -0,0 +1,15 @@ + 'Admin dashboard', + 'welcome_message' => 'Welcome to the admin area!', + 'choose_interact' => 'Choose how to interact', +]; diff --git a/modules/Admin/Language/de/Breadcrumb.php b/modules/Admin/Language/de/Breadcrumb.php new file mode 100644 index 00000000..d9400ca7 --- /dev/null +++ b/modules/Admin/Language/de/Breadcrumb.php @@ -0,0 +1,48 @@ + 'breadcrumb', + config('Admin') + ->gateway => 'Home', + 'podcasts' => 'podcasts', + 'episodes' => 'episodes', + 'contributors' => 'contributors', + 'pages' => 'pages', + 'settings' => 'settings', + 'theme' => 'theme', + 'add' => 'add', + 'new' => 'new', + 'edit' => 'edit', + 'persons' => 'persons', + 'publish' => 'publish', + 'publish-edit' => 'edit publication', + 'unpublish' => 'unpublish', + 'delete' => 'delete', + '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', +]; diff --git a/modules/Admin/Language/de/Charts.php b/modules/Admin/Language/de/Charts.php new file mode 100644 index 00000000..d9a75a1d --- /dev/null +++ b/modules/Admin/Language/de/Charts.php @@ -0,0 +1,38 @@ + '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)', +]; diff --git a/modules/Admin/Language/de/Common.php b/modules/Admin/Language/de/Common.php new file mode 100644 index 00000000..d97bcf99 --- /dev/null +++ b/modules/Admin/Language/de/Common.php @@ -0,0 +1,49 @@ + '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}.', +]; diff --git a/modules/Admin/Language/de/Contributor.php b/modules/Admin/Language/de/Contributor.php new file mode 100644 index 00000000..d0f3b93d --- /dev/null +++ b/modules/Admin/Language/de/Contributor.php @@ -0,0 +1,41 @@ + 'Podcast contributors', + 'view' => "{username}'s contribution to {podcastTitle}", + 'add' => 'Add contributor', + 'add_contributor' => 'Add a contributor for {0}', + 'edit_role' => 'Update role for {0}', + 'edit' => 'Edit', + 'remove' => 'Remove', + 'list' => [ + 'username' => 'Username', + 'role' => 'Role', + ], + 'form' => [ + 'user' => 'User', + 'user_placeholder' => 'Select a user…', + 'role' => 'Role', + 'role_placeholder' => 'Select its role…', + 'submit_add' => 'Add contributor', + 'submit_edit' => 'Update role', + ], + 'roles' => [ + 'podcast_admin' => 'Podcast admin', + ], + 'messages' => [ + 'removeOwnerError' => "You can't remove the podcast owner!", + 'removeSuccess' => + 'You have successfully removed {username} from {podcastTitle}', + 'alreadyAddedError' => + "The contributor you're trying to add has already been added!", + ], +]; diff --git a/modules/Admin/Language/de/Countries.php b/modules/Admin/Language/de/Countries.php new file mode 100644 index 00000000..4cd5d9c8 --- /dev/null +++ b/modules/Admin/Language/de/Countries.php @@ -0,0 +1,264 @@ + '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/de/Episode.php b/modules/Admin/Language/de/Episode.php new file mode 100644 index 00000000..054a23c3 --- /dev/null +++ b/modules/Admin/Language/de/Episode.php @@ -0,0 +1,165 @@ + 'Season {seasonNumber}', + 'season_abbr' => 'S{seasonNumber}', + 'number' => 'Episode {episodeNumber}', + 'number_abbr' => 'Ep. {episodeNumber}', + 'season_episode' => 'Season {seasonNumber} episode {episodeNumber}', + 'season_episode_abbr' => 'S{seasonNumber}E{episodeNumber}', + 'number_of_comments' => '{numberOfComments, plural, + one {# comment} + other {# comments} + }', + 'all_podcast_episodes' => 'All podcast episodes', + 'back_to_podcast' => 'Go back to podcast', + 'edit' => 'Edit', + 'publish' => 'Publish', + 'publish_edit' => 'Edit publication', + 'unpublish' => 'Unpublish', + 'publish_error' => 'Episode is already published.', + 'publish_edit_error' => 'Episode is already published.', + 'publish_cancel_error' => 'Episode is already published.', + 'unpublish_error' => 'Episode is not published.', + 'delete' => 'Delete', + 'go_to_page' => 'Go to page', + 'create' => 'Add an episode', + 'publication_status' => [ + 'published' => 'Published', + 'scheduled' => 'Scheduled', + 'not_published' => 'Not published', + ], + 'list' => [ + 'episode' => 'Episode', + 'visibility' => 'Visibility', + 'comments' => 'Comments', + 'actions' => 'Actions', + ], + 'messages' => [ + 'createSuccess' => 'Episode has been successfully created!', + 'editSuccess' => 'Episode has been successfully updated!', + 'publishCancelSuccess' => 'Episode publication successfully cancelled!', + ], + '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 with at least 1400px wide and tall.', + 'title' => 'Title', + 'title_hint' => + 'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.', + 'permalink' => 'Permalink', + 'season_number' => 'Season', + 'episode_number' => 'Episode', + 'type' => [ + 'label' => 'Type', + 'full' => 'Full', + 'full_hint' => 'Complete content (the episode)', + 'trailer' => 'Trailer', + 'trailer_hint' => 'Short, promotional piece of content that represents a preview of the current show', + 'bonus' => 'Bonus', + 'bonus_hint' => 'Extra content for the show (for example, behind the scenes info or interviews with the cast) or cross-promotional content for another show', + ], + 'parental_advisory' => [ + 'label' => 'Parental advisory', + 'hint' => 'Does the episode contain explicit content?', + 'undefined' => 'undefined', + 'clean' => 'Clean', + 'explicit' => 'Explicit', + ], + 'show_notes_section_title' => 'Show notes', + 'show_notes_section_subtitle' => + 'Up to 4000 characters, be clear and concise. Show notes help potential listeners in finding the episode.', + 'description' => 'Description', + 'description_footer' => 'Description footer', + 'description_footer_hint' => + 'This text is added at the end of each episode description, it is a good place to input your social links for example.', + 'additional_files_section_title' => 'Additional files', + 'additional_files_section_subtitle' => + 'These files may be used by other platforms to provide better experience to your audience.
See the {podcastNamespaceLink} for more information.', + 'location_section_title' => 'Location', + 'location_section_subtitle' => 'What place is this episode about?', + 'location_name' => 'Location name or address', + 'location_name_hint' => 'This can be a real or fictional location', + 'transcript' => 'Transcript (subtitles / closed captions)', + 'transcript_hint' => 'Only .srt are allowed.', + 'transcript_download' => 'Download transcript', + 'transcript_file' => 'Transcript file (.srt)', + 'transcript_remote_url' => 'Remote url for transcript', + 'transcript_file_delete' => 'Delete transcript file', + 'chapters' => 'Chapters', + 'chapters_hint' => 'File must be in JSON Chapters format.', + 'chapters_download' => 'Download chapters', + 'chapters_file' => 'Chapters file', + 'chapters_remote_url' => 'Remote url for chapters file', + 'chapters_file_delete' => 'Delete chapters file', + 'advanced_section_title' => 'Advanced Parameters', + 'advanced_section_subtitle' => + 'If you need RSS tags that Castopod does not handle, set them here.', + 'custom_rss' => 'Custom RSS tags for the episode', + 'custom_rss_hint' => 'This will be injected within the ❬item❭ tag.', + 'block' => 'Episode should be hidden from all platforms', + 'block_hint' => + 'The episode show or hide post. If you want this episode removed from the Apple directory, toggle this on.', + 'submit_create' => 'Create episode', + 'submit_edit' => 'Save episode', + ], + 'publish_form' => [ + 'back_to_episode_dashboard' => 'Back to episode dashboard', + 'post' => 'Your announcement post', + 'post_hint' => + "Write a message to announce the publication of your episode. The message will be broadcasted to all your followers in the fediverse and be featured in your podcast's homepage.", + 'message_placeholder' => 'Write your message…', + 'publication_date' => 'Publication date', + 'publication_method' => [ + 'now' => 'Now', + 'schedule' => 'Schedule', + ], + 'scheduled_publication_date' => 'Scheduled publication date', + 'scheduled_publication_date_clear' => 'Clear publication date', + 'scheduled_publication_date_hint' => + 'You can schedule the episode release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm', + 'submit' => 'Publish', + 'submit_edit' => 'Edit publication', + 'cancel_publication' => 'Cancel publication', + 'message_warning' => 'You did not write a message for your announcement post!', + 'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your episode.', + 'message_warning_submit' => 'Publish anyways', + ], + 'unpublish_form' => [ + 'disclaimer' => + "Unpublishing the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.", + 'understand' => 'I understand, I want to unpublish the episode', + 'submit' => 'Unpublish', + ], + 'delete_form' => [ + 'disclaimer' => + "Deleting the episode will delete all the posts associated with it and remove it from the podcast's RSS feed.", + '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/de/EpisodeNavigation.php b/modules/Admin/Language/de/EpisodeNavigation.php new file mode 100644 index 00000000..1406e301 --- /dev/null +++ b/modules/Admin/Language/de/EpisodeNavigation.php @@ -0,0 +1,23 @@ + '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/de/Fediverse.php b/modules/Admin/Language/de/Fediverse.php new file mode 100644 index 00000000..0e4ca66d --- /dev/null +++ b/modules/Admin/Language/de/Fediverse.php @@ -0,0 +1,32 @@ + [ + '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/de/Home.php b/modules/Admin/Language/de/Home.php new file mode 100644 index 00000000..3ff4c04d --- /dev/null +++ b/modules/Admin/Language/de/Home.php @@ -0,0 +1,14 @@ + 'All podcasts', + 'no_podcast' => 'No podcast found', +]; diff --git a/modules/Admin/Language/de/Install.php b/modules/Admin/Language/de/Install.php new file mode 100644 index 00000000..36e373a2 --- /dev/null +++ b/modules/Admin/Language/de/Install.php @@ -0,0 +1,61 @@ + '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/de/MyAccount.php b/modules/Admin/Language/de/MyAccount.php new file mode 100644 index 00000000..6ebbb30e --- /dev/null +++ b/modules/Admin/Language/de/MyAccount.php @@ -0,0 +1,18 @@ + 'My account info', + 'changePassword' => 'Change my password', + 'messages' => [ + 'wrongPasswordError' => "You've entered the wrong password, try again.", + 'passwordChangeSuccess' => 'Password has been successfully changed!', + ], +]; diff --git a/modules/Admin/Language/de/Navigation.php b/modules/Admin/Language/de/Navigation.php new file mode 100644 index 00000000..68d4609d --- /dev/null +++ b/modules/Admin/Language/de/Navigation.php @@ -0,0 +1,41 @@ + 'Toggle sidebar', + 'go_to_website' => 'Go to website', + 'go_to_admin' => 'Go to admin', + 'dashboard' => 'Dashboard', + 'admin' => 'Home', + 'podcasts' => 'Podcasts', + 'podcast-list' => 'All podcasts', + 'podcast-create' => 'New podcast', + 'podcast-import' => 'Import a podcast', + 'persons' => 'Persons', + 'person-list' => 'All persons', + 'person-create' => 'New person', + 'fediverse' => 'Fediverse', + 'fediverse-blocked-actors' => 'Blocked accounts', + 'fediverse-blocked-domains' => 'Blocked domains', + 'users' => 'Users', + 'user-list' => 'All users', + 'user-create' => 'New user', + 'pages' => 'Pages', + 'page-list' => 'All pages', + 'page-create' => 'New Page', + 'settings' => 'Settings', + 'settings-general' => 'General', + 'settings-theme' => 'Theme', + 'account' => [ + 'my-account' => 'My account', + 'change-password' => 'Change password', + 'logout' => 'Logout', + ], +]; diff --git a/modules/Admin/Language/de/Page.php b/modules/Admin/Language/de/Page.php new file mode 100644 index 00000000..b6f49de5 --- /dev/null +++ b/modules/Admin/Language/de/Page.php @@ -0,0 +1,30 @@ + '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/de/Pager.php b/modules/Admin/Language/de/Pager.php new file mode 100644 index 00000000..e25ee638 --- /dev/null +++ b/modules/Admin/Language/de/Pager.php @@ -0,0 +1,21 @@ + '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/de/Person.php b/modules/Admin/Language/de/Person.php new file mode 100644 index 00000000..fa9bba21 --- /dev/null +++ b/modules/Admin/Language/de/Person.php @@ -0,0 +1,65 @@ + '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 with at least 400px wide and tall.', + 'full_name' => 'Full name', + 'full_name_hint' => 'This is the full name or alias of the person.', + 'unique_name' => 'Unique name', + 'unique_name_hint' => 'Used for URLs', + 'information_url' => 'Information URL', + '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/de/Platforms.php b/modules/Admin/Language/de/Platforms.php new file mode 100644 index 00000000..ab17d599 --- /dev/null +++ b/modules/Admin/Language/de/Platforms.php @@ -0,0 +1,30 @@ + '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/de/Podcast.php b/modules/Admin/Language/de/Podcast.php new file mode 100644 index 00000000..d9d0d11b --- /dev/null +++ b/modules/Admin/Language/de/Podcast.php @@ -0,0 +1,243 @@ + 'All podcasts', + 'no_podcast' => 'No podcast found!', + 'create' => 'Create podcast', + 'import' => 'Import podcast', + 'new_episode' => 'New Episode', + 'view' => 'View podcast', + 'edit' => 'Edit podcast', + 'delete' => 'Delete podcast', + 'see_episodes' => 'See episodes', + 'see_contributors' => 'See contributors', + 'go_to_page' => 'Go to page', + 'latest_episodes' => 'Latest episodes', + 'see_all_episodes' => 'See all episodes', + 'messages' => [ + 'createSuccess' => 'Podcast has been successfully created!', + 'editSuccess' => 'Podcast has been successfully updated!', + 'importSuccess' => 'Podcast has been successfully imported!', + ], + 'form' => [ + 'identity_section_title' => 'Podcast identity', + 'identity_section_subtitle' => 'These fields allow you to get noticed.', + 'cover' => 'Podcast cover', + 'cover_size_hint' => 'Cover must be squared with at least 1400px wide and tall.', + 'banner' => 'Podcast banner', + 'banner_size_hint' => 'Banner must have a 3:1 ratio with at least 1500px wide.', + 'banner_delete' => 'Delete podcast banner', + 'title' => 'Title', + 'handle' => 'Handle', + 'handle_hint' => + 'Used to identify the podcast. Uppercase, lowercase, numbers and underscores are accepted.', + 'type' => [ + 'label' => 'Type', + 'episodic' => 'Episodic', + 'episodic_hint' => 'If episodes are intended to be consumed without any specific order. Newest episodes will be presented first.', + 'serial' => 'Serial', + 'serial_hint' => 'If episodes are intended to be consumed in sequential order. The oldest episodes will be presented first.', + ], + 'description' => 'Description', + 'classification_section_title' => 'Classification', + 'classification_section_subtitle' => + 'These fields will impact your audience and competition.', + 'language' => 'Language', + 'category' => 'Category', + 'category_placeholder' => 'Select a category…', + 'other_categories' => 'Other categories', + 'parental_advisory' => [ + 'label' => 'Parental advisory', + 'hint' => 'Does it contain explicit content?', + 'undefined' => 'undefined', + 'clean' => 'Clean', + 'explicit' => 'Explicit', + ], + 'author_section_title' => 'Author', + 'author_section_subtitle' => 'Who is managing the podcast?', + 'owner_name' => 'Owner name', + 'owner_name_hint' => + 'For administrative use only. Visible in the public RSS feed.', + 'owner_email' => 'Owner email', + 'owner_email_hint' => + 'Will be used by most platforms to verify the podcast ownership. Visible in the public RSS feed.', + 'publisher' => 'Publisher', + 'publisher_hint' => + 'The group responsible for creating the show. Often refers to the parent company or network of a podcast. This field is sometimes labeled as ’Author’.', + 'copyright' => 'Copyright', + 'location_section_title' => 'Location', + 'location_section_subtitle' => 'What place is this podcast about?', + 'location_name' => 'Location name or address', + 'location_name_hint' => 'This can be a real place or fictional', + 'monetization_section_title' => 'Monetization', + 'monetization_section_subtitle' => + 'Earn money thanks to your audience.', + 'payment_pointer' => 'Payment Pointer for Web Monetization', + 'payment_pointer_hint' => + 'This is your where you will receive money thanks to Web Monetization', + 'advanced_section_title' => 'Advanced Parameters', + 'advanced_section_subtitle' => + 'If you need RSS tags that Castopod does not handle, set them here.', + 'custom_rss' => 'Custom RSS tags for the podcast', + 'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.', + 'new_feed_url' => 'New feed URL', + 'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.', + 'partnership' => 'Partnership', + 'partner_id' => 'ID', + 'partner_link_url' => 'Link URL', + 'partner_image_url' => 'Image URL', + 'partner_id_hint' => 'Your own partner ID', + 'partner_link_url_hint' => 'The generic partner link address', + 'partner_image_url_hint' => 'The generic partner image address', + 'status_section_title' => 'Status', + 'block' => 'Podcast should be hidden from all platforms', + 'complete' => 'Podcast will not be having new episodes', + 'lock' => 'Prevent podcast from being copied', + 'lock_hint' => + 'The purpose is to tell other podcast platforms whether they are allowed to import this feed. A value of yes means that any attempt to import this feed into a new platform should be rejected.', + 'submit_create' => 'Create podcast', + 'submit_edit' => 'Save podcast', + ], + 'category_options' => [ + 'uncategorized' => 'uncategorized', + 'arts' => 'Arts', + 'business' => 'Business', + 'comedy' => 'Comedy', + 'education' => 'Education', + 'fiction' => 'Fiction', + 'government' => 'Government', + 'health_and_fitness' => 'Health & Fitness', + 'history' => 'History', + 'kids_and_family' => 'Kids & Family', + 'leisure' => 'Leisure', + 'music' => 'Music', + 'news' => 'News', + 'religion_and_spirituality' => 'Religion & Spirituality', + 'science' => 'Science', + 'society_and_culture' => 'Society & Culture', + 'sports' => 'Sports', + 'technology' => 'Technology', + 'true_crime' => 'True Crime', + 'tv_and_film' => 'TV & Film', + 'books' => 'Books', + 'design' => 'Design', + 'fashion_and_beauty' => 'Fashion & Beauty', + 'food' => 'Food', + 'performing_arts' => 'Performing Arts', + 'visual_arts' => 'Visual Arts', + 'careers' => 'Careers', + 'entrepreneurship' => 'Entrepreneurship', + 'investing' => 'Investing', + 'management' => 'Management', + 'marketing' => 'Marketing', + 'non_profit' => 'Non-Profit', + 'comedy_interviews' => 'Comedy Interviews', + 'improv' => 'Improv', + 'stand_up' => 'Stand-Up', + 'courses' => 'Courses', + 'how_to' => 'How To', + 'language_learning' => 'Language Learning', + 'self_improvement' => 'Self-Improvement', + 'comedy_fiction' => 'Comedy Fiction', + 'drama' => 'Drama', + 'science_fiction' => 'Science Fiction', + 'alternative_health' => 'Alternative Health', + 'fitness' => 'Fitness', + 'medicine' => 'Medicine', + 'mental_health' => 'Mental Health', + 'nutrition' => 'Nutrition', + 'sexuality' => 'Sexuality', + 'education_for_kids' => 'Education for Kids', + 'parenting' => 'Parenting', + 'pets_and_animals' => 'Pets & Animals', + 'stories_for_kids' => 'Stories for Kids', + 'animation_and_manga' => 'Animation & Manga', + 'automotive' => 'Automotive', + 'aviation' => 'Aviation', + 'crafts' => 'Crafts', + 'games' => 'Games', + 'hobbies' => 'Hobbies', + 'home_and_garden' => 'Home & Garden', + 'video_games' => 'Video Games', + 'music_commentary' => 'Music Commentary', + 'music_history' => 'Music History', + 'music_interviews' => 'Music Interviews', + 'business_news' => 'Business News', + 'daily_news' => 'Daily News', + 'entertainment_news' => 'Entertainment News', + 'news_commentary' => 'News Commentary', + 'politics' => 'Politics', + 'sports_news' => 'Sports News', + 'tech_news' => 'Tech News', + 'buddhism' => 'Buddhism', + 'christianity' => 'Christianity', + 'hinduism' => 'Hinduism', + 'islam' => 'Islam', + 'judaism' => 'Judaism', + 'religion' => 'Religion', + 'spirituality' => 'Spirituality', + 'astronomy' => 'Astronomy', + 'chemistry' => 'Chemistry', + 'earth_sciences' => 'Earth Sciences', + 'life_sciences' => 'Life Sciences', + 'mathematics' => 'Mathematics', + 'natural_sciences' => 'Natural Sciences', + 'nature' => 'Nature', + 'physics' => 'Physics', + 'social_sciences' => 'Social Sciences', + 'documentary' => 'Documentary', + 'personal_journals' => 'Personal Journals', + 'philosophy' => 'Philosophy', + 'places_and_travel' => 'Places & Travel', + 'relationships' => 'Relationships', + 'baseball' => 'Baseball', + 'basketball' => 'Basketball', + 'cricket' => 'Cricket', + 'fantasy_sports' => 'Fantasy Sports', + 'football' => 'Football', + 'golf' => 'Golf', + 'hockey' => 'Hockey', + 'rugby' => 'Rugby', + 'running' => 'Running', + 'soccer' => 'Soccer', + 'swimming' => 'Swimming', + 'tennis' => 'Tennis', + 'volleyball' => 'Volleyball', + 'wilderness' => 'Wilderness', + 'wrestling' => 'Wrestling', + 'after_shows' => 'After Shows', + 'film_history' => 'Film History', + 'film_interviews' => 'Film Interviews', + 'film_reviews' => 'Film Reviews', + 'tv_reviews' => 'TV Reviews', + ], + '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/de/PodcastImport.php b/modules/Admin/Language/de/PodcastImport.php new file mode 100644 index 00000000..e9cfc1c4 --- /dev/null +++ b/modules/Admin/Language/de/PodcastImport.php @@ -0,0 +1,37 @@ + + '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/de/PodcastNavigation.php b/modules/Admin/Language/de/PodcastNavigation.php new file mode 100644 index 00000000..b6195731 --- /dev/null +++ b/modules/Admin/Language/de/PodcastNavigation.php @@ -0,0 +1,35 @@ + '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', + '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/de/Settings.php b/modules/Admin/Language/de/Settings.php new file mode 100644 index 00000000..0d6368cc --- /dev/null +++ b/modules/Admin/Language/de/Settings.php @@ -0,0 +1,56 @@ + '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 with at least 512px wide and tall.', + 'site_name' => 'Site name', + 'site_description' => 'Site description', + 'submit' => 'Save', + 'editSuccess' => 'Instance has been updated successfully!', + 'deleteIconSuccess' => 'Site icon has been remove successfully!', + ], + 'images' => [ + 'title' => 'Images', + 'subtitle' => 'Here you can regenerate all images based on the originals that were uploaded. To be used if you find that some images are missing. This task may take a while.', + 'regenerate' => 'Regenerate images', + 'regenerationSuccess' => 'All images have been regenerated successfully!', + ], + 'housekeeping' => [ + 'title' => 'Housekeeping', + 'subtitle' => 'Runs various housekeeping tasks. Use this feature if you ever encounter issues with media files or data integrity. These tasks may take a while.', + 'reset_counts' => 'Reset counts', + 'reset_counts_helper' => 'This option will recalculate and reset all data counts (number of followers, posts, comments, …).', + 'rewrite_media' => 'Rewrite media metadata', + 'rewrite_media_helper' => 'This option will delete all superfluous media files and recreate them (images, audio files, transcripts, chapters, …)', + 'clear_cache' => 'Clear all cache', + 'clear_cache_helper' => 'This option will flush redis cache or writable/cache files.', + 'run' => 'Run housekeeping', + 'runSuccess' => 'Housekeeping has been run successfully!', + ], + 'theme' => [ + 'title' => 'Theme', + 'accent_section_title' => 'Accent color', + 'accent_section_subtitle' => 'Choose the color to determine the look and feel of all public pages.', + 'pine' => 'Pine', + 'crimson' => 'Crimson', + 'amber' => 'Amber', + 'lake' => 'Lake', + 'jacaranda' => 'Jacaranda', + 'onyx' => 'Onyx', + 'submit' => 'Save', + 'setInstanceThemeSuccess' => 'Theme has been updated successfully!', + ], +]; diff --git a/modules/Admin/Language/de/Soundbite.php b/modules/Admin/Language/de/Soundbite.php new file mode 100644 index 00000000..a3f828fe --- /dev/null +++ b/modules/Admin/Language/de/Soundbite.php @@ -0,0 +1,31 @@ + [ + '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/de/User.php b/modules/Admin/Language/de/User.php new file mode 100644 index 00000000..8b2e478b --- /dev/null +++ b/modules/Admin/Language/de/User.php @@ -0,0 +1,54 @@ + "Edit {username}'s roles", + 'forcePassReset' => 'Force pass reset', + 'ban' => 'Ban', + 'unban' => 'Unban', + 'delete' => 'Delete', + 'create' => 'New user', + 'view' => "{username}'s info", + 'all_users' => 'All users', + 'list' => [ + 'user' => 'User', + 'roles' => 'Roles', + 'banned' => 'Banned?', + ], + 'form' => [ + 'email' => 'Email', + 'username' => 'Username', + 'password' => 'Password', + 'new_password' => 'New Password', + 'roles' => 'Roles', + 'permissions' => 'Permissions', + 'submit_create' => 'Create user', + 'submit_edit' => 'Save', + 'submit_password_change' => 'Change!', + ], + 'roles' => [ + 'superadmin' => 'Super admin', + ], + 'messages' => [ + 'createSuccess' => + 'User created successfully! {username} will be prompted with a password reset upon first authentication.', + 'rolesEditSuccess' => + "{username}'s roles have been successfully updated.", + 'forcePassResetSuccess' => + '{username} will be prompted with a password reset upon next visit.', + 'banSuccess' => '{username} has been banned.', + 'unbanSuccess' => '{username} has been unbanned.', + 'banSuperAdminError' => + '{username} is a superadmin, one does not simply ban a superadmin…', + 'deleteSuperAdminError' => + '{username} is a superadmin, one does not simply delete a superadmin…', + 'deleteSuccess' => '{username} has been deleted.', + ], +]; diff --git a/modules/Admin/Language/de/Validation.php b/modules/Admin/Language/de/Validation.php new file mode 100644 index 00000000..750b1968 --- /dev/null +++ b/modules/Admin/Language/de/Validation.php @@ -0,0 +1,18 @@ + + '{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/de/VideoClip.php b/modules/Admin/Language/de/VideoClip.php new file mode 100644 index 00000000..638de697 --- /dev/null +++ b/modules/Admin/Language/de/VideoClip.php @@ -0,0 +1,72 @@ + [ + '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/Install/Language/de/Install.php b/modules/Install/Language/de/Install.php new file mode 100644 index 00000000..1f66ef11 --- /dev/null +++ b/modules/Install/Language/de/Install.php @@ -0,0 +1,62 @@ + '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.", + ], +];