feat: update pine colors + create charts components
This commit is contained in:
parent
d86142ebe7
commit
a50abc138d
|
@ -26,24 +26,6 @@ return [
|
|||
'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',
|
||||
],
|
||||
'image_size_hint' =>
|
||||
'Image must be squared with at least 1400px wide and tall.',
|
||||
'upload_file' => 'Upload a file',
|
||||
'remote_url' => 'Remote URL',
|
||||
],
|
||||
'play_episode_button' => [
|
||||
'play' => 'Play',
|
||||
'playing' => 'Playing',
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'podcast_contributors' => 'Podcast contributors',
|
||||
'view' => "{username}'s contribution to {podcastTitle}",
|
||||
'add' => 'Add contributor',
|
||||
'add_contributor' => 'Add a contributor for {0}',
|
||||
'edit_role' => 'Update role for {0}',
|
||||
'edit' => 'Edit',
|
||||
'remove' => 'Remove',
|
||||
'list' => [
|
||||
'username' => 'Username',
|
||||
'role' => 'Role',
|
||||
],
|
||||
'form' => [
|
||||
'user' => 'User',
|
||||
'user_placeholder' => 'Select a user…',
|
||||
'role' => 'Role',
|
||||
'role_placeholder' => 'Select its role…',
|
||||
'submit_add' => 'Add contributor',
|
||||
'submit_edit' => 'Update role',
|
||||
],
|
||||
'roles' => [
|
||||
'podcast_admin' => 'Podcast admin',
|
||||
],
|
||||
'messages' => [
|
||||
'removeOwnerContributorError' => "You can't remove the podcast owner!",
|
||||
'removeContributorSuccess' =>
|
||||
'You have successfully removed {username} from {podcastTitle}',
|
||||
'alreadyAddedError' =>
|
||||
"The contributor you're trying to add has already been added!",
|
||||
],
|
||||
];
|
|
@ -1,264 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* ISO 3166 country codes
|
||||
*
|
||||
* @copyright 2020 Podlibre
|
||||
* @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',
|
||||
];
|
|
@ -25,150 +25,4 @@ return [
|
|||
}',
|
||||
'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',
|
||||
],
|
||||
'form' => [
|
||||
'warning' =>
|
||||
'In case of fatal error, try increasing the `memory_limit`, `upload_max_filesize` and `post_max_size` values in your php configuration file then restart your web server.<br />These values must be higher than the audio file you wish to upload.',
|
||||
'audio_file' => 'Audio file',
|
||||
'audio_file_hint' => 'Choose an .mp3 or .m4a audio file.',
|
||||
'info_section_title' => 'Episode info',
|
||||
'info_section_subtitle' => '',
|
||||
'image' => 'Cover image',
|
||||
'image_hint' =>
|
||||
'If you do not set an image, the podcast cover will be used instead.',
|
||||
'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',
|
||||
'hint' =>
|
||||
'- <strong>full</strong>: complete content the episode.<br/>- <strong>trailer</strong>: short, promotional piece of content that represents a preview of the current show.<br/>- <strong>bonus</strong>: extra content for the show (for example, behind the scenes info or interviews with the cast) or cross-promotional content for another show.',
|
||||
'full' => 'Full',
|
||||
'trailer' => 'Trailer',
|
||||
'bonus' => 'Bonus',
|
||||
],
|
||||
'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.<br />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 or closed captions',
|
||||
'transcript_hint' => 'Allowed formats are txt, html, srt or json.',
|
||||
'transcript_file' => 'Transcript file',
|
||||
'transcript_file_remote_url' => 'Remote url for transcript',
|
||||
'transcript_file_delete' => 'Delete transcript file',
|
||||
'chapters' => 'Chapters',
|
||||
'chapters_hint' => 'File must be in JSON Chapters format.',
|
||||
'chapters_file' => 'Chapters file',
|
||||
'chapters_file_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.",
|
||||
'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 notes associated with the episode and remove it from the podcast's RSS feed.",
|
||||
'understand' => 'I understand, I want to unpublish the episode',
|
||||
'submit' => 'Unpublish',
|
||||
],
|
||||
'soundbites' => 'Soundbites',
|
||||
'soundbites_form' => [
|
||||
'title' => 'Edit soundbites',
|
||||
'info_section_title' => 'Episode soundbites',
|
||||
'info_section_subtitle' => 'Add, edit or delete soundbites',
|
||||
'start_time' => 'Start',
|
||||
'start_time_hint' =>
|
||||
'The first second of the soundbite, it can be a decimal number.',
|
||||
'duration' => 'Duration',
|
||||
'duration_hint' =>
|
||||
'The duration of the soundbite (in seconds), it can be a decimal number.',
|
||||
'label' => 'Label',
|
||||
'label_hint' => 'Text that will be displayed.',
|
||||
'play' => 'Play soundbite',
|
||||
'delete' => 'Delete soundbite',
|
||||
'bookmark' =>
|
||||
'Click while playing to get current position, click again to get duration.',
|
||||
'submit_edit' => 'Save all soundbites',
|
||||
],
|
||||
'embeddable_player' => [
|
||||
'add' => 'Add embeddable player',
|
||||
'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',
|
||||
],
|
||||
];
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'info' => 'My account info',
|
||||
'changePassword' => 'Change my password',
|
||||
'messages' => [
|
||||
'wrongPasswordError' => "You've entered the wrong password, try again.",
|
||||
'passwordChangeSuccess' => 'Password has been successfully changed!',
|
||||
],
|
||||
];
|
|
@ -1,21 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @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.',
|
||||
];
|
|
@ -1,66 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @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',
|
||||
'form' => [
|
||||
'identity_section_title' => 'Identity',
|
||||
'identity_section_subtitle' => 'Who is working on the podcast',
|
||||
'image' => 'Picture',
|
||||
'image_size_hint' =>
|
||||
'Image 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',
|
||||
'manage_section_title' => 'Management',
|
||||
'manage_section_subtitle' => 'Remove persons from this podcast',
|
||||
'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',
|
||||
'manage_section_title' => 'Management',
|
||||
'manage_section_subtitle' => 'Remove persons from this episode',
|
||||
'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',
|
||||
];
|
|
@ -1,30 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @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_embeddable_player' => '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',
|
||||
],
|
||||
];
|
|
@ -23,193 +23,6 @@ return [
|
|||
'go_to_page' => 'Go to page',
|
||||
'latest_episodes' => 'Latest episodes',
|
||||
'see_all_episodes' => 'See all episodes',
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'image' => 'Cover image',
|
||||
'title' => 'Title',
|
||||
'handle' => 'Handle',
|
||||
'handle_hint' =>
|
||||
'Used to identify the podcast. Uppercase, lowercase, numbers and underscores are accepted.',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'hint' =>
|
||||
'- <strong>episodic</strong>: if episodes are intended to be consumed without any specific order. Newest episodes will be presented first.<br/>- <strong>serial</strong>: if episodes are intended to be consumed in sequential order. The oldest episodes will be presented first.',
|
||||
'episodic' => 'Episodic',
|
||||
'serial' => 'Serial',
|
||||
],
|
||||
'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.',
|
||||
'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',
|
||||
'status_section_subtitle' => 'Dead or alive?',
|
||||
'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})',
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'warning' =>
|
||||
'This procedure may take a long time.<br/>As the current version does not show any progress while it runs, you will not see anything updated until it is done.<br/>In case of timeout error, increase `max_execution_time` value.',
|
||||
'old_podcast_section_title' => 'The podcast to import',
|
||||
'old_podcast_section_subtitle' =>
|
||||
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
|
||||
'imported_feed_url' => 'Feed URL',
|
||||
'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
|
||||
'new_podcast_section_title' => 'The new podcast',
|
||||
'advanced_params_section_title' => 'Advanced parameters',
|
||||
'advanced_params_section_subtitle' =>
|
||||
'Keep the default values if you have no idea of what the fields are for.',
|
||||
'slug_field' => [
|
||||
'label' => 'Which field should be used to calculate episode slug',
|
||||
'link' => '<link>',
|
||||
'title' => '<title>',
|
||||
],
|
||||
'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',
|
||||
];
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @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',
|
||||
'episodes' => 'Episodes',
|
||||
'episode-list' => 'All episodes',
|
||||
'episode-create' => 'New episode',
|
||||
'fediverse' => 'Fediverse',
|
||||
'fediverse-block_lists' => 'Block lists',
|
||||
'analytics' => 'Analytics',
|
||||
'persons' => 'Persons',
|
||||
'podcast-person-manage' => 'Manage persons',
|
||||
'contributors' => 'Contributors',
|
||||
'contributor-list' => 'All contributors',
|
||||
'contributor-add' => 'Add contributor',
|
||||
'platforms' => 'External platforms',
|
||||
'platforms-podcasting' => 'Podcasting',
|
||||
'platforms-social' => 'Social Networks',
|
||||
'platforms-funding' => 'Funding',
|
||||
'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',
|
||||
];
|
|
@ -1,54 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'edit_roles' => "Edit {username}'s roles",
|
||||
'forcePassReset' => 'Force pass reset',
|
||||
'ban' => 'Ban',
|
||||
'unban' => 'Unban',
|
||||
'delete' => 'Delete',
|
||||
'create' => 'New user',
|
||||
'view' => "{username}'s info",
|
||||
'all_users' => 'All users',
|
||||
'list' => [
|
||||
'user' => 'User',
|
||||
'roles' => 'Roles',
|
||||
'banned' => 'Banned?',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'new_password' => 'New Password',
|
||||
'roles' => 'Roles',
|
||||
'permissions' => 'Permissions',
|
||||
'submit_create' => 'Create user',
|
||||
'submit_edit' => 'Save',
|
||||
'submit_password_change' => 'Change!',
|
||||
],
|
||||
'roles' => [
|
||||
'superadmin' => 'Super admin',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' =>
|
||||
'User created successfully! {username} will be prompted with a password reset upon first authentication.',
|
||||
'rolesEditSuccess' =>
|
||||
"{username}'s roles have been successfully updated.",
|
||||
'forcePassResetSuccess' =>
|
||||
'{username} will be prompted with a password reset upon next visit.',
|
||||
'banSuccess' => '{username} has been banned.',
|
||||
'unbanSuccess' => '{username} has been unbanned.',
|
||||
'banSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply ban a superadmin…',
|
||||
'deleteSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply delete a superadmin…',
|
||||
'deleteSuccess' => '{username} has been deleted.',
|
||||
],
|
||||
];
|
|
@ -1,18 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @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_squared' =>
|
||||
'{field} is either not an image, or it is not squared (width and height differ).',
|
||||
'validate_url' =>
|
||||
'The {field} field must be a valid URL (eg. https://example.com/).',
|
||||
];
|
|
@ -26,24 +26,6 @@ return [
|
|||
'actions' => 'Actions',
|
||||
'pageInfo' => 'Page {currentPage} sur {pageCount}',
|
||||
'go_back' => 'Retour en arrière',
|
||||
'forms' => [
|
||||
'editor' => [
|
||||
'write' => 'Écrire',
|
||||
'preview' => 'Aperçu',
|
||||
'help' => 'Propulsé par markdown',
|
||||
],
|
||||
'multiSelect' => [
|
||||
'selectText' => 'Cliquez pour selectionner',
|
||||
'loadingText' => 'Chargement...',
|
||||
'noResultsText' => 'Aucun résultat trouvé',
|
||||
'noChoicesText' => 'Aucune sélection possible',
|
||||
'maxItemText' => 'Impossible de rajouter un élément',
|
||||
],
|
||||
'image_size_hint' =>
|
||||
'L’image doit être carrée, avec au minimum 1400px de long et de large.',
|
||||
'upload_file' => 'Téléversez un fichier',
|
||||
'remote_url' => 'URL distante',
|
||||
],
|
||||
'play_episode_button' => [
|
||||
'play' => 'Lire',
|
||||
'playing' => 'En cours',
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'podcast_contributors' => 'Contributeurs du podcast',
|
||||
'view' => 'Contribution de {username} à {podcastTitle}',
|
||||
'add' => 'Ajouter un contributeur',
|
||||
'add_contributor' => 'Ajouter un contributeur pour {0}',
|
||||
'edit_role' => 'Modifier le rôle de {0}',
|
||||
'edit' => 'Modifier',
|
||||
'remove' => 'Supprimer',
|
||||
'list' => [
|
||||
'username' => 'Identifiant',
|
||||
'role' => 'Rôle',
|
||||
],
|
||||
'form' => [
|
||||
'user' => 'Utilisateur',
|
||||
'user_placeholder' => 'Sélectionnez un utilisateur…',
|
||||
'role' => 'Rôle',
|
||||
'role_placeholder' => 'Sélectionnez son rôle…',
|
||||
'submit_add' => 'Ajouter le contributeur',
|
||||
'submit_edit' => 'Mettre à jour le rôle',
|
||||
],
|
||||
'roles' => [
|
||||
'podcast_admin' => 'Administrateur de Podcasts',
|
||||
],
|
||||
'messages' => [
|
||||
'removeOwnerContributorError' =>
|
||||
'Vous ne pouvez pas retirer le propriétaire du podcast !',
|
||||
'removeContributorSuccess' =>
|
||||
'Vous avez retiré {username} de {podcastTitle}',
|
||||
'alreadyAddedError' =>
|
||||
'Le contributeur que vous essayez d’ajouter est déjà présent.',
|
||||
],
|
||||
];
|
|
@ -1,264 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* ISO 3166 country codes
|
||||
*
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'AF ' => 'Afghanistan',
|
||||
'ZA ' => 'Afrique Du Sud',
|
||||
'AX ' => 'Åland, Îles',
|
||||
'AL ' => 'Albanie',
|
||||
'DZ ' => 'Algérie',
|
||||
'DE ' => 'Allemagne',
|
||||
'AD ' => 'Andorre',
|
||||
'AO ' => 'Angola',
|
||||
'AI ' => 'Anguilla',
|
||||
'AQ ' => 'Antarctique',
|
||||
'AG ' => 'Antigua-Et-Barbuda',
|
||||
'SA ' => 'Arabie Saoudite',
|
||||
'AR ' => 'Argentine',
|
||||
'AM ' => 'Arménie',
|
||||
'AW ' => 'Aruba',
|
||||
'AU ' => 'Australie',
|
||||
'AT ' => 'Autriche',
|
||||
'AZ ' => 'Azerbaïdjan',
|
||||
'BS ' => 'Bahamas',
|
||||
'BH ' => 'Bahreïn',
|
||||
'BD ' => 'Bangladesh',
|
||||
'BB ' => 'Barbade',
|
||||
'BY ' => 'Bélarus',
|
||||
'BE ' => 'Belgique',
|
||||
'BZ ' => 'Belize',
|
||||
'BJ ' => 'Bénin',
|
||||
'BM ' => 'Bermudes',
|
||||
'BT ' => 'Bhoutan',
|
||||
'BO ' => 'Bolivie, État Plurinational De',
|
||||
'BQ ' => 'Bonaire, Saint-Eustache Et Saba',
|
||||
'BA ' => 'Bosnie-Herzégovine',
|
||||
'BW ' => 'Botswana',
|
||||
'BV ' => 'Bouvet, Île',
|
||||
'BR ' => 'Brésil',
|
||||
'BN ' => 'Brunéi Darussalam',
|
||||
'BG ' => 'Bulgarie',
|
||||
'BF ' => 'Burkina Faso',
|
||||
'BI ' => 'Burundi',
|
||||
'KY ' => 'Caïmanes, Îles',
|
||||
'KH ' => 'Cambodge',
|
||||
'CM ' => 'Cameroun',
|
||||
'CA ' => 'Canada',
|
||||
'CV ' => 'Cabo Verde',
|
||||
'CF ' => 'Centrafricaine, République',
|
||||
'CL ' => 'Chili',
|
||||
'CN ' => 'Chine',
|
||||
'CX ' => 'Christmas, Île',
|
||||
'CY ' => 'Chypre',
|
||||
'CC ' => 'Cocos (Keeling), Îles',
|
||||
'CO ' => 'Colombie',
|
||||
'KM ' => 'Comores',
|
||||
'CG ' => 'Congo',
|
||||
'CD ' => 'Congo, La République Démocratique Du',
|
||||
'CK ' => 'Cook, Îles',
|
||||
'KR ' => 'Corée, République De',
|
||||
'KP ' => 'Corée, République Populaire Démocratique De',
|
||||
'CR ' => 'Costa Rica',
|
||||
'CI ' => 'Côte D’ivoire',
|
||||
'HR ' => 'Croatie',
|
||||
'CU ' => 'Cuba',
|
||||
'CW ' => 'Curaçao',
|
||||
'DK ' => 'Danemark',
|
||||
'DJ ' => 'Djibouti',
|
||||
'DO ' => 'Dominicaine, République',
|
||||
'DM ' => 'Dominique',
|
||||
'EG ' => 'Égypte',
|
||||
'SV ' => 'El Salvador',
|
||||
'AE ' => 'Émirats Arabes Unis',
|
||||
'EC ' => 'Équateur',
|
||||
'ER ' => 'Érythrée',
|
||||
'ES ' => 'Espagne',
|
||||
'EE ' => 'Estonie',
|
||||
'US ' => 'États-Unis',
|
||||
'ET ' => 'Éthiopie',
|
||||
'FK ' => 'Falkland, Îles (Malvinas)',
|
||||
'FO ' => 'Féroé, Îles',
|
||||
'FJ ' => 'Fidji',
|
||||
'FI ' => 'Finlande',
|
||||
'FR ' => 'France',
|
||||
'GA ' => 'Gabon',
|
||||
'GM ' => 'Gambie',
|
||||
'GE ' => 'Géorgie',
|
||||
'GS ' => 'Géorgie Du Sud Et Les Îles Sandwich Du Sud',
|
||||
'GH ' => 'Ghana',
|
||||
'GI ' => 'Gibraltar',
|
||||
'GR ' => 'Grèce',
|
||||
'GD ' => 'Grenade',
|
||||
'GL ' => 'Groenland',
|
||||
'GP ' => 'Guadeloupe',
|
||||
'GU ' => 'Guam',
|
||||
'GT ' => 'Guatemala',
|
||||
'GG ' => 'Guernesey',
|
||||
'GN ' => 'Guinée',
|
||||
'GW ' => 'Guinée-Bissau',
|
||||
'GQ ' => 'Guinée Équatoriale',
|
||||
'GY ' => 'Guyana',
|
||||
'GF ' => 'Guyane Française',
|
||||
'HT ' => 'Haïti',
|
||||
'HM ' => 'Heard Et Macdonald, Îles',
|
||||
'HN ' => 'Honduras',
|
||||
'HK ' => 'Hong Kong',
|
||||
'HU ' => 'Hongrie',
|
||||
'IM ' => 'Île De Man',
|
||||
'UM ' => 'Îles Mineures Éloignées Des États-Unis',
|
||||
'VG ' => 'Îles Vierges Britanniques',
|
||||
'VI ' => 'Îles Vierges Des États-Unis',
|
||||
'IN ' => 'Inde',
|
||||
'ID ' => 'Indonésie',
|
||||
'IR ' => "Iran, République Islamique D'",
|
||||
'IQ ' => 'Iraq',
|
||||
'IE ' => 'Irlande',
|
||||
'IS ' => 'Islande',
|
||||
'IL ' => 'Israël',
|
||||
'IT ' => 'Italie',
|
||||
'JM ' => 'Jamaïque',
|
||||
'JP ' => 'Japon',
|
||||
'JE ' => 'Jersey',
|
||||
'JO ' => 'Jordanie',
|
||||
'KZ ' => 'Kazakhstan',
|
||||
'KE ' => 'Kenya',
|
||||
'KG ' => 'Kirghizistan',
|
||||
'KI ' => 'Kiribati',
|
||||
'KW ' => 'Koweït',
|
||||
'LA ' => 'Lao, République Démocratique Populaire',
|
||||
'LS ' => 'Lesotho',
|
||||
'LV ' => 'Lettonie',
|
||||
'LB ' => 'Liban',
|
||||
'LR ' => 'Libéria',
|
||||
'LY ' => 'Libye',
|
||||
'LI ' => 'Liechtenstein',
|
||||
'LT ' => 'Lituanie',
|
||||
'LU ' => 'Luxembourg',
|
||||
'MO ' => 'Macao',
|
||||
'MK ' => 'République De Macédoine',
|
||||
'MG ' => 'Madagascar',
|
||||
'MY ' => 'Malaisie',
|
||||
'MW ' => 'Malawi',
|
||||
'MV ' => 'Maldives',
|
||||
'ML ' => 'Mali',
|
||||
'MT ' => 'Malte',
|
||||
'MP ' => 'Mariannes Du Nord, Îles',
|
||||
'MA ' => 'Maroc',
|
||||
'MH ' => 'Marshall, Îles',
|
||||
'MQ ' => 'Martinique',
|
||||
'MU ' => 'Maurice',
|
||||
'MR ' => 'Mauritanie',
|
||||
'YT ' => 'Mayotte',
|
||||
'MX ' => 'Mexique',
|
||||
'FM ' => 'Micronésie, États Fédérés De',
|
||||
'MD ' => 'Moldavie',
|
||||
'MC ' => 'Monaco',
|
||||
'MN ' => 'Mongolie',
|
||||
'ME ' => 'Monténégro',
|
||||
'MS ' => 'Montserrat',
|
||||
'MZ ' => 'Mozambique',
|
||||
'MM ' => 'Myanmar',
|
||||
'NA ' => 'Namibie',
|
||||
'N/A' => 'Non Applicable (IP locale…)',
|
||||
'NR ' => 'Nauru',
|
||||
'NP ' => 'Népal',
|
||||
'NI ' => 'Nicaragua',
|
||||
'NE ' => 'Niger',
|
||||
'NG ' => 'Nigéria',
|
||||
'NU ' => 'Niué',
|
||||
'NF ' => 'Norfolk, Île',
|
||||
'NO ' => 'Norvège',
|
||||
'NC ' => 'Nouvelle-Calédonie',
|
||||
'NZ ' => 'Nouvelle-Zélande',
|
||||
'IO ' => "Océan Indien, Territoire Britannique De L'",
|
||||
'OM ' => 'Oman',
|
||||
'UG ' => 'Ouganda',
|
||||
'UZ ' => 'Ouzbékistan',
|
||||
'PK ' => 'Pakistan',
|
||||
'PW ' => 'Palaos',
|
||||
'PS ' => 'État De Palestine',
|
||||
'PA ' => 'Panama',
|
||||
'PG ' => 'Papouasie-Nouvelle-Guinée',
|
||||
'PY ' => 'Paraguay',
|
||||
'NL ' => 'Pays-Bas',
|
||||
'PE ' => 'Pérou',
|
||||
'PH ' => 'Philippines',
|
||||
'PN ' => 'Pitcairn',
|
||||
'PL ' => 'Pologne',
|
||||
'PF ' => 'Polynésie Française',
|
||||
'PR ' => 'Porto Rico',
|
||||
'PT ' => 'Portugal',
|
||||
'QA ' => 'Qatar',
|
||||
'RE ' => 'Réunion',
|
||||
'RO ' => 'Roumanie',
|
||||
'GB ' => 'Royaume-Uni',
|
||||
'RU ' => 'Russie, Fédération De',
|
||||
'RW ' => 'Rwanda',
|
||||
'EH ' => 'Sahara Occidental',
|
||||
'BL ' => 'Saint-Barthélemy',
|
||||
'KN ' => 'Saint-Kitts-Et-Nevis',
|
||||
'SM ' => 'Saint-Marin',
|
||||
'MF ' => 'Saint-Martin (Partie Française)',
|
||||
'SX ' => 'Saint-Martin (Partie Néerlandaise)',
|
||||
'PM ' => 'Saint-Pierre-Et-Miquelon',
|
||||
'VA ' => 'Saint-Siège (État De La Cité Du Vatican)',
|
||||
'VC ' => 'Saint-Vincent-Et-Les-Grenadines',
|
||||
'SH ' => 'Sainte-Hélène, Ascension Et Tristan Da Cunha',
|
||||
'LC ' => 'Sainte-Lucie',
|
||||
'SB ' => 'Salomon, Îles',
|
||||
'WS ' => 'Samoa',
|
||||
'AS ' => 'Samoa Américaines',
|
||||
'ST ' => 'Sao Tomé-Et-Principe',
|
||||
'SN ' => 'Sénégal',
|
||||
'RS ' => 'Serbie',
|
||||
'SC ' => 'Seychelles',
|
||||
'SL ' => 'Sierra Leone',
|
||||
'SG ' => 'Singapour',
|
||||
'SK ' => 'Slovaquie',
|
||||
'SI ' => 'Slovénie',
|
||||
'SO ' => 'Somalie',
|
||||
'SD ' => 'Soudan',
|
||||
'SS ' => 'Soudan Du Sud',
|
||||
'LK ' => 'Sri Lanka',
|
||||
'SE ' => 'Suède',
|
||||
'CH ' => 'Suisse',
|
||||
'SR ' => 'Suriname',
|
||||
'SJ ' => 'Svalbard Et Île Jan Mayen',
|
||||
'SZ ' => 'Eswatini',
|
||||
'SY ' => 'Syrienne, République Arabe',
|
||||
'TJ ' => 'Tadjikistan',
|
||||
'TW ' => 'Taïwan, Province De Chine',
|
||||
'TZ ' => 'Tanzanie, République Unie De',
|
||||
'TD ' => 'Tchad',
|
||||
'CZ ' => 'Tchéquie',
|
||||
'TF ' => 'Terres Australes Françaises',
|
||||
'TH ' => 'Thaïlande',
|
||||
'TL ' => 'Timor-Leste',
|
||||
'TG ' => 'Togo',
|
||||
'TK ' => 'Tokelau',
|
||||
'TO ' => 'Tonga',
|
||||
'TT ' => 'Trinité-Et-Tobago',
|
||||
'TN ' => 'Tunisie',
|
||||
'TM ' => 'Turkménistan',
|
||||
'TC ' => 'Turks Et Caïques, Îles',
|
||||
'TR ' => 'Turquie',
|
||||
'TV ' => 'Tuvalu',
|
||||
'UA ' => 'Ukraine',
|
||||
'UY ' => 'Uruguay',
|
||||
'VU ' => 'Vanuatu',
|
||||
'VE ' => 'Venezuela, République Bolivarienne Du',
|
||||
'VN ' => 'Viet Nam',
|
||||
'WF ' => 'Wallis-Et-Futuna',
|
||||
'YE ' => 'Yémen',
|
||||
'ZM ' => 'Zambie',
|
||||
'ZW ' => 'Zimbabwe',
|
||||
];
|
|
@ -25,151 +25,4 @@ return [
|
|||
}',
|
||||
'all_podcast_episodes' => 'Tous les épisodes du podcast',
|
||||
'back_to_podcast' => 'Revenir au podcast',
|
||||
'edit' => 'Modifier',
|
||||
'publish' => 'Publier',
|
||||
'publish_edit' => 'Modifier la publication',
|
||||
'unpublish' => 'Dépublier',
|
||||
'publish_error' => 'L’épisode est déjà publié.',
|
||||
'publish_edit_error' => 'L’épisode est déjà publié.',
|
||||
'publish_cancel_error' => 'L’épisode est déjà publié.',
|
||||
'unpublish_error' => 'L’épisode n’est pas publié.',
|
||||
'delete' => 'Supprimer',
|
||||
'go_to_page' => 'Voir',
|
||||
'create' => 'Ajouter un épisode',
|
||||
'publication_status' => [
|
||||
'published' => 'Publié',
|
||||
'scheduled' => 'Planifié',
|
||||
'not_published' => 'Non publié',
|
||||
],
|
||||
'list' => [
|
||||
'episode' => 'Épisode',
|
||||
'visibility' => 'Visibilité',
|
||||
'comments' => 'Commentaires',
|
||||
'actions' => 'Actions',
|
||||
],
|
||||
'form' => [
|
||||
'warning' =>
|
||||
'En cas d’erreur fatale, essayez d’augmenter les valeurs de `memory_limit`, `upload_max_filesize` et `post_max_size` dans votre fichier de configuration php puis redémarrez votre serveur web.<br />Les valeurs doivent être plus grandes que le fichier audio que vous souhaitez téléverser.',
|
||||
'audio_file' => 'Fichier audio',
|
||||
'audio_file_hint' => 'Sélectionnez un fichier audio .mp3 ou .m4a.',
|
||||
'info_section_title' => 'Informations épisode',
|
||||
'info_section_subtitle' => '',
|
||||
'image' => 'Image de couverture',
|
||||
'image_hint' =>
|
||||
'Si vous ne définissez pas d’image, celle du podcast sera utilisée à la place.',
|
||||
'title' => 'Titre',
|
||||
'title_hint' =>
|
||||
'Doit contenir un titre d’épisode clair et concis. Ne précisez ici aucun numéro de saison ou d’épisode.',
|
||||
'permalink' => 'Lien permanent',
|
||||
'season_number' => 'Saison',
|
||||
'episode_number' => 'Épisode',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'hint' =>
|
||||
'- <strong>complet</strong>: épisode complet.<br/>- <strong>bande-annonce</strong>: extrait court, promotionnel du podcast.<br/>- <strong>bonus</strong> : contenu supplémentaire pour le podcast (par exemple des informations sur les coulisses ou des interviews avec les acteurs) ou du contenu promotionnel croisé pour un autre podcast.',
|
||||
'full' => 'Complet',
|
||||
'trailer' => 'Bande-annonce',
|
||||
'bonus' => 'Bonus',
|
||||
],
|
||||
'parental_advisory' => [
|
||||
'label' => 'Avertissement parental',
|
||||
'hint' => 'L’épisode contient-il un contenu explicite ?',
|
||||
'undefined' => 'non défini',
|
||||
'clean' => 'Convenable',
|
||||
'explicit' => 'Explicite',
|
||||
],
|
||||
'show_notes_section_title' => 'Notes d’épisode (Show Notes)',
|
||||
'show_notes_section_subtitle' =>
|
||||
'Jusque 4000 caractères, soyez clairs et concis. Les notes d’épisode aident les auditeurs potentiels à le trouver.',
|
||||
'description' => 'Description',
|
||||
'description_footer' => 'Pied de description',
|
||||
'description_footer_hint' =>
|
||||
'Ce texte est ajouté à la fin de chaque description d’épisode, c’est un bon endroit pour placer vos liens sociaux par exemple.',
|
||||
'additional_files_section_title' => 'Fichiers additionels',
|
||||
'additional_files_section_subtitle' =>
|
||||
'Ces fichiers pourront être utilisées par d’autres plate-formes pour procurer une meilleure expérience à vos auditeurs.<br />Consulter le {podcastNamespaceLink} pour plus d’informations.',
|
||||
'location_section_title' => 'Localisation',
|
||||
'location_section_subtitle' => 'De quel lieu cet épisode parle-t-il ?',
|
||||
'location_name' => 'Nom ou adresse du lieu',
|
||||
'location_name_hint' => 'Ce lieu peut être réel ou fictif',
|
||||
'transcript' => 'Transcription ou sous-titrage',
|
||||
'transcript_hint' =>
|
||||
'Les formats autorisés sont txt, html, srt ou json.',
|
||||
'transcript_file' => 'Fichier de transcription',
|
||||
'transcript_file_remote_url' =>
|
||||
'URL distante pour le fichier de transcription',
|
||||
'transcript_file_delete' => 'Supprimer le fichier de transcription',
|
||||
'chapters' => 'Chapitrage',
|
||||
'chapters_hint' => 'Le fichier doit être en format “JSON Chapters”.',
|
||||
'chapters_file' => 'Fichier de chapitrage',
|
||||
'chapters_file_remote_url' =>
|
||||
'URL distante pour le fichier de chapitrage',
|
||||
'chapters_file_delete' => 'Supprimer le fichier de chapitrage',
|
||||
'advanced_section_title' => 'Paramètres avancés',
|
||||
'advanced_section_subtitle' =>
|
||||
'Si vous avez besoin d’une balise que Castopod ne couvre pas, définissez-la ici.',
|
||||
'custom_rss' => 'Balises RSS personnalisées pour l’épisode',
|
||||
'custom_rss_hint' => 'Ceci sera injecté dans la balise ❬item❭.',
|
||||
'block' => 'L’épisode doit être masqué de toutes les plateformes',
|
||||
'block_hint' =>
|
||||
'La visibilité de l’épisode. Si vous souhaitez retirer cet épisode de l’index Apple, activez ce champ.',
|
||||
'submit_create' => 'Créer l’épisode',
|
||||
'submit_edit' => 'Enregistrer l’épisode',
|
||||
],
|
||||
'publish_form' => [
|
||||
'back_to_episode_dashboard' => 'Retour au tableau de bord de l’épisode',
|
||||
'post' => 'Votre message de publication',
|
||||
'post_hint' =>
|
||||
'Écrivez un message pour annoncer la publication de votre épisode. Le message sera diffusé à toutes les personnes qui vous suivent dans le fédiverse et mis en évidence sur la page d’accueil de votre podcast.',
|
||||
'publication_date' => 'Date de publication',
|
||||
'publication_date_clear' => 'Effacer la date de publication',
|
||||
'publication_date_hint' =>
|
||||
'Vous pouvez planifier la sortie de l’épisode en saisissant une date de publication future. Ce champ doit être au format YYYY-MM-DD HH:mm',
|
||||
'publication_method' => [
|
||||
'now' => 'Maintenant',
|
||||
'schedule' => 'Planifier',
|
||||
],
|
||||
'scheduled_publication_date' => 'Date de publication programmée',
|
||||
'scheduled_publication_date_clear' => 'Effacer la date de publication',
|
||||
'scheduled_publication_date_hint' =>
|
||||
'Vous pouvez planifier la sortie de l’épisode en saisissant une date de publication future. Ce champ doit être au format YYYY-MM-DD HH:mm',
|
||||
'submit' => 'Publier',
|
||||
'submit_edit' => 'Modifier la publication',
|
||||
'cancel_publication' => 'Annuler la publication',
|
||||
'message_warning' => 'Vous n’avez pas saisi de message pour l’annonce de votre épisode !',
|
||||
'message_warning_hint' => 'Ajouter un message augmente l’engagement social, menant à une meilleure visibilité pour votre épisode.',
|
||||
'message_warning_submit' => 'Publish quand même',
|
||||
],
|
||||
'soundbites' => 'Extraits sonores',
|
||||
'soundbites_form' => [
|
||||
'title' => 'Modifier les extraits sonores',
|
||||
'info_section_title' => 'Extraits sonores de l’épisode',
|
||||
'info_section_subtitle' =>
|
||||
'Ajouter, modifier ou supprimer des extraits sonores',
|
||||
'start_time' => 'Début',
|
||||
'start_time_hint' =>
|
||||
'La première seconde de l’extrait sonore, cela peut être un nombre décimal.',
|
||||
'duration' => 'Durée',
|
||||
'duration_hint' =>
|
||||
'La durée de l’extrait sonore (en secondes), cela peut être un nombre décimal.',
|
||||
'label' => 'Libellé',
|
||||
'label_hint' => 'Texte qui sera affiché.',
|
||||
'play' => 'Écouter l’extrait sonore',
|
||||
'delete' => 'Supprimer l’extrait sonore',
|
||||
'bookmark' =>
|
||||
'Cliquez pour récupérer la position actuelle, cliquez à nouveau pour récupérer la durée.',
|
||||
'submit_edit' => 'Enregistrer tous les extraits sonores',
|
||||
],
|
||||
'embeddable_player' => [
|
||||
'add' => 'Ajouter un lecteur intégré',
|
||||
'title' => 'Lecteur intégré',
|
||||
'label' =>
|
||||
'Sélectionnez une couleur de thème, copiez le code dans le presse-papier, puis collez-le sur votre site internet.',
|
||||
'clipboard_iframe' => 'Copier le lecteur dans le presse papier',
|
||||
'clipboard_url' => 'Copier l’adresse dans le presse papier',
|
||||
'dark' => 'Sombre',
|
||||
'dark-transparent' => 'Sombre transparent',
|
||||
'light' => 'Clair',
|
||||
'light-transparent' => 'Clair transparent',
|
||||
],
|
||||
];
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'info' => 'Informations de mon compte',
|
||||
'changePassword' => 'Modifier mon mot de passe',
|
||||
'messages' => [
|
||||
'wrongPasswordError' =>
|
||||
'Le mot de passe que vous avez saisi est invalide.',
|
||||
'passwordChangeSuccess' =>
|
||||
'Le mot de passe a été modifié avec succès !',
|
||||
],
|
||||
];
|
|
@ -1,21 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'pageNavigation' => 'Navigation',
|
||||
'first' => 'Première',
|
||||
'previous' => 'Précédent',
|
||||
'next' => 'Suivant',
|
||||
'last' => 'Dernière',
|
||||
'older' => 'Plus ancien',
|
||||
'newer' => 'Plus récent',
|
||||
'invalidTemplate' => '{0} n’est pas un modèle valide.',
|
||||
'invalidPaginationGroup' => '{0} n’est pas un groupe valide.',
|
||||
];
|
|
@ -1,68 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'persons' => 'Intervenants',
|
||||
'all_persons' => 'Tous les intervenants',
|
||||
'no_person' => 'Aucun intervenant trouvé !',
|
||||
'create' => 'Créer un intervenant',
|
||||
'view' => 'Voir l’intervenant',
|
||||
'edit' => 'Modifier l’intervenant',
|
||||
'delete' => 'Supprimer l’intervenant',
|
||||
'form' => [
|
||||
'identity_section_title' => 'Identité',
|
||||
'identity_section_subtitle' => 'Qui intervient sur le podcast',
|
||||
'image' => 'Photo',
|
||||
'image_size_hint' =>
|
||||
'L’image doit être carrée et avoir au moins 400px de largeur et de hauteur.',
|
||||
'full_name' => 'Nom complet',
|
||||
'full_name_hint' => 'Le nom complet ou le pseudonyme de l’intervenant',
|
||||
'unique_name' => 'Nom unique',
|
||||
'unique_name_hint' => 'Utilisé pour les URLs',
|
||||
'information_url' => 'Adresse d’information',
|
||||
'information_url_hint' =>
|
||||
'URL pointant vers des informations relatives à l’intervenant, telle qu’une page personnelle ou une page de profil sur une plateforme tierce.',
|
||||
'submit_create' => 'Créer l’intervenant',
|
||||
'submit_edit' => 'Enregistrer l’intervenant',
|
||||
],
|
||||
'podcast_form' => [
|
||||
'title' => 'Gérer les intervenants',
|
||||
'manage_section_title' => 'Gestion',
|
||||
'manage_section_subtitle' => 'Retirer des intervenants de ce podcast',
|
||||
'add_section_title' => 'Ajouter des intervenants à ce podcast',
|
||||
'add_section_subtitle' =>
|
||||
'Vous pouvez sélectionner plusieurs intervenants et rôles.',
|
||||
'person' => 'Intervenants',
|
||||
'person_hint' =>
|
||||
'Vous pouvez selectionner un ou plusieurs intervenants ayant les mêmes rôles. Les intervenants doivent avoir été préalablement créés.',
|
||||
'group_role' => 'Groupes et rôles',
|
||||
'group_role_hint' =>
|
||||
'Vous pouvez sélectionner aucun, un ou plusieurs groupes et rôles par intervenant.',
|
||||
'submit_add' => 'Ajouter un/des intervenant(s)',
|
||||
'remove' => 'Retirer',
|
||||
],
|
||||
'episode_form' => [
|
||||
'title' => 'Gérer les intervenants',
|
||||
'manage_section_title' => 'Gestion',
|
||||
'manage_section_subtitle' => 'Retirer des intervenants de cet épisode',
|
||||
'add_section_title' => 'Ajouter des intervenants à cet épisode',
|
||||
'add_section_subtitle' =>
|
||||
'Vous pouvez sélectionner plusieurs intervenants et rôles.',
|
||||
'person' => 'Intervenants',
|
||||
'person_hint' =>
|
||||
'Vous pouvez selectionner un ou plusieurs intervenants ayant les mêmes rôles. Les intervenants doivent avoir été préalablement créés.',
|
||||
'group_role' => 'Groupes et rôles',
|
||||
'group_role_hint' =>
|
||||
'Vous pouvez sélectionner aucun, un ou plusieurs groupes et rôles par intervenant.',
|
||||
'submit_add' => 'Ajouter un/des intervenant(s)',
|
||||
'remove' => 'Retirer',
|
||||
],
|
||||
'credits' => 'Crédits',
|
||||
];
|
|
@ -1,30 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'Plateformes',
|
||||
'home_url' => 'Aller au site {platformName}',
|
||||
'submit_url' => 'Soumettez votre podcast sur {platformName}',
|
||||
'visible' => 'Afficher sur la page d’accueil du podcast ?',
|
||||
'on_embeddable_player' => 'Afficher sur le lecteur intégré ?',
|
||||
'remove' => 'Supprimer {platformName}',
|
||||
'submit' => 'Enregistrer',
|
||||
'messages' => [
|
||||
'updateSuccess' => 'Les liens ont été enregistrés avec succès !',
|
||||
'removeLinkSuccess' => 'Le lien a été supprimé.',
|
||||
'removeLinkError' =>
|
||||
'Le lien n’a pas pu être supprimé. Merci d’essayer à nouveau.',
|
||||
],
|
||||
'description' => [
|
||||
'podcasting' => 'L’identifiant du podcast sur cette plate-forme',
|
||||
'social' => 'L’identifiant du compte du podcast sur cette plate-forme',
|
||||
'funding' => 'Message d’incitation à l’action',
|
||||
],
|
||||
];
|
|
@ -23,195 +23,6 @@ return [
|
|||
'go_to_page' => 'Aller à la page',
|
||||
'latest_episodes' => 'Derniers épisodes',
|
||||
'see_all_episodes' => 'Voir tous les épisodes',
|
||||
'form' => [
|
||||
'identity_section_title' => 'Informations sur le Podcast',
|
||||
'identity_section_subtitle' =>
|
||||
'Ces champs vous permettent de vous faire remarquer.',
|
||||
'image' => 'Image de couverture',
|
||||
'title' => 'Titre',
|
||||
'handle' => 'Identifiant',
|
||||
'handle_hint' =>
|
||||
'Utilisé pour identifier le podcast. Les majuscules, les minuscules, les chiffres et le caractère souligné « _ » sont acceptés.',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'hint' =>
|
||||
'- <strong>épisodique</strong> : si les épisodes sont destinés à être consommés sans ordre spécifique. Les épisodes les plus récents seront présentés en premier.<br/>- <strong>série</strong>: si les épisodes sont destinés à être consommés dans un ordre séquentiel bien défini. Les épisodes les plus anciens seront présentés en premier.',
|
||||
'episodic' => 'Épisodique',
|
||||
'serial' => 'Série',
|
||||
],
|
||||
'description' => 'Description',
|
||||
'classification_section_title' => 'Classification',
|
||||
'classification_section_subtitle' =>
|
||||
'Ces champs auront un impact sur votre audience et votre concurrence.',
|
||||
'language' => 'Langue',
|
||||
'category' => 'Catégorie',
|
||||
'category_placeholder' => 'Sélectionner une catégorie…',
|
||||
'other_categories' => 'Autres catégories',
|
||||
'parental_advisory' => [
|
||||
'label' => 'Avertissement parental',
|
||||
'hint' => 'Contient-il un contenu explicite ?',
|
||||
'undefined' => 'non défini',
|
||||
'clean' => 'Convenable',
|
||||
'explicit' => 'Explicite',
|
||||
],
|
||||
'author_section_title' => 'Auteur / Autrice',
|
||||
'author_section_subtitle' => 'Qui gère le podcast ?',
|
||||
'owner_name' => 'Nom du/de la propriétaire',
|
||||
'owner_name_hint' =>
|
||||
'Pour usage administratif uniquement. Visible dans le flux RSS public.',
|
||||
'owner_email' => 'E-mail du/de la propriétaire',
|
||||
'owner_email_hint' =>
|
||||
'Utilisé par la plupart des plateformes pour vérifier la propriété du podcast. Visible dans le flux RSS public.',
|
||||
'publisher' => 'Éditeur / Éditrice',
|
||||
'publisher_hint' =>
|
||||
'Le groupe responsable de la création du podcast. Fait souvent référence à la société mère ou au réseau d’un podcast. Ce champ est parfois appelé « Auteur ».',
|
||||
'copyright' => 'Droit d’auteur',
|
||||
'location_section_title' => 'Localisation',
|
||||
'location_section_subtitle' => 'De quel lieu ce podcast parle-t-il ?',
|
||||
'location_name' => 'Nom ou adresse du lieu',
|
||||
'location_name_hint' => 'Ce lieu peut être réel ou fictif',
|
||||
'monetization_section_title' => 'Monétisation',
|
||||
'monetization_section_subtitle' =>
|
||||
'Gagnez de l’argent grâce à votre audience.',
|
||||
'payment_pointer' =>
|
||||
'Adresse de paiement (Payment Pointer) pour Web Monetization',
|
||||
'payment_pointer_hint' =>
|
||||
'L’adresse où vous recevrez de l’argent grâce à Web Monetization',
|
||||
'advanced_section_title' => 'Paramètres avancés',
|
||||
'advanced_section_subtitle' =>
|
||||
'Si vous avez besoin d’une balise que nous n’avons pas couverte, définissez-la ici.',
|
||||
'custom_rss' => 'Balises RSS personnalisées pour le podcast',
|
||||
'custom_rss_hint' => 'Ceci sera injecté dans la balise ❬channel❭.',
|
||||
'partnership' => 'Partenariat',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'URL lien',
|
||||
'partner_image_url' => 'URL image',
|
||||
'partner_id_hint' => 'Votre identifiant personnel partenaire',
|
||||
'partner_link_url_hint' => 'L’adresse générique des liens partenaire',
|
||||
'partner_image_url_hint' => 'L’adresse générique des images partenaire',
|
||||
'status_section_title' => 'Statut',
|
||||
'status_section_subtitle' => 'Vivant ou mort ?',
|
||||
'block' => 'Le podcast doit être masqué sur toutes les plateformes',
|
||||
'complete' => 'Le podcast n’aura plus de nouveaux épisodes.',
|
||||
'lock' => 'Empêcher la copie du podcast',
|
||||
'lock_hint' =>
|
||||
'Le but est d’indiquer aux autres plates-formes de podcast si elles sont autorisées à importer ce flux. La valeur « oui » signifie que toute tentative d’importation de ce flux dans une nouvelle plateforme doit être rejetée.',
|
||||
'submit_create' => 'Créer le podcast',
|
||||
'submit_edit' => 'Enregistrer le podcast',
|
||||
],
|
||||
'category_options' => [
|
||||
'uncategorized' => 'non catégorisé',
|
||||
'arts' => 'Arts',
|
||||
'business' => 'Entreprise',
|
||||
'comedy' => 'Comédie',
|
||||
'education' => 'Éducation',
|
||||
'fiction' => 'Fiction',
|
||||
'government' => 'Gouvernement',
|
||||
'health_and_fitness' => 'Santé et remise en forme',
|
||||
'history' => 'Histoire',
|
||||
'kids_and_family' => 'Enfants et famille',
|
||||
'Leisure' => 'Loisirs',
|
||||
'music' => 'Musique',
|
||||
'news' => 'Actualités',
|
||||
'religion_and_spirituality' => 'Religion et spiritualité',
|
||||
'science' => 'Science',
|
||||
'society_and_culture' => 'Société et Culture',
|
||||
'sports' => 'Sports',
|
||||
'technology' => 'Technologie',
|
||||
'true_crime' => 'Documentaire criminel',
|
||||
'tv_and_film' => 'Télévision et films',
|
||||
'books' => 'Livres',
|
||||
'design' => 'Design',
|
||||
'fashion_and_beauty' => 'Mode et beauté',
|
||||
'food' => 'Nourriture',
|
||||
'performing_arts' => 'Arts du spectacle',
|
||||
'visual_arts' => 'Arts visuels',
|
||||
'careers' => 'Carrières',
|
||||
'entrepreneurship' => 'Entrepreneuriat',
|
||||
'investment' => 'Investissement',
|
||||
'management' => 'Gestion',
|
||||
'marketing' => 'Marketing',
|
||||
'non_profit' => 'À but non lucratif',
|
||||
'comedy_interviews' => 'Entretiens comiques',
|
||||
'improv' => 'Improvisation',
|
||||
'stand_up' => 'Stand up',
|
||||
'courses' => 'Cours',
|
||||
'how_to' => 'Tutoriels',
|
||||
'language_learning' => 'Apprentissage des langues',
|
||||
'self_improvement' => 'Développement personnel',
|
||||
'comedy_fiction' => 'Comédie Fiction',
|
||||
'drama' => 'Drame',
|
||||
'science_fiction' => 'Science Fiction',
|
||||
'alternative_health' => 'Santé alternative',
|
||||
'fitness' => 'Remise en forme',
|
||||
'medicine' => 'Médecine',
|
||||
'mental_health' => 'Santé mentale',
|
||||
'nutrition' => 'Nutrition',
|
||||
'sexuality' => 'Sexualité',
|
||||
'education_for_kids' => 'Éducation pour les enfants',
|
||||
'parenting' => 'Parentalité',
|
||||
'pets_and_animals' => 'Animaux de compagnie et animaux',
|
||||
'stories_for_kids' => 'Histoires pour enfants',
|
||||
'animation_and_manga' => 'Animation et Manga',
|
||||
'Automotive' => 'Automobile',
|
||||
'aviation' => 'Aviation',
|
||||
'craft' => 'Artisanat',
|
||||
'games' => 'Jeux',
|
||||
'hobbies' => 'Loisirs',
|
||||
'home_and_garden' => 'Maison et jardin',
|
||||
'video_games' => 'Jeux vidéo',
|
||||
'music_commentary' => 'Commentaire musical',
|
||||
'music_history' => 'Histoire de la musique',
|
||||
'music_interviews' => 'Entretiens musicaux',
|
||||
'business_news' => 'Actualités économiques',
|
||||
'daily_news' => 'Actualités quotidiennes',
|
||||
'entertainment_news' => 'Actualités du divertissement',
|
||||
'news_commentary' => 'Commentaire d’actualité',
|
||||
'politique' => 'Politique',
|
||||
'sports_news' => 'Actualités sportives',
|
||||
'tech_news' => 'Actualités techniques',
|
||||
'buddhism' => 'Bouddhisme',
|
||||
'christianity' => 'Christianisme',
|
||||
'hinduism' => 'Hindouisme',
|
||||
'islam' => 'Islam',
|
||||
'judaism' => 'Judaïsme',
|
||||
'religion' => 'Religion',
|
||||
'spiritualité' => 'Spiritualité',
|
||||
'astronomy' => 'Astronomie',
|
||||
'chemistry' => 'Chimie',
|
||||
'earth_sciences' => 'Sciences de la Terre',
|
||||
'life_sciences' => 'Sciences de la vie',
|
||||
'Mathématiques' => 'Mathématiques',
|
||||
'natural_sciences' => 'Sciences naturelles',
|
||||
'nature' => 'Nature',
|
||||
'physics' => 'Physique',
|
||||
'social_sciences' => 'Sciences sociales',
|
||||
'documentary' => 'Documentaire',
|
||||
'personal_journals' => 'Journaux personnels',
|
||||
'philosophie' => 'Philosophie',
|
||||
'places_and_travel' => 'Lieux et voyages',
|
||||
'relations' => 'Relations',
|
||||
'baseball' => 'Baseball',
|
||||
'basketball' => 'Basketball',
|
||||
'cricket' => 'Cricket',
|
||||
'fantasy_sports' => 'Sports fantastiques',
|
||||
'football' => 'Football',
|
||||
'golf' => 'Golf',
|
||||
'hockey' => 'Hockey',
|
||||
'rugby' => 'Rugby',
|
||||
'running' => 'Course',
|
||||
'soccer' => 'Football',
|
||||
'swimming' => 'Natation',
|
||||
'tennis' => 'Tennis',
|
||||
'volleyball' => 'Volleyball',
|
||||
'wilderness' => 'Naturalité',
|
||||
'wrestling' => 'Lutte',
|
||||
'after_shows' => 'Après spectacle',
|
||||
'film_history' => 'Histoire du cinéma',
|
||||
'film_interviews' => 'Entretiens de films',
|
||||
'film_reviews' => 'Critiques de films',
|
||||
'tv_reviews' => 'Critiques TV',
|
||||
],
|
||||
'by' => 'Par {publisher}',
|
||||
'season' => 'Saison {seasonNumber}',
|
||||
'list_of_episodes_year' => 'Épisodes de {year} ({episodeCount})',
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'warning' =>
|
||||
'Cette procédure peut prendre du temps.<br/>Dans la mesure où la version actuelle ne montre aucune progression durant l’exécution, vous ne pourrez voir aucun changement avant la fin.<br/>En cas d’erreur de timeout, augmentez la valeur de `max_execution_time`.',
|
||||
'old_podcast_section_title' => 'Le podcast à importer',
|
||||
'old_podcast_section_subtitle' =>
|
||||
'Assurez-vous d’être détenteur des droits du podcast avant de l’importer. Copier et diffuser un podcast sans en détenir les droits est assimilable à de la contrefaçon et est passible de poursuites.',
|
||||
'imported_feed_url' => 'Adresse du flux',
|
||||
'imported_feed_url_hint' => 'Le flux doit être au format xml ou rss.',
|
||||
'new_podcast_section_title' => 'Le nouveau podcast',
|
||||
'advanced_params_section_title' => 'Paramètres avancés',
|
||||
'advanced_params_section_subtitle' =>
|
||||
'Si vous ne savez pas à quoi servent ces champs, conservez les valeurs par défaut.',
|
||||
'slug_field' => [
|
||||
'label' =>
|
||||
'Quel champ utiliser pour calculer l’identifiant de l’épisode',
|
||||
'link' => '<link> (adresse)',
|
||||
'title' => '<title> (titre)',
|
||||
],
|
||||
'description_field' => 'Champs pour la description des épisodes',
|
||||
'force_renumber' => 'Forcer la re-numérotation des épisodes',
|
||||
'force_renumber_hint' =>
|
||||
'Utilisez ceci si le podcast à importer ne contient pas de numéros d’épisodes mais que vous souhaitez en ajouter pendant l’import.',
|
||||
'season_number' => 'Numéro de saison',
|
||||
'season_number_hint' =>
|
||||
'Utilisez ceci si le podcast à importer ne contient pas de numéros de saison mais que vous souhaitez en définir un. Laissez vide sinon.',
|
||||
'max_episodes' => 'Nombre maximum d’épisodes à importer',
|
||||
'max_episodes_hint' => 'Laissez vide pour importer tous les épisodes',
|
||||
'lock_import' =>
|
||||
'Ce flux est protégé. Vous ne pouvez pas l’importer. Si en vous êtes le propriétaire, déprotégez-le sur la plate-forme d’origine.',
|
||||
'submit' => 'Importer le podcast',
|
||||
];
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'go_to_page' => 'Aller à la page du podcast',
|
||||
'dashboard' => 'Tableau de bord du podcast',
|
||||
'podcast-view' => 'Accueil',
|
||||
'podcast-edit' => 'Modifier le podcast',
|
||||
'episodes' => 'Épisodes',
|
||||
'episode-list' => 'Tous les épisodes',
|
||||
'episode-create' => 'Créer un épisode',
|
||||
'fediverse' => 'Fédiverse',
|
||||
'fediverse-block_lists' => 'Listes de blocage',
|
||||
'analytics' => 'Mesures d’audience',
|
||||
'persons' => 'Intervenants',
|
||||
'podcast-person-manage' => 'Gestion des intervenants',
|
||||
'contributors' => 'Contributeurs',
|
||||
'contributor-list' => 'Tous les contributeurs',
|
||||
'contributor-add' => 'Ajouter un contributeur',
|
||||
'platforms' => 'Plate-formes externes',
|
||||
'platforms-podcasting' => 'Podcasts',
|
||||
'platforms-social' => 'Réseaux Sociaux',
|
||||
'platforms-funding' => 'Financement',
|
||||
'podcast-analytics' => 'Vue d’ensemble',
|
||||
'podcast-analytics-webpages' => 'Visites des pages web',
|
||||
'podcast-analytics-locations' => 'Localisations',
|
||||
'podcast-analytics-unique-listeners' => 'Auditeurs uniques',
|
||||
'podcast-analytics-players' => 'Lecteurs',
|
||||
'podcast-analytics-listening-time' => 'Durée d’écoute',
|
||||
'podcast-analytics-time-periods' => 'Périodes',
|
||||
];
|
|
@ -1,54 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'edit_roles' => 'Modifier les rôles de {username}',
|
||||
'forcePassReset' => 'Forcer la réinitialisation du mot de passe',
|
||||
'ban' => 'Bloquer',
|
||||
'unban' => 'Débloquer',
|
||||
'delete' => 'Supprimer',
|
||||
'create' => 'Créer un utilisateur',
|
||||
'view' => 'Informations de {username}',
|
||||
'all_users' => 'Tous les utilisateurs',
|
||||
'list' => [
|
||||
'user' => 'Utilisateurs',
|
||||
'roles' => 'Rôles',
|
||||
'banned' => 'Bloqué ?',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'E-mail',
|
||||
'username' => 'Identifiant',
|
||||
'password' => 'Mot de passe',
|
||||
'new_password' => 'Nouveau mot de passe',
|
||||
'roles' => 'Rôles',
|
||||
'permissions' => 'Permissions',
|
||||
'submit_create' => 'Créer un utilisateur',
|
||||
'submit_edit' => 'Enregistrer',
|
||||
'submit_password_change' => 'Valider !',
|
||||
],
|
||||
'roles' => [
|
||||
'superadmin' => 'Super-utilisateur',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' =>
|
||||
'Utilisateur créé avec succès ! {username} devra modifier son mot de passe à la première authentification.',
|
||||
'rolesEditSuccess' =>
|
||||
'Les rôles de {username} ont été mis à jour avec succès.',
|
||||
'forcePassResetSuccess' =>
|
||||
'{username} devra modifier son mot de passe à la prochaine visite.',
|
||||
'banSuccess' => '{username} a été bloqué.',
|
||||
'unbanSuccess' => '{username} a été débloqué.',
|
||||
'banSuperAdminError' =>
|
||||
'{username} est un super-utilisateur, on ne bloque pas un super-utilisateur comme ça…',
|
||||
'deleteSuperAdminError' =>
|
||||
'{username} est un super-utilisateur, on ne supprime pas un super-utilisateur comme ça…',
|
||||
'deleteSuccess' => '{username} a été supprimé.',
|
||||
],
|
||||
];
|
|
@ -1,18 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'min_dims' =>
|
||||
'{field} n’est pas une image ou n’a pas la taille minimale requise.',
|
||||
'is_image_squared' =>
|
||||
'{field} n’est pas une image ou n’est pas carré (largeur et hauteur différentes).',
|
||||
'validate_url' =>
|
||||
'Le champs {field} doit être une adresse valide (par exemple https://exemple.com/).',
|
||||
];
|
|
@ -8,6 +8,8 @@ class Component implements ComponentInterface
|
|||
{
|
||||
protected string $slot = '';
|
||||
|
||||
protected string $class = '';
|
||||
|
||||
/**
|
||||
* @var array<string, string>
|
||||
*/
|
||||
|
|
|
@ -5,9 +5,12 @@ import * as am4maps from "@amcharts/amcharts4/maps";
|
|||
import * as am4plugins_sliceGrouper from "@amcharts/amcharts4/plugins/sliceGrouper";
|
||||
import am4themes_material from "@amcharts/amcharts4/themes/material";
|
||||
|
||||
const drawPieChart = (chartDivId: string, dataUrl: string | null): void => {
|
||||
const drawPieChart = (
|
||||
chartDiv: HTMLDivElement,
|
||||
dataUrl: string | null
|
||||
): void => {
|
||||
// Create chart instance
|
||||
const chart = am4core.create(chartDivId, am4charts.PieChart);
|
||||
const chart = am4core.create(chartDiv, am4charts.PieChart);
|
||||
am4core.percent(100);
|
||||
chart.exporting.menu = new am4core.ExportMenu();
|
||||
chart.exporting.menu.align = "left";
|
||||
|
@ -43,9 +46,12 @@ const drawPieChart = (chartDivId: string, dataUrl: string | null): void => {
|
|||
chart.legend.scrollable = true;
|
||||
};
|
||||
|
||||
const drawXYChart = (chartDivId: string, dataUrl: string | null): void => {
|
||||
const drawXYChart = (
|
||||
chartDiv: HTMLDivElement,
|
||||
dataUrl: string | null
|
||||
): void => {
|
||||
// Create chart instance
|
||||
const chart = am4core.create(chartDivId, am4charts.XYChart);
|
||||
const chart = am4core.create(chartDiv, am4charts.XYChart);
|
||||
am4core.percent(100);
|
||||
chart.exporting.menu = new am4core.ExportMenu();
|
||||
chart.exporting.menu.align = "right";
|
||||
|
@ -88,9 +94,12 @@ const drawXYChart = (chartDivId: string, dataUrl: string | null): void => {
|
|||
chart.scrollbarX = new am4core.Scrollbar();
|
||||
};
|
||||
|
||||
const drawBarChart = (chartDivId: string, dataUrl: string | null): void => {
|
||||
const drawBarChart = (
|
||||
chartDiv: HTMLDivElement,
|
||||
dataUrl: string | null
|
||||
): void => {
|
||||
// Create chart instance
|
||||
const chart = am4core.create(chartDivId, am4charts.XYChart);
|
||||
const chart = am4core.create(chartDiv, am4charts.XYChart);
|
||||
am4core.percent(100);
|
||||
chart.exporting.menu = new am4core.ExportMenu();
|
||||
chart.exporting.menu.align = "right";
|
||||
|
@ -121,11 +130,11 @@ const drawBarChart = (chartDivId: string, dataUrl: string | null): void => {
|
|||
};
|
||||
|
||||
const drawXYDurationChart = (
|
||||
chartDivId: string,
|
||||
chartDiv: HTMLDivElement,
|
||||
dataUrl: string | null
|
||||
): void => {
|
||||
// Create chart instance
|
||||
const chart = am4core.create(chartDivId, am4charts.XYChart);
|
||||
const chart = am4core.create(chartDiv, am4charts.XYChart);
|
||||
am4core.percent(100);
|
||||
chart.exporting.menu = new am4core.ExportMenu();
|
||||
chart.exporting.menu.align = "right";
|
||||
|
@ -171,9 +180,12 @@ const drawXYDurationChart = (
|
|||
chart.scrollbarX = new am4core.Scrollbar();
|
||||
};
|
||||
|
||||
const drawMapChart = (chartDivId: string, dataUrl: string | null): void => {
|
||||
const drawMapChart = (
|
||||
chartDiv: HTMLDivElement,
|
||||
dataUrl: string | null
|
||||
): void => {
|
||||
// Create map instance
|
||||
const chart = am4core.create(chartDivId, am4maps.MapChart);
|
||||
const chart = am4core.create(chartDiv, am4maps.MapChart);
|
||||
am4core.percent(100);
|
||||
chart.exporting.menu = new am4core.ExportMenu();
|
||||
chart.exporting.menu.align = "left";
|
||||
|
@ -238,22 +250,19 @@ const DrawCharts = (): void => {
|
|||
|
||||
switch (chartType) {
|
||||
case "pie-chart":
|
||||
drawPieChart(chartDiv.id, chartDiv.getAttribute("data-chart-url"));
|
||||
drawPieChart(chartDiv, chartDiv.getAttribute("data-chart-url"));
|
||||
break;
|
||||
case "xy-chart":
|
||||
drawXYChart(chartDiv.id, chartDiv.getAttribute("data-chart-url"));
|
||||
drawXYChart(chartDiv, chartDiv.getAttribute("data-chart-url"));
|
||||
break;
|
||||
case "bar-chart":
|
||||
drawBarChart(chartDiv.id, chartDiv.getAttribute("data-chart-url"));
|
||||
drawBarChart(chartDiv, chartDiv.getAttribute("data-chart-url"));
|
||||
break;
|
||||
case "xy-duration-chart":
|
||||
drawXYDurationChart(
|
||||
chartDiv.id,
|
||||
chartDiv.getAttribute("data-chart-url")
|
||||
);
|
||||
drawXYDurationChart(chartDiv, chartDiv.getAttribute("data-chart-url"));
|
||||
break;
|
||||
case "map-chart":
|
||||
drawMapChart(chartDiv.id, chartDiv.getAttribute("data-chart-url"));
|
||||
drawMapChart(chartDiv, chartDiv.getAttribute("data-chart-url"));
|
||||
break;
|
||||
default:
|
||||
console.error("Unknown chart type:" + chartType);
|
||||
|
|
|
@ -207,7 +207,7 @@
|
|||
}
|
||||
|
||||
.choices__list--multiple .choices__item.is-highlighted {
|
||||
@apply bg-pine-700;
|
||||
@apply bg-pine-500;
|
||||
}
|
||||
|
||||
.is-disabled .choices__list--multiple .choices__item {
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
}
|
||||
|
||||
.form-input-tabs > input:checked + label::after {
|
||||
@apply absolute inset-x-0 bottom-0 w-full mx-auto bg-pine-700;
|
||||
@apply absolute inset-x-0 bottom-0 w-full mx-auto bg-pine-500;
|
||||
content: "";
|
||||
height: 0.2rem;
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
}
|
||||
|
||||
.tabset > input:checked + label::after {
|
||||
@apply absolute inset-x-0 bottom-0 w-1/3 h-1 mx-auto bg-pine-700;
|
||||
@apply absolute inset-x-0 bottom-0 w-1/3 h-1 mx-auto bg-pine-500;
|
||||
content: "";
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Views\Components\Charts;
|
||||
|
||||
class Bar extends ChartsComponent
|
||||
{
|
||||
protected string $type = 'bar-chart';
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Views\Components\Charts;
|
||||
|
||||
use ViewComponents\Component;
|
||||
|
||||
class ChartsComponent extends Component
|
||||
{
|
||||
protected string $title = '';
|
||||
|
||||
protected string $dataUrl = '';
|
||||
|
||||
protected string $type = '';
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return <<<HTML
|
||||
<div class="bg-white border rounded-xl border-pine-100 {$this->class}">
|
||||
<h2 class="px-6 py-4 text-xl">{$this->title}</h2>
|
||||
<div class="w-full h-[500px]" data-chart-type="{$this->type}" data-chart-url="{$this->dataUrl}"></div>
|
||||
</div>
|
||||
HTML;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Views\Components\Charts;
|
||||
|
||||
class Map extends ChartsComponent
|
||||
{
|
||||
protected string $type = 'map-chart';
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Views\Components\Charts;
|
||||
|
||||
class Pie extends ChartsComponent
|
||||
{
|
||||
protected string $type = 'pie-chart';
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Views\Components\Charts;
|
||||
|
||||
class XY extends ChartsComponent
|
||||
{
|
||||
protected string $type = 'xy-chart';
|
||||
}
|
|
@ -19,7 +19,7 @@
|
|||
Sorry! Cannot seem to find the page you were looking for.
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
<button class="inline-flex items-center justify-center px-3 py-1 text-sm font-semibold text-white rounded-full shadow-xs focus:outline-none focus:ring md:px-4 md:py-2 md:text-base bg-pine-700 hover:bg-pine-800"><?= lang('Common.go_back') ?></button>
|
||||
<button class="inline-flex items-center justify-center px-3 py-1 text-sm font-semibold text-white rounded-full shadow-xs focus:outline-none focus:ring md:px-4 md:py-2 md:text-base bg-pine-500 hover:bg-pine-800"><?= lang('Common.go_back') ?></button>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -90,7 +90,7 @@ $routes->group(
|
|||
|
||||
$routes->group('persons', function ($routes): void {
|
||||
$routes->get('/', 'PodcastPersonController/$1', [
|
||||
'as' => 'podcast-person-manage',
|
||||
'as' => 'podcast-persons-manage',
|
||||
'filter' => 'permission:podcast-edit',
|
||||
]);
|
||||
$routes->post(
|
||||
|
@ -322,7 +322,7 @@ $routes->group(
|
|||
|
||||
$routes->group('persons', function ($routes): void {
|
||||
$routes->get('/', 'EpisodePersonController/$1/$2', [
|
||||
'as' => 'episode-person-manage',
|
||||
'as' => 'episode-persons-manage',
|
||||
'filter' => 'permission:podcast_episodes-edit',
|
||||
]);
|
||||
$routes->post(
|
||||
|
|
|
@ -160,7 +160,6 @@ return [
|
|||
'submit_edit' => 'Save all soundbites',
|
||||
],
|
||||
'embeddable_player' => [
|
||||
'add' => 'Add embeddable player',
|
||||
'title' => 'Embeddable player',
|
||||
'label' =>
|
||||
'Pick a theme color, copy the embeddable player to clipboard, then paste it on your website.',
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @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',
|
||||
'embeddable-player-add' => 'Embeddable player',
|
||||
'soundbites-edit' => 'Soundbites',
|
||||
];
|
|
@ -13,21 +13,11 @@ return [
|
|||
'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',
|
||||
'fediverse' => 'Fediverse',
|
||||
'fediverse-block_lists' => 'Block lists',
|
||||
'analytics' => 'Analytics',
|
||||
'persons' => 'Persons',
|
||||
'podcast-person-manage' => 'Manage persons',
|
||||
'contributors' => 'Contributors',
|
||||
'contributor-list' => 'All contributors',
|
||||
'contributor-add' => 'Add contributor',
|
||||
'platforms' => 'External platforms',
|
||||
'platforms-podcasting' => 'Podcasting',
|
||||
'platforms-social' => 'Social Networks',
|
||||
'platforms-funding' => 'Funding',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
'podcast-analytics-locations' => 'Locations',
|
||||
|
@ -35,4 +25,11 @@ return [
|
|||
'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',
|
||||
];
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2020 Podlibre
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'go_to_page' => 'Aller à la page de l’épisode',
|
||||
'dashboard' => 'Tableau de bord de l’épisode',
|
||||
'episode-view' => 'Accueil',
|
||||
'episode-edit' => 'Modifier l’épisode',
|
||||
'episode-persons-manage' => 'Gestion des intervenants',
|
||||
'embeddable-player-add' => 'Lecteur intégré',
|
||||
'soundbites-edit' => 'Extraits sonores',
|
||||
];
|
|
@ -13,21 +13,11 @@ return [
|
|||
'dashboard' => 'Tableau de bord du podcast',
|
||||
'podcast-view' => 'Accueil',
|
||||
'podcast-edit' => 'Modifier le podcast',
|
||||
'podcast-persons-manage' => 'Gestion des intervenants',
|
||||
'episodes' => 'Épisodes',
|
||||
'episode-list' => 'Tous les épisodes',
|
||||
'episode-create' => 'Créer un épisode',
|
||||
'fediverse' => 'Fédiverse',
|
||||
'fediverse-block_lists' => 'Listes de blocage',
|
||||
'analytics' => 'Mesures d’audience',
|
||||
'persons' => 'Intervenants',
|
||||
'podcast-person-manage' => 'Gestion des intervenants',
|
||||
'contributors' => 'Contributeurs',
|
||||
'contributor-list' => 'Tous les contributeurs',
|
||||
'contributor-add' => 'Ajouter un contributeur',
|
||||
'platforms' => 'Plate-formes externes',
|
||||
'platforms-podcasting' => 'Podcasts',
|
||||
'platforms-social' => 'Réseaux Sociaux',
|
||||
'platforms-funding' => 'Financement',
|
||||
'podcast-analytics' => 'Vue d’ensemble',
|
||||
'podcast-analytics-webpages' => 'Visites des pages web',
|
||||
'podcast-analytics-locations' => 'Localisations',
|
||||
|
@ -35,4 +25,11 @@ return [
|
|||
'podcast-analytics-players' => 'Lecteurs',
|
||||
'podcast-analytics-listening-time' => 'Durée d’écoute',
|
||||
'podcast-analytics-time-periods' => 'Périodes',
|
||||
'contributors' => 'Contributeurs',
|
||||
'contributor-list' => 'Tous les contributeurs',
|
||||
'contributor-add' => 'Ajouter un contributeur',
|
||||
'platforms' => 'Plate-formes externes',
|
||||
'platforms-podcasting' => 'Podcasts',
|
||||
'platforms-social' => 'Réseaux Sociaux',
|
||||
'platforms-funding' => 'Financement',
|
||||
];
|
||||
|
|
|
@ -59,7 +59,9 @@
|
|||
</nav>
|
||||
</header>
|
||||
<aside id="admin-sidebar" class="sticky z-50 flex flex-col text-white transition duration-200 ease-in-out transform -translate-x-full border-r top-10 border-pine-900 bg-pine-800 holy-grail__sidebar md:translate-x-0">
|
||||
<?php if (isset($podcast)): ?>
|
||||
<?php if (isset($podcast) && isset($episode)): ?>
|
||||
<?= $this->include('episode/_sidebar') ?>
|
||||
<?php elseif (isset($podcast)): ?>
|
||||
<?= $this->include('podcast/_sidebar') ?>
|
||||
<?php else: ?>
|
||||
<?= $this->include('_sidebar') ?>
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
$podcastNavigation = [
|
||||
'dashboard' => [
|
||||
'icon' => 'dashboard',
|
||||
'items' => ['episode-view', 'episode-edit', 'episode-persons-manage', 'embeddable-player-add', 'soundbites-edit'],
|
||||
],
|
||||
]; ?>
|
||||
|
||||
<a href="<?= route_to('podcast-view', $podcast->id) ?>" class="flex items-center px-4 py-2 border-b border-pine-900 focus:ring">
|
||||
<?= icon('arrow-left', 'mr-2' ) ?>
|
||||
<img
|
||||
src="<?= $podcast->image->thumbnail_url ?>"
|
||||
alt="<?= $podcast->title ?>"
|
||||
class="object-cover w-6 h-6 rounded"
|
||||
/>
|
||||
<span class="flex-1 w-full px-2 text-xs font-semibold truncate" title="<?= $podcast->title ?>"><?= $podcast->title ?></span>
|
||||
</a>
|
||||
<div class="flex items-center px-4 py-2 border-b border-pine-900">
|
||||
<img
|
||||
src="<?= $episode->image->thumbnail_url ?>"
|
||||
alt="<?= $episode->title ?>"
|
||||
class="object-cover w-16 h-16 rounded"
|
||||
/>
|
||||
<div class="flex flex-col items-start flex-1 w-48 px-2">
|
||||
<span class="w-full font-semibold truncate" title="<?= $episode->title ?>"><?= $episode->title ?></span>
|
||||
<a href="<?= route_to(
|
||||
'episode',
|
||||
$podcast->handle,
|
||||
$episode->slug,
|
||||
) ?>" class="inline-flex items-center text-xs outline-none hover:underline focus:ring"><?= lang(
|
||||
'EpisodeNavigation.go_to_page',
|
||||
) ?>
|
||||
<?= icon('external-link', 'ml-1 opacity-60') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<nav class="flex flex-col flex-1 py-4 overflow-y-auto gap-y-4">
|
||||
<?php foreach ($podcastNavigation as $section => $data): ?>
|
||||
<div>
|
||||
<button class="inline-flex items-center w-full px-4 py-1 font-semibold outline-none focus:ring" type="button">
|
||||
<?= icon($data['icon'], 'opacity-60 text-2xl mr-4') .
|
||||
lang('EpisodeNavigation.' . $section) ?>
|
||||
</button>
|
||||
<ul class="flex flex-col">
|
||||
<?php foreach ($data['items'] as $item): ?>
|
||||
<?php $isActive = url_is(route_to($item, $podcast->id, $episode->id)); ?>
|
||||
<li class="inline-flex">
|
||||
<a class="w-full py-1 pl-14 pr-2 text-sm outline-none hover:opacity-100 focus:ring <?= $isActive
|
||||
? 'font-semibold opacity-100 inline-flex items-center'
|
||||
: 'opacity-75' ?>" href="<?= route_to(
|
||||
$item,
|
||||
$podcast->id,
|
||||
$episode->id
|
||||
) ?>"><?= ($isActive ? icon('chevron-right', 'mr-2') : '') .lang('EpisodeNavigation.' . $item) ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</nav>
|
|
@ -400,12 +400,20 @@
|
|||
|
||||
<Forms.Toggler id="block" name="block" value="yes" checked="<?= old('block', $episode->is_blocked) ?>" hint="<?= lang('Episode.form.block_hint') ?>"><?= lang('Episode.form.block') ?></Forms.Toggler>
|
||||
|
||||
<?= button(
|
||||
lang('Episode.form.submit_edit'),
|
||||
'',
|
||||
['variant' => 'primary'],
|
||||
['type' => 'submit', 'class' => 'self-end'],
|
||||
) ?>
|
||||
<div class="flex items-center justify-between">
|
||||
<?= button(
|
||||
lang('Episode.delete'),
|
||||
route_to('episode-delete', $podcast->id, $episode->id),
|
||||
['variant' => 'danger', 'iconLeft' => 'delete-bin'],
|
||||
) ?>
|
||||
|
||||
<?= button(
|
||||
lang('Episode.form.submit_edit'),
|
||||
'',
|
||||
['variant' => 'primary'],
|
||||
['type' => 'submit', 'class' => 'self-end'],
|
||||
) ?>
|
||||
</div>
|
||||
|
||||
<?= form_close() ?>
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
'Episode.embeddable_player.add',
|
||||
) . '</a>' .
|
||||
'<a class="px-4 py-1 hover:bg-gray-100" href="' . route_to(
|
||||
'episode-person-manage',
|
||||
'episode-persons-manage',
|
||||
$podcast->id,
|
||||
$episode->id,
|
||||
) . '">' . lang('Person.persons') . '</a>' .
|
||||
|
|
|
@ -26,128 +26,28 @@
|
|||
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
<div class="flex flex-wrap">
|
||||
<div class="w-full max-w-sm mb-6 md:mr-4">
|
||||
<div class="mb-6">
|
||||
<img
|
||||
src="<?= $episode->image->medium_url ?>"
|
||||
alt="Episode cover"
|
||||
class="object-cover w-full"
|
||||
/>
|
||||
<?= audio_player($episode->audio_file_url, $episode->audio_file_mimetype) ?>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-around">
|
||||
<?= button(
|
||||
lang('Episode.edit'),
|
||||
route_to('episode-edit', $podcast->id, $episode->id),
|
||||
['variant' => 'info', 'iconLeft' => 'edit'],
|
||||
) ?>
|
||||
<?= button(
|
||||
lang('Episode.go_to_page'),
|
||||
route_to('episode', $podcast->handle, $episode->slug),
|
||||
['variant' => 'secondary', 'iconLeft' => 'external-link'],
|
||||
) ?>
|
||||
<?= button(
|
||||
lang('Episode.delete'),
|
||||
route_to('episode-delete', $podcast->id, $episode->id),
|
||||
['variant' => 'danger', 'iconLeft' => 'delete-bin'],
|
||||
) ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="w-full max-w-sm prose">
|
||||
<?= location_link($episode->location, 'text-sm') ?>
|
||||
<?= $episode->description_html ?>
|
||||
</section>
|
||||
<div class="mb-12">
|
||||
<?= audio_player($episode->audio_file_url, $episode->audio_file_mimetype) ?>
|
||||
</div>
|
||||
|
||||
<div class="mb-12">
|
||||
<?= button(
|
||||
lang('Episode.embeddable_player.add'),
|
||||
route_to('embeddable-player-add', $podcast->id, $episode->id),
|
||||
['variant' => 'info', 'iconLeft' => 'movie'],
|
||||
['class' => 'mb-4'],
|
||||
) ?>
|
||||
<?= button(
|
||||
lang('Episode.soundbites_form.title'),
|
||||
route_to('soundbites-edit', $podcast->id, $episode->id),
|
||||
['variant' => 'info', 'iconLeft' => 'edit'],
|
||||
['class' => 'mb-4'],
|
||||
) ?>
|
||||
<?= button(
|
||||
lang('Person.episode_form.title'),
|
||||
route_to('episode-person-manage', $podcast->id, $episode->id),
|
||||
['variant' => 'info', 'iconLeft' => 'folder-user'],
|
||||
['class' => 'mb-4'],
|
||||
) ?>
|
||||
<?php if (count($episode->soundbites) > 0): ?>
|
||||
<?= data_table(
|
||||
[
|
||||
[
|
||||
'header' => 'Play',
|
||||
'cell' => function ($soundbite): string {
|
||||
return icon_button(
|
||||
'play',
|
||||
lang('Episode.soundbites_form.play'),
|
||||
'',
|
||||
['variant' => 'primary'],
|
||||
[
|
||||
'class' => 'mb-1 mr-1',
|
||||
'data-type' => 'play-soundbite',
|
||||
'data-soundbite-start-time' =>
|
||||
$soundbite->start_time,
|
||||
'data-soundbite-duration' => $soundbite->duration,
|
||||
],
|
||||
);
|
||||
},
|
||||
],
|
||||
[
|
||||
'header' => lang('Episode.soundbites_form.start_time'),
|
||||
'cell' => function ($soundbite): string {
|
||||
return format_duration($soundbite->start_time);
|
||||
},
|
||||
],
|
||||
[
|
||||
'header' => lang('Episode.soundbites_form.duration'),
|
||||
'cell' => function ($soundbite): string {
|
||||
return $soundbite->duration . 's';
|
||||
},
|
||||
],
|
||||
[
|
||||
'header' => lang('Episode.soundbites_form.label'),
|
||||
'cell' => function ($soundbite) {
|
||||
return $soundbite->label;
|
||||
},
|
||||
],
|
||||
],
|
||||
$episode->soundbites,
|
||||
) ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.episode_by_day') ?></h2>
|
||||
<div class="chart-xy" id="by-day-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.XY title="<?= lang('Charts.episode_by_day') ?>" dataUrl="<?= route_to(
|
||||
'analytics-filtered-data',
|
||||
$podcast->id,
|
||||
'PodcastByEpisode',
|
||||
'ByDay',
|
||||
$episode->id,
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.episode_by_month') ?></h2>
|
||||
<div class="chart-xy" id="by-month-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
) ?>"/>
|
||||
|
||||
<Charts.XY title="<?= lang('Charts.episode_by_month') ?>" dataUrl="<?= route_to(
|
||||
'analytics-filtered-data',
|
||||
$podcast->id,
|
||||
'PodcastByEpisode',
|
||||
'ByMonth',
|
||||
$episode->id,
|
||||
) ?>"></div>
|
||||
</div>
|
||||
) ?>"/>
|
||||
</div>
|
||||
|
||||
|
||||
<?= service('vite')->asset('js/charts.ts', 'js') ?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
$podcastNavigation = [
|
||||
'dashboard' => [
|
||||
'icon' => 'dashboard',
|
||||
'items' => ['podcast-view', 'podcast-edit', 'podcast-person-manage'],
|
||||
'items' => ['podcast-view', 'podcast-edit', 'podcast-persons-manage'],
|
||||
],
|
||||
'episodes' => [
|
||||
'icon' => 'mic',
|
||||
|
|
|
@ -9,34 +9,28 @@
|
|||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.podcast_by_day') ?></h2>
|
||||
<div class="chart-xy" id="by-day-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'ByDay',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.podcast_by_month') ?></h2>
|
||||
<div class="chart-xy" id="by-month-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'ByMonth',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.XY class="col-span-1" title="<?= lang('Charts.podcast_by_day') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'ByDay',
|
||||
) ?>"/>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.podcast_by_bandwidth') ?></h2>
|
||||
<div class="chart-xy" id="by-bandwidth-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'BandwidthByDay',
|
||||
) ?>"></div>
|
||||
<Charts.XY class="col-span-1" title="<?= lang('Charts.podcast_by_month') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'ByMonth',
|
||||
) ?>"/>
|
||||
|
||||
<Charts.XY class="col-span-1" title="<?= lang('Charts.podcast_by_bandwidth') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'BandwidthByDay',
|
||||
) ?>"/>
|
||||
</div>
|
||||
|
||||
<?= service('vite')->asset('js/charts.ts', 'js') ?>
|
||||
|
|
|
@ -10,24 +10,20 @@
|
|||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.daily_listening_time') ?></h2>
|
||||
<div class="chart-xy" id="by-day-listening-time-graph" data-chart-type="xy-duration-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'TotalListeningTimeByDay',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.XY class="col-span-1" title="<?= lang('Charts.daily_listening_time') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'TotalListeningTimeByDay',
|
||||
) ?>"/>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.monthly_listening_time') ?></h2>
|
||||
<div class="chart-xy" id="by-month-listening-time-graph" data-chart-type="xy-duration-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'TotalListeningTimeByMonth',
|
||||
) ?>"></div>
|
||||
<Charts.XY class="col-span-1" title="<?= lang('Charts.monthly_listening_time') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'TotalListeningTimeByMonth',
|
||||
) ?>"/>
|
||||
</div>
|
||||
|
||||
<?= service('vite')->asset('js/charts.ts', 'js') ?>
|
||||
|
|
|
@ -10,35 +10,24 @@
|
|||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
<div class="lg:divide-x lg:grid lg:grid-cols-2">
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_country_weekly') ?></h2>
|
||||
<div class="chart-pie" id="by-country-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByCountry',
|
||||
'Weekly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_country_yearly') ?></h2>
|
||||
<div class="chart-pie" id="by-country-by-year-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByCountry',
|
||||
'Yearly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.podcast_by_region') ?></h2>
|
||||
<div class="chart-map" id="by-region-map" data-chart-type="map-chart" data-chart-url="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'PodcastByRegion',
|
||||
) ?>"></div>
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.Pie title="<?= lang('Charts.by_country_weekly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByCountry',
|
||||
'Weekly',
|
||||
) ?>" />
|
||||
<Charts.Pie title="<?= lang('Charts.by_country_yearly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByCountry',
|
||||
'Yearly',
|
||||
) ?>" />
|
||||
<Charts.Map class="col-span-2" title="<?= lang('Charts.podcast_by_region') ?>" dataUrl="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'PodcastByRegion',
|
||||
) ?>" />
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -10,56 +10,37 @@
|
|||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
<div class="lg:divide-x lg:grid lg:grid-cols-2">
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_player_weekly') ?></h2>
|
||||
<div class="chart-pie" id="by-app-weekly-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByPlayer',
|
||||
'ByAppWeekly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_service_weekly') ?></h2>
|
||||
<div class="chart-pie" id="by-service-weekly-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByService',
|
||||
'ByServiceWeekly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_device_weekly') ?></h2>
|
||||
<div class="chart-pie" id="by-device-weekly-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByPlayer',
|
||||
'ByDeviceWeekly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_os_weekly') ?></h2>
|
||||
<div class="chart-pie" id="by-os-yearly-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByPlayer',
|
||||
'ByOsWeekly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.podcast_bots') ?></h2>
|
||||
<div class="chart-xy" id="bots-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.Pie title="<?= lang('Charts.by_player_weekly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByPlayer',
|
||||
'ByAppWeekly',
|
||||
) ?>" />
|
||||
<Charts.Pie title="<?= lang('Charts.by_service_weekly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByService',
|
||||
'ByServiceWeekly',
|
||||
) ?>" />
|
||||
<Charts.Pie title="<?= lang('Charts.by_device_weekly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByPlayer',
|
||||
'ByDeviceWeekly',
|
||||
) ?>" />
|
||||
<Charts.Pie title="<?= lang('Charts.by_os_weekly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByPlayer',
|
||||
'ByOsWeekly',
|
||||
) ?>" />
|
||||
<Charts.XY class="col-span-2" title="<?= lang('Charts.podcast_bots') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'PodcastByPlayer',
|
||||
'Bots',
|
||||
) ?>"></div>
|
||||
) ?>" />
|
||||
</div>
|
||||
|
||||
<?= service('vite')->asset('js/charts.ts', 'js') ?>
|
||||
|
|
|
@ -10,26 +10,18 @@
|
|||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
<div class="lg:divide-x lg:grid lg:grid-cols-2">
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_weekday') ?></h2>
|
||||
<div class="chart-xy" id="by-weekday-barchart" data-chart-type="bar-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'ByWeekday',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_hour') ?></h2>
|
||||
<div class="chart-xy" id="by-hour-barchart" data-chart-type="bar-chart" data-chart-url="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'PodcastByHour',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.Bar title="<?= lang('Charts.by_weekday') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'ByWeekday',
|
||||
) ?>" />
|
||||
<Charts.Bar title="<?= lang('Charts.by_hour') ?>" dataUrl="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'PodcastByHour',
|
||||
) ?>" />
|
||||
</div>
|
||||
|
||||
<?= service('vite')->asset('js/charts.ts', 'js') ?>
|
||||
|
|
|
@ -10,24 +10,20 @@
|
|||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.unique_daily_listeners') ?></h2>
|
||||
<div class="chart-xy" id="by-day-listeners-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'UniqueListenersByDay',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.XY class="col-span-1" title="<?= lang('Charts.unique_daily_listeners') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'UniqueListenersByDay',
|
||||
) ?>"/>
|
||||
|
||||
<div class="mb-12 text-center">
|
||||
<h2><?= lang('Charts.unique_monthly_listeners') ?></h2>
|
||||
<div class="chart-xy" id="by-month-listeners-graph" data-chart-type="xy-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'UniqueListenersByMonth',
|
||||
) ?>"></div>
|
||||
<Charts.XY class="col-span-1" title="<?= lang('Charts.unique_monthly_listeners') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'Podcast',
|
||||
'UniqueListenersByMonth',
|
||||
) ?>"/>
|
||||
</div>
|
||||
|
||||
<?= service('vite')->asset('js/charts.ts', 'js') ?>
|
||||
|
|
|
@ -10,49 +10,29 @@
|
|||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
<div class="lg:divide-x lg:grid lg:grid-cols-2">
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_domain_weekly') ?></h2>
|
||||
<div class="chart-pie" id="by-domain-weekly-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'WebsiteByReferer',
|
||||
'ByDomainWeekly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_domain_yearly') ?></h2>
|
||||
<div class="chart-pie" id="by-domain-yearly-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'WebsiteByReferer',
|
||||
'ByDomainYearly',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_entry_page') ?></h2>
|
||||
<div class="chart-pie" id="by-entry-page-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'WebsiteByEntryPage',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-12 mr-6 text-center">
|
||||
<h2><?= lang('Charts.by_browser') ?></h2>
|
||||
<div class="chart-pie" id="by-browser-pie" data-chart-type="pie-chart" data-chart-url="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'WebsiteByBrowser',
|
||||
) ?>"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
||||
<Charts.Pie title="<?= lang('Charts.by_domain_weekly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'WebsiteByReferer',
|
||||
'ByDomainWeekly',
|
||||
) ?>" />
|
||||
<Charts.Pie title="<?= lang('Charts.by_domain_yearly') ?>" dataUrl="<?= route_to(
|
||||
'analytics-data',
|
||||
$podcast->id,
|
||||
'WebsiteByReferer',
|
||||
'ByDomainYearly',
|
||||
) ?>" />
|
||||
<Charts.Pie title="<?= lang('Charts.by_entry_page') ?>" dataUrl="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'WebsiteByEntryPage',
|
||||
) ?>" />
|
||||
<Charts.Pie title="<?= lang('Charts.by_browser') ?>" dataUrl="<?= route_to(
|
||||
'analytics-full-data',
|
||||
$podcast->id,
|
||||
'WebsiteByBrowser',
|
||||
) ?>" />
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<section class="flex flex-col">
|
||||
<header class="flex justify-between py-2">
|
||||
<h1 class="text-xl"><?= lang('Podcast.latest_episodes') ?></h1>
|
||||
<h2 class="text-xl"><?= lang('Podcast.latest_episodes') ?></h1>
|
||||
<a href="<?= route_to(
|
||||
'episode-list',
|
||||
$podcast->id,
|
||||
|
@ -14,14 +14,13 @@
|
|||
<?php foreach ($episodes as $episode): ?>
|
||||
<article class="snap-center flex flex-col flex-shrink-0 flex-1 w-full min-w-[12rem] max-w-[17rem] overflow-hidden bg-white border-2 border-pine-100 rounded-xl">
|
||||
<div class="relative">
|
||||
<div class=""></div>
|
||||
<?= publication_pill(
|
||||
$episode->published_at,
|
||||
$episode->publication_status,
|
||||
'absolute top-2 right-2 text-sm'
|
||||
); ?>
|
||||
<img
|
||||
src="<?= $episode->image->thumbnail_url ?>"
|
||||
src="<?= $episode->image->medium_url ?>"
|
||||
alt="<?= $episode->title ?>" class="object-cover w-full" />
|
||||
</div>
|
||||
<div class="flex items-start justify-between p-2">
|
||||
|
@ -72,7 +71,7 @@
|
|||
'Episode.embeddable_player.add',
|
||||
) ?></a>
|
||||
<a class="px-4 py-1 hover:bg-gray-100" href="<?= route_to(
|
||||
'episode-person-manage',
|
||||
'episode-persons-manage',
|
||||
$podcast->id,
|
||||
$episode->id,
|
||||
) ?>"><?= lang('Person.persons') ?></a>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
</head>
|
||||
|
||||
<body class="flex flex-col min-h-screen mx-auto bg-pine-50">
|
||||
<header class="py-8 text-white border-b bg-pine-900">
|
||||
<header class="py-8 text-white border-b bg-pine-800">
|
||||
<div class="container flex items-center justify-between px-2 py-4 mx-auto">
|
||||
<a href="<?= route_to(
|
||||
'home',
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
</head>
|
||||
|
||||
<body class="flex flex-col min-h-screen mx-auto">
|
||||
<header class="py-8 text-white border-b bg-pine-900">
|
||||
<header class="py-8 text-white border-b bg-pine-800">
|
||||
<div class="container flex flex-col px-2 py-4 mx-auto">
|
||||
<a href="<?= route_to('home') ?>"
|
||||
class="inline-flex items-center mb-2"><?= icon(
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<?= $this->include('podcast/_partials/header') ?>
|
||||
|
||||
<main class="flex-shrink-0 w-full min-w-0 sm:w-auto sm:flex-1 sm:flex-shrink">
|
||||
<nav class="sticky top-0 left-0 z-50 flex items-center w-full h-12 px-2 py-1 sm:hidden bg-pine-900">
|
||||
<nav class="sticky top-0 left-0 z-50 flex items-center w-full h-12 px-2 py-1 sm:hidden bg-pine-800">
|
||||
<button
|
||||
data-toggle="main-header"
|
||||
data-toggle-class="sticky -translate-x-full"
|
||||
|
@ -64,7 +64,7 @@
|
|||
data-toggle="main-sidebar"
|
||||
data-toggle-class="translate-x-full"
|
||||
data-toggle-body-class="-ml-64"
|
||||
class="fixed z-40 hidden p-4 text-xl rounded-full shadow-2xl sm:block lg:hidden bottom-4 left-4 bg-pine-900 focus:outline-none focus:ring-2 focus:ring-pine-600 text-pine-200 hover:text-pine-50"><?= icon(
|
||||
class="fixed z-40 hidden p-4 text-xl rounded-full shadow-2xl sm:block lg:hidden bottom-4 left-4 bg-pine-800 focus:outline-none focus:ring-2 focus:ring-pine-600 text-pine-200 hover:text-pine-50"><?= icon(
|
||||
'menu',
|
||||
) ?><span class="sr-only"><?= lang(
|
||||
'Podcast.toggle_podcast_sidebar',
|
||||
|
@ -73,7 +73,7 @@
|
|||
<!-- Funding links modal -->
|
||||
<div id="funding-links" class="fixed top-0 left-0 z-50 flex items-center justify-center hidden w-screen h-screen">
|
||||
<div
|
||||
class="absolute w-full h-full bg-pine-900 bg-opacity-90"
|
||||
class="absolute w-full h-full bg-pine-800 bg-opacity-90"
|
||||
role="button"
|
||||
data-toggle="funding-links"
|
||||
data-toggle-class="hidden"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
</head>
|
||||
|
||||
<body class="flex w-full min-h-screen pt-12 pb-20 overflow-x-hidden bg-pine-50 lg:mx-auto lg:container sm:pb-0">
|
||||
<div class="fixed top-0 left-0 z-50 flex items-center justify-between w-full h-12 px-4 text-white shadow bg-pine-900">
|
||||
<div class="fixed top-0 left-0 z-50 flex items-center justify-between w-full h-12 px-4 text-white shadow bg-pine-800">
|
||||
<?= anchor(
|
||||
route_to('admin'),
|
||||
'castopod' . svg('castopod-logo', 'h-5 ml-1'),
|
||||
|
@ -55,7 +55,7 @@
|
|||
</span>
|
||||
<?= icon(
|
||||
'check',
|
||||
'ml-4 bg-pine-900 text-white rounded-full',
|
||||
'ml-4 bg-pine-800 text-white rounded-full',
|
||||
) ?>
|
||||
<?php endif; ?>
|
||||
</button>
|
||||
|
@ -67,7 +67,7 @@
|
|||
<?= $this->include('podcast/_partials/header') ?>
|
||||
|
||||
<main class="flex-shrink-0 w-full min-w-0 sm:w-auto sm:flex-1 sm:flex-shrink">
|
||||
<nav class="sticky top-0 left-0 z-50 flex items-center w-full h-12 px-2 py-1 sm:hidden bg-pine-900">
|
||||
<nav class="sticky top-0 left-0 z-50 flex items-center w-full h-12 px-2 py-1 sm:hidden bg-pine-800">
|
||||
<button
|
||||
data-toggle="main-header"
|
||||
data-toggle-class="sticky -translate-x-full"
|
||||
|
@ -105,7 +105,7 @@
|
|||
|
||||
<?= $this->include('podcast/_partials/sidebar') ?>
|
||||
|
||||
<button data-toggle="main-sidebar" data-toggle-class="translate-x-full" data-toggle-body-class="-ml-64" class="fixed z-40 hidden p-4 text-xl rounded-full shadow-2xl sm:block lg:hidden bottom-4 left-4 bg-pine-900 focus:outline-none focus:ring-2 focus:ring-pine-600 text-pine-200 hover:text-pine-50"><?= icon(
|
||||
<button data-toggle="main-sidebar" data-toggle-class="translate-x-full" data-toggle-body-class="-ml-64" class="fixed z-40 hidden p-4 text-xl rounded-full shadow-2xl sm:block lg:hidden bottom-4 left-4 bg-pine-800 focus:outline-none focus:ring-2 focus:ring-pine-600 text-pine-200 hover:text-pine-50"><?= icon(
|
||||
'menu',
|
||||
) ?><span class="sr-only"><?= lang(
|
||||
'Podcast.toggle_podcast_sidebar',
|
||||
|
@ -113,7 +113,7 @@
|
|||
|
||||
<!-- Funding links modal -->
|
||||
<div id="funding-links" class="fixed top-0 left-0 z-50 flex items-center justify-center hidden w-screen h-screen">
|
||||
<div class="absolute w-full h-full bg-pine-900 bg-opacity-90" role="button" data-toggle="funding-links" data-toggle-class="hidden" aria-label="<?= lang(
|
||||
<div class="absolute w-full h-full bg-pine-800 bg-opacity-90" role="button" data-toggle="funding-links" data-toggle-class="hidden" aria-label="<?= lang(
|
||||
'Common.close',
|
||||
) ?>"></div>
|
||||
<div class="z-10 w-full max-w-xl bg-white rounded-lg shadow-2xl">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<header id="main-header" class="fixed top-0 left-0 flex-col flex-shrink-0 h-screen transform -translate-x-full sm:left-auto sm:-translate-x-0 sm:sticky w-80 sm:w-64 lg:w-80 xl:w-112 sm:flex">
|
||||
<img src="<?= $podcast->actor
|
||||
->cover_image_url ?>" alt="" class="object-cover w-full h-48 bg-pine-900"/>
|
||||
->cover_image_url ?>" alt="" class="object-cover w-full h-48 bg-pine-800"/>
|
||||
<div class="flex items-center justify-between px-4 py-2 mb-4 lg:px-6 -mt-14 lg:-mt-16 xl:-mt-20">
|
||||
<img src="<?= $podcast->image
|
||||
->thumbnail_url ?>" alt="<?= $podcast->title ?>" class="h-24 rounded-full shadow-xl xl:h-36 lg:h-28 ring-4 ring-pine-50" />
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<a href="<?= route_to(
|
||||
'podcast-activity',
|
||||
$podcast->handle,
|
||||
) ?>" class="px-4 py-1 mr-8 font-semibold border-b-4 text-pine-800 border-pine-800"><?= lang(
|
||||
) ?>" class="px-4 py-1 mr-8 font-semibold border-b-4 text-pine-800 border-pine-500"><?= lang(
|
||||
'Podcast.activity',
|
||||
) ?></a>
|
||||
<a href="<?= route_to(
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<a href="<?= route_to(
|
||||
'podcast-activity',
|
||||
$podcast->handle,
|
||||
) ?>" class="px-4 py-1 mr-8 font-semibold border-b-4 text-pine-800 border-pine-800"><?= lang(
|
||||
) ?>" class="px-4 py-1 mr-8 font-semibold border-b-4 text-pine-800 border-pine-500"><?= lang(
|
||||
'Podcast.activity',
|
||||
) ?></a>
|
||||
<a href="<?= route_to(
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<a href="<?= route_to(
|
||||
'podcast-episodes',
|
||||
$podcast->handle,
|
||||
) ?>" class="px-4 py-1 font-semibold border-b-4 text-pine-800 border-pine-800"><?= lang(
|
||||
) ?>" class="px-4 py-1 font-semibold border-b-4 text-pine-800 border-pine-500"><?= lang(
|
||||
'Podcast.episodes',
|
||||
) ?></a>
|
||||
<?php if ($activeQuery): ?>
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<a href="<?= route_to(
|
||||
'podcast-episodes',
|
||||
$podcast->handle,
|
||||
) ?>" class="px-4 py-1 font-semibold border-b-4 text-pine-800 border-pine-800"><?= lang(
|
||||
) ?>" class="px-4 py-1 font-semibold border-b-4 text-pine-800 border-pine-500"><?= lang(
|
||||
'Podcast.episodes',
|
||||
) ?></a>
|
||||
<?php if ($activeQuery) : ?>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<body class="flex flex-col min-h-screen bg-pine-50">
|
||||
<header class="flex flex-col items-center mb-8">
|
||||
<h1 class="w-full pt-8 pb-32 text-center text-white bg-pine-900"><?= lang(
|
||||
<h1 class="w-full pt-8 pb-32 text-center text-white bg-pine-800"><?= lang(
|
||||
'Fediverse.follow.subtitle',
|
||||
) ?></h1>
|
||||
<div class="flex flex-col w-full max-w-xs -mt-24 overflow-hidden bg-white shadow rounded-xl">
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
</head>
|
||||
|
||||
<body class="min-h-screen mx-auto bg-pine-50">
|
||||
<header class="pt-8 pb-32 bg-pine-900">
|
||||
<header class="pt-8 pb-32 bg-pine-800">
|
||||
<h1 class="text-lg font-semibold text-center text-white"><?= lang(
|
||||
'Fediverse.' . $action . '.subtitle',
|
||||
) ?></h1>
|
||||
|
|
Loading…
Reference in New Issue