be252e49e2
Migrate legacy ajax/JS to external services and AMD, enable TLS verification, scope admin CSS with RTLCSS-safe rules, and fix README/lang/boilerplate gaps. Co-authored-by: Cursor <cursoragent@cursor.com>
580 lines
47 KiB
PHP
580 lines
47 KiB
PHP
<?php
|
||
// This file is part of Moodle - http://moodle.org/
|
||
//
|
||
// Moodle is free software: you can redistribute it and/or modify
|
||
// it under the terms of the GNU General Public License as published by
|
||
// the Free Software Foundation, either version 3 of the License, or
|
||
// (at your option) any later version.
|
||
//
|
||
// Moodle is distributed in the hope that it will be useful,
|
||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
// GNU General Public License for more details.
|
||
//
|
||
// You should have received a copy of the GNU General Public License
|
||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||
|
||
/**
|
||
* English language strings for mod_meetletacbfree.
|
||
*
|
||
* @package mod_meetletacbfree
|
||
* @copyright 2026 MeetLet <info@meetlet.net>
|
||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||
*/
|
||
|
||
defined('MOODLE_INTERNAL') || die();
|
||
|
||
$string['pluginname'] = 'Adobe Connect Bridge (Marketplace edition)';
|
||
$string['modulename'] = 'Adobe Connect';
|
||
$string['modulenameplural'] = 'Adobe Connect';
|
||
$string['modulename_help'] = 'Create or link Adobe Connect meetings with SSO join, role mapping, recordings and shared content.';
|
||
$string['pluginadministration'] = 'Adobe Connect Bridge (Marketplace edition) administration';
|
||
$string['settingsintro'] = 'Connect Moodle to Adobe Connect for meeting creation, SSO join, role mapping, recordings and shared content.';
|
||
$string['marketplace_commercial_note'] = 'Attendance reports, offline MP4 video, Windows Agent integration and premium support are available in the commercial MeetLet Adobe Connect Bridge.';
|
||
$string['about_visit_website'] = 'Visit the MeetLet website';
|
||
$string['marketplace_commercial_visit'] = 'meetlet.net';
|
||
$string['meetletacbfree:addinstance'] = 'Add a new MeetLet meeting';
|
||
$string['meetletacbfree:view'] = 'View MeetLet meeting';
|
||
$string['meetletacbfree:join'] = 'Join MeetLet meeting';
|
||
$string['meetletacbfree:host'] = 'Act as Adobe Connect host';
|
||
$string['meetletacbfree:presenter'] = 'Act as Adobe Connect presenter';
|
||
$string['meetletacbfree:viewrecordings'] = 'View recordings';
|
||
$string['meetletacbfree:grade'] = 'Grade MeetLet activity';
|
||
|
||
$string['meetingname'] = 'Meeting name';
|
||
$string['meetingintro'] = 'Meeting summary';
|
||
$string['roomsettings'] = 'Room settings';
|
||
$string['meeturl'] = 'Custom meeting URL';
|
||
$string['meeturl_help'] = 'Optional custom path for the Adobe Connect room (letters, numbers and dashes only). Leave empty to let Connect assign one.';
|
||
$string['meetingtype'] = 'Access type';
|
||
$string['public'] = 'Public';
|
||
$string['private'] = 'Private';
|
||
$string['meettemplates'] = 'Meeting template';
|
||
$string['defaulttemplate'] = 'Default template';
|
||
$string['starttime'] = 'Start time';
|
||
$string['endtime'] = 'End time';
|
||
$string['endtimeenable'] = 'Set an end time';
|
||
$string['greaterstarttime'] = 'End time must be after start time';
|
||
$string['invalidurl'] = 'Invalid meeting URL. Use letters, numbers and dashes only, starting with a letter.';
|
||
|
||
$string['rolemapping'] = 'Role mapping';
|
||
$string['rolemapping_desc'] = 'Define a default rule for all participants, then map specific Moodle roles or users to Host or Presenter. Site defaults come from the Access settings tab and can be overridden here for this activity.';
|
||
$string['rolemapping_mode'] = 'Mapping source';
|
||
$string['rolemapping_mode_help'] = 'Follow site uses the global Moodle→Connect mapping (activity creator is host). Custom lets you define role/user rules only for this activity.';
|
||
$string['rolemapping_mode_inherit'] = 'Follow site mapping';
|
||
$string['rolemapping_mode_inherit_desc'] = 'Use the plugin-wide mapping, plus the activity owner host convenience rule.';
|
||
$string['rolemapping_mode_override'] = 'Custom for this activity';
|
||
$string['rolemapping_mode_override_short'] = 'Custom';
|
||
$string['rolemapping_mode_override_desc'] = 'Manually define role/user mapping rules only for this activity.';
|
||
$string['siterolemapping'] = 'Moodle role → Adobe Connect role mapping';
|
||
$string['siterolemapping_desc'] = 'Choose which Adobe Connect room role (Host / Presenter / Participant) each Moodle role gets when joining or acting in Connect. This is the default for new activities; each activity form can override it.';
|
||
$string['siterolemapping_defaultinfo'] = 'Built-in default: manager, course creator & editing teacher = Host, teacher = Presenter, everyone else = Participant';
|
||
$string['reset_rolemapping'] = 'Reset to default';
|
||
$string['reset_rolemapping_confirm_title'] = 'Reset role mapping?';
|
||
$string['reset_rolemapping_confirm'] = 'Restore the built-in Moodle → Adobe Connect role mapping? Your custom mapping will be replaced.';
|
||
$string['reset_featureaccess'] = 'Reset to default';
|
||
$string['reset_featureaccess_confirm_title'] = 'Reset feature access?';
|
||
$string['reset_featureaccess_confirm'] = 'Restore the built-in role feature access matrix? Your custom permissions will be replaced.';
|
||
$string['accessreset_confirm_reset'] = 'Reset to default';
|
||
$string['accessreset_modal_cancel'] = 'Cancel';
|
||
$string['accessreset_modal_close'] = 'Close';
|
||
$string['accessreset_modal_ok'] = 'OK';
|
||
$string['accessreset_busy'] = 'Restoring defaults…';
|
||
$string['reset_success_rolemapping'] = 'Role mapping restored to built-in defaults.';
|
||
$string['reset_success_featureaccess'] = 'Feature access matrix restored to built-in defaults.';
|
||
$string['reset_error'] = 'Could not restore defaults. Please try again.';
|
||
$string['adoberole'] = 'Adobe Connect role';
|
||
$string['participant_list'] = 'Participant role list';
|
||
$string['participant_type_all'] = 'All participants';
|
||
$string['participant_type_role'] = 'Role';
|
||
$string['participant_type_user'] = 'User';
|
||
$string['participant_add'] = 'Add';
|
||
$string['participant_remove'] = 'Remove';
|
||
$string['participant_as'] = 'as';
|
||
$string['role_host'] = 'Host';
|
||
$string['role_presenter'] = 'Presenter';
|
||
$string['role_participant'] = 'Participant';
|
||
|
||
$string['allow_manual_offline'] = 'Show offline session video download button';
|
||
$string['allow_manual_offline_desc'] = 'Show a per-recording button to request offline session video creation.';
|
||
$string['server_group_api'] = 'API connection';
|
||
$string['server_group_api_desc'] = 'XML API URL and meeting host.';
|
||
$string['server_group_admin'] = 'Server admin account';
|
||
$string['server_group_admin_desc'] = 'Adobe Connect administrator used for API calls.';
|
||
$string['featureaccess'] = 'Role feature access';
|
||
$string['featureaccess_desc'] = 'Choose which meeting features each Moodle role may use.';
|
||
$string['featureaccess_activity'] = 'Role feature access for this activity';
|
||
$string['featureaccess_override'] = 'Override site-wide access for this activity';
|
||
$string['featureaccess_override_help'] = 'When enabled, the matrix below applies only to this activity. Otherwise the plugin site defaults are used.';
|
||
$string['featureaccess_usesite'] = 'Built-in plugin defaults';
|
||
$string['activity_featureaccess'] = 'Show access matrix on activity form';
|
||
$string['activity_featureaccess_desc'] = 'If disabled, the per-activity role access section is hidden when adding/editing an activity and only the site-wide matrix applies.';
|
||
$string['accessrole'] = 'Moodle role';
|
||
$string['accessfeature_join'] = 'Join meeting';
|
||
$string['accessfeature_recordings'] = 'View and play recordings';
|
||
$string['accessfeature_content'] = 'View and play content';
|
||
$string['accessfeature_editrecording'] = 'Edit recording name';
|
||
$string['accessfeature_adobeeditor'] = 'Edit recording in Adobe Connect';
|
||
$string['accessfeature_enterbeforehost'] = 'Bypass schedule / wait for host';
|
||
$string['accessmatrix_all'] = 'All';
|
||
$string['accessmatrix_toggle_row'] = 'Toggle all features for this role';
|
||
$string['accessmatrix_toggle_col'] = 'Toggle this feature for all roles';
|
||
$string['adobeeditor'] = 'Edit in Adobe Connect';
|
||
$string['defaultssettings'] = 'Meeting defaults';
|
||
$string['tab_meetingsettings'] = 'Meeting settings';
|
||
$string['tab_accesssettings'] = 'Access settings';
|
||
$string['roomdefaults'] = 'Room defaults';
|
||
$string['roomdefaults_desc'] = 'These values are used as form defaults for new “new meeting” and “server meetings” activities site-wide; each activity can still override them.';
|
||
$string['default_meetinglang'] = 'Default meeting language';
|
||
$string['default_meetinglang_desc'] = 'Default Adobe Connect room UI language for new activities across the site.';
|
||
$string['default_waitforhost'] = 'Block entry before host (site default)';
|
||
$string['default_waitforhost_desc'] = 'When enabled, new activities block non-host join until a host is present in the room (unless a role may enter early via the access matrix).';
|
||
|
||
$string['settingsheader'] = 'Adobe Connect connection';
|
||
$string['settingsversion'] = 'v{$a}';
|
||
$string['settings_connection'] = 'Server settings';
|
||
$string['settings_connection_desc'] = 'Adobe Connect server connection and admin account.';
|
||
$string['host'] = 'API host';
|
||
$string['host_desc'] = 'Full XML API endpoint, e.g. https://connect.example.edu/api/xml';
|
||
$string['meethost'] = 'Meeting domain';
|
||
$string['meethost_desc'] = 'Domain users open for meetings, e.g. connect.example.edu';
|
||
$string['port'] = 'Port';
|
||
$string['port_desc'] = 'Usually 443 for HTTPS';
|
||
$string['admin_login'] = 'Server admin email';
|
||
$string['admin_login_desc'] = 'Adobe Connect account email used for API calls';
|
||
$string['admin_password'] = 'Server admin password';
|
||
$string['admin_password_desc'] = 'Password for the server API admin account';
|
||
$string['admin_httpauth'] = 'HTTP authentication header';
|
||
$string['admin_httpauth_desc'] = 'Must match HTTP_AUTH_HEADER in Adobe Connect custom.ini (default: Generate-Safe-Random-Token)';
|
||
$string['email_login'] = 'Match legacy Connect accounts by email or username';
|
||
$string['email_login_desc'] = 'SSO normally signs users into Adobe Connect as mlu{userid}. Enable this when Connect accounts were originally created with each person\'s email address or Moodle username instead. The plugin will find those legacy accounts during join and link them to the current mlu{userid} login.';
|
||
$string['https'] = 'HTTPS connection';
|
||
$string['https_desc'] = 'Use HTTPS for API and meeting URLs';
|
||
$string['about_heading'] = 'About the plugin developer';
|
||
$string['about_title'] = 'MeetLet';
|
||
$string['about_body'] = 'MeetLet provides online classroom services and Adobe Connect infrastructure.';
|
||
$string['about_body_p1'] = 'MeetLet specialises in Adobe Connect-based online classroom infrastructure. From reliable hosting and performance tuning to operational support for universities, training centres and organisations that treat session quality as non-negotiable, we stay beside the teams that run live classes every day. We focus on the real classroom experience: fast join, stable audio and video, and tools that both instructors and learners actually need.';
|
||
$string['about_body_p2'] = 'This Marketplace edition connects Moodle to Adobe Connect for meeting creation, role mapping, SSO join, recordings and shared content.';
|
||
$string['about_body_p3'] = 'The MeetLet engineering team builds with a clear understanding of educational environments and the need for transparent UX, so the product stays dependable for site admins and simple for teachers. The MeetLet brand stands for responsiveness, infrastructure quality and hands-on support during real deployments, with a practical view of day-to-day online teaching needs.';
|
||
$string['about_body_p4'] = 'For hosting, deployment consulting and specialist support, visit the official website. This plugin is part of the MeetLet ecosystem for e-learning integration and is designed, maintained and updated with that same standard.';
|
||
$string['runtest'] = 'Run connection test';
|
||
$string['testrunning'] = 'Running test steps…';
|
||
$string['testwaiting'] = 'Waiting';
|
||
$string['testrunningstep'] = 'Testing';
|
||
$string['testskipped'] = 'Skipped';
|
||
$string['testprogress'] = 'Step {$a->current} of {$a->total} ({$a->percent}%)';
|
||
$string['conntesttitle'] = 'Adobe Connect connection test';
|
||
$string['conntestintro'] = 'These checks verify that Moodle can talk to your Adobe Connect server. Click the button below to show every step and follow live progress.';
|
||
$string['testok'] = 'Passed';
|
||
$string['testfail'] = 'Failed';
|
||
$string['testsession'] = 'Session key';
|
||
$string['testlogin'] = 'Admin login';
|
||
$string['testfolders'] = 'Shared / recordings / meetings folders';
|
||
$string['testcleanup'] = 'Remove test meeting and user';
|
||
$string['testuser'] = 'Create, assign and remove test user';
|
||
$string['testsso'] = 'Single sign-on (SSO)';
|
||
$string['testsso_adminok'] = 'Admin SSO succeeded';
|
||
$string['testsso_userok'] = 'Test-user SSO succeeded';
|
||
$string['testsso_userwarn'] = 'Test-user SSO warned (admin SSO infrastructure is healthy)';
|
||
$string['testsso_direct_ok'] = 'Admin SSO from Moodle server succeeded';
|
||
$string['testsso_direct_fail'] = 'Direct HTTP SSO from Moodle failed — {$a}';
|
||
$string['testmeeting'] = 'Create and remove test meeting';
|
||
|
||
$string['tabinfo'] = 'Overview';
|
||
$string['tabdetails'] = 'Session details';
|
||
$string['emptydetails'] = 'No description has been added for this session.';
|
||
$string['sessiondatetime'] = 'Session start';
|
||
$string['sessionend'] = 'Session end';
|
||
$string['sessiondetails'] = 'Actions';
|
||
$string['tabrecordings'] = 'Recordings';
|
||
$string['tabcontent'] = 'Content';
|
||
$string['joinmeeting'] = 'Join meeting';
|
||
$string['joining'] = 'Preparing a secure meeting session…';
|
||
$string['joiningtitle'] = 'Preparing meeting';
|
||
$string['preparingrecording'] = 'Preparing a secure recording session…';
|
||
$string['preparingrecordingtitle'] = 'Preparing recording';
|
||
$string['meetingdetails'] = 'Meeting details';
|
||
$string['meetingurl'] = 'Meeting URL';
|
||
$string['statusopen'] = 'Ready to join';
|
||
$string['statuslive'] = 'In progress';
|
||
$string['statusscheduled'] = 'Scheduled';
|
||
$string['statusended'] = 'Ended';
|
||
$string['statuswaitinghost'] = 'Waiting for host';
|
||
$string['statuschecking'] = 'Checking…';
|
||
$string['statushelp'] = 'Status is refreshed from the server every 15 seconds. If people are in the Adobe room it shows In progress, even after the scheduled end time.';
|
||
$string['statuschecking_help'] = 'Fetching room status from Adobe Connect. Join stays disabled until the result is known.';
|
||
$string['statuscountdown_help'] = 'Countdown until the next server status check. At zero, meeting status (for example Ended or Waiting for host) is refreshed.';
|
||
$string['meetingended'] = 'This meeting has ended. You cannot join.';
|
||
$string['meetingnotstarted'] = 'This meeting has not started yet.';
|
||
$string['joindeniedtitle'] = 'Join not allowed';
|
||
$string['joinblocked_waitinghost'] = 'You cannot join until the host/moderator starts the session (Waiting for moderator to start session).';
|
||
$string['noscormapping'] = 'No Adobe meeting is linked to this activity yet.';
|
||
$string['nomeeting'] = 'No meeting exists on the Adobe Connect server';
|
||
$string['notparticipant'] = 'You are not allowed to join this meeting';
|
||
$string['usergrouprequired'] = 'You must be a member of a group to join this meeting';
|
||
$string['norecordings'] = 'No recordings yet';
|
||
$string['nocontent'] = 'No uploaded content in this meeting';
|
||
$string['recordingname'] = 'Recording';
|
||
$string['play'] = 'Play';
|
||
$string['downloadcontent'] = 'Download';
|
||
$string['downloadcontentfailed'] = 'Content download failed. Please try again.';
|
||
$string['downloadcontenttimeout'] = 'Content download timed out. Please try again.';
|
||
$string['errorbadcontenttoken'] = 'This content download link is invalid or was issued for a different user.';
|
||
$string['duration'] = 'Duration';
|
||
$string['refresh'] = 'Refresh';
|
||
$string['refreshtab'] = 'Refresh';
|
||
$string['jobpollwait'] = 'Checking video status… next refresh in 1 minute';
|
||
$string['loading'] = 'Loading…';
|
||
$string['error'] = 'Something went wrong';
|
||
$string['erroremptyxml'] = 'Unable to reach Adobe Connect API';
|
||
$string['errorlogin'] = 'Adobe Connect admin login failed';
|
||
$string['errorhttpauth'] = 'Single sign-on to Adobe Connect failed.';
|
||
$string['errorhttpauth_hint_ip'] = 'Moodle egress IP that Adobe must trust: {$a}';
|
||
$string['error_user_unavailable'] = 'This meeting cannot be opened right now. Give this code to your site administrator: {$a}';
|
||
$string['error_helpcode_label'] = 'Help code';
|
||
$string['error_adobe_response'] = 'Adobe Connect response';
|
||
$string['error_see_serverguide'] = 'This code is explained on the plugin settings “Server setup guide” tab.';
|
||
$string['errorfact_login'] = 'Connect login';
|
||
$string['errorfact_adobe_code'] = 'Adobe code';
|
||
$string['errorfact_adobe_subcode'] = 'Adobe subcode';
|
||
$string['errorfact_egress_ip'] = 'Moodle egress IP';
|
||
$string['helpcode_sso_01_title'] = 'HTTP header single sign-on failed';
|
||
$string['helpcode_sso_01_fix'] = '<ol><li>Confirm <code>HTTP_AUTH_HEADER</code> in <code>custom.ini</code> matches the plugin setting.</li><li>Add this Moodle server’s public IP to <code>HTTP_AUTH_TRUSTED_HOSTS</code> (keep <code>127.0.0.1</code>).</li><li>Enable <code>HeaderAuthenticationFilter</code> in <code>web.xml</code> and do not ignore <code>/api/</code>.</li><li>Restart the <code>ConnectPro</code> service after changing trusted hosts.</li></ol>';
|
||
$string['helpcode_api_01_title'] = 'Adobe Connect API could not be reached';
|
||
$string['helpcode_api_01_fix'] = 'Check the plugin API URL, port, HTTPS, and firewall from the Moodle server to Adobe Connect.';
|
||
$string['helpcode_api_02_title'] = 'Adobe Connect administrator login failed';
|
||
$string['helpcode_api_02_fix'] = 'Check the plugin “Server admin account” email and password. The account must be able to call the XML API.';
|
||
$string['helpcode_usr_01_title'] = 'The Adobe Connect user could not be created or found';
|
||
$string['helpcode_usr_01_fix'] = 'Check the Moodle user’s email and that the Connect admin account can create users.';
|
||
$string['helpcode_mtg_01_title'] = 'The Adobe Connect meeting was not found';
|
||
$string['helpcode_mtg_01_fix'] = 'Open the activity settings and confirm the meeting still exists on the Connect server.';
|
||
$string['helpcode_cfg_01_title'] = 'The plugin is not configured yet';
|
||
$string['helpcode_cfg_01_fix'] = 'Complete Adobe Connect settings in Site administration and run the Connection test tab.';
|
||
$string['helpcode_err_01_title'] = 'Unexpected MeetLet error';
|
||
$string['helpcode_err_01_fix'] = 'Retry once. If it continues, check Moodle logs and the Connection test tab.';
|
||
$string['serverguide_errorcodes_title'] = 'Help codes reported by users';
|
||
$string['serverguide_errorcodes_intro'] = 'Students only see a short “cannot open” message plus one of these codes. Match the code here to see what to fix.';
|
||
$string['serverguide_errorcodes_col_code'] = 'Code';
|
||
$string['serverguide_errorcodes_col_meaning'] = 'Meaning';
|
||
$string['serverguide_errorcodes_col_fix'] = 'What to check';
|
||
$string['errorcreatemeeting'] = 'Could not create the Adobe Connect meeting';
|
||
$string['errorcreateuser'] = 'Could not create or locate your Adobe Connect user. Check the Moodle user email and that the server admin API account can create users.';
|
||
$string['errorexistingsco'] = 'The selected server meeting was not found. Choose a valid meeting from the list.';
|
||
$string['errorrenamerecording'] = 'Could not rename the recording';
|
||
$string['recordingrenamed'] = 'Recording renamed';
|
||
$string['editrecording'] = 'Edit recording name';
|
||
$string['recordingdate'] = 'Recording date';
|
||
$string['linkmode'] = 'Meeting connection mode';
|
||
$string['linkmode_help'] = 'Attach an existing Adobe Connect meeting from the server, or create a new one.';
|
||
$string['linkmode_create'] = 'Create a new meeting on the server';
|
||
$string['linkmode_existing'] = 'Existing meeting on server';
|
||
$string['existingscoid'] = 'Existing server meeting';
|
||
$string['chooseservermeeting'] = 'Select a meeting…';
|
||
$string['searchservermeetings'] = 'Search server meetings…';
|
||
$string['loadingmeetings'] = 'Loading meetings…';
|
||
$string['nomeetingsfound'] = 'No meetings found';
|
||
$string['meetinglang'] = 'Meeting language';
|
||
$string['meetinglang_help'] = 'Default Adobe Connect room UI language when the server supports it.';
|
||
$string['meetinglang_default'] = 'Server default';
|
||
$string['waitforhost'] = 'Block entry before host';
|
||
$string['waitforhost_help'] = 'Until a host is present in the room, others cannot join. Roles granted “Bypass schedule / wait for host” in the access matrix may bypass wait-for-host and also join when the meeting is scheduled or marked ended.';
|
||
$string['settingstate_inherit'] = 'Follow site';
|
||
$string['settingstate_inherit_on'] = 'Site: On';
|
||
$string['settingstate_inherit_off'] = 'Site: Off';
|
||
$string['settingstate_enable'] = 'On';
|
||
$string['settingstate_disable'] = 'Off';
|
||
$string['waitingforhost'] = 'The meeting has not been opened by a host yet. Please wait.';
|
||
$string['contenttype'] = 'Type';
|
||
$string['contentsize'] = 'Size';
|
||
$string['contentdate'] = 'Modified';
|
||
$string['contenticon_image'] = 'Image';
|
||
$string['contenticon_jpg'] = 'Image';
|
||
$string['contenticon_jpeg'] = 'Image';
|
||
$string['contenticon_png'] = 'Image';
|
||
$string['contenticon_gif'] = 'Image';
|
||
$string['contenticon_presentation'] = 'Presentation';
|
||
$string['contenticon_producer'] = 'Presentation';
|
||
$string['contenticon_ppt'] = 'Presentation';
|
||
$string['contenticon_pptx'] = 'Presentation';
|
||
$string['contenticon_pdf'] = 'PDF';
|
||
$string['contenticon_mp3'] = 'Audio';
|
||
$string['contenticon_mp4'] = 'Video';
|
||
$string['contenticon_flv'] = 'Video';
|
||
$string['contenticon_swf'] = 'Flash';
|
||
$string['contenticon_html'] = 'HTML';
|
||
$string['contenticon_zip'] = 'ZIP';
|
||
$string['contenticon_attachment'] = 'Attachment';
|
||
$string['contenticon_file'] = 'File';
|
||
$string['contenticon_content'] = 'Content';
|
||
$string['errornofolder'] = 'Could not find the Adobe Connect meetings folder';
|
||
$string['notconfigured'] = 'MeetLet is not configured yet. Ask an administrator to complete Adobe Connect settings.';
|
||
$string['privacy:metadata'] = 'MeetLet stores meeting mappings and recording metadata locally, and exchanges user profile fields with Adobe Connect to enable SSO.';
|
||
$string['privacy:metadata:meetletacbfree'] = 'MeetLet activity instances stored in Moodle.';
|
||
$string['privacy:metadata:meetletacbfree:userid'] = 'The user who created the activity instance.';
|
||
$string['privacy:metadata:meetletacbfree:name'] = 'The activity name.';
|
||
$string['privacy:metadata:meetletacbfree:intro'] = 'The activity description.';
|
||
$string['privacy:metadata:meetletacbfree:participants'] = 'Role mapping rules, which may include specific Moodle user ids.';
|
||
$string['privacy:metadata:meetletacbfree:timecreated'] = 'When the activity was created.';
|
||
$string['privacy:metadata:meetletacbfree:timemodified'] = 'When the activity was last modified.';
|
||
$string['privacy:metadata:meetletacbfree_meetings'] = 'Adobe Connect meeting SCO mapping per Moodle group.';
|
||
$string['privacy:metadata:meetletacbfree_meetings:groupid'] = 'Moodle group linked to the Adobe Connect meeting.';
|
||
$string['privacy:metadata:meetletacbfree_meetings:meetingscoid'] = 'Adobe Connect meeting SCO id.';
|
||
$string['privacy:metadata:meetletacbfree_meetings:urlpath'] = 'Adobe Connect meeting URL path.';
|
||
$string['privacy:metadata:meetletacbfree_recordings'] = 'Cached recording and offline video metadata.';
|
||
$string['privacy:metadata:meetletacbfree_recordings:name'] = 'Recording title cached from Adobe Connect.';
|
||
$string['privacy:metadata:meetletacbfree_recordings:urlpath'] = 'Recording URL path.';
|
||
$string['privacy:metadata:meetletacbfree_recordings:jobstatus'] = 'Offline video job status.';
|
||
$string['privacy:metadata:adobeconnect'] = 'User name, email and login are sent to Adobe Connect for account provisioning and meeting access.';
|
||
$string['privacy:metadata:adobeconnect:firstname'] = 'User first name sent to Adobe Connect.';
|
||
$string['privacy:metadata:adobeconnect:lastname'] = 'User last name sent to Adobe Connect.';
|
||
$string['privacy:metadata:adobeconnect:email'] = 'User email sent to Adobe Connect.';
|
||
$string['privacy:metadata:adobeconnect:username'] = 'User login / username sent to Adobe Connect.';
|
||
$string['privacy:export:adobeconnect'] = 'Profile fields are also sent to Adobe Connect for SSO. MeetLet cannot delete accounts on the Adobe Connect server from Moodle.';
|
||
$string['search:activity'] = 'MeetLet activities';
|
||
$string['calendar'] = 'MeetLet meeting';
|
||
$string['view'] = 'View meeting';
|
||
$string['emptytab'] = 'Nothing to show';
|
||
$string['cachedef_folders'] = 'Adobe Connect folder sco-ids';
|
||
$string['cachedef_meetinginfo'] = 'Adobe Connect meeting info';
|
||
$string['cachedef_templates'] = 'Adobe Connect meeting templates';
|
||
$string['cachedef_license_webhook_nonces'] = 'MeetLet license webhook nonce cache';
|
||
$string['tasksync'] = 'Sync MeetLet recordings';
|
||
$string['brand'] = 'MeetLet';
|
||
$string['subtitle'] = 'Adobe Connect';
|
||
$string['featuresheading'] = 'Feature visibility';
|
||
$string['featuresheading_desc'] = 'Each section has two controls: site-wide visibility, and whether teachers may override it per activity.';
|
||
$string['featuregroup_recordingstab'] = 'Recordings tab';
|
||
$string['featuregroup_recordingstab_desc'] = 'Show or hide the recordings tab on the activity page.';
|
||
$string['featuregroup_contenttab'] = 'Content tab';
|
||
$string['featuregroup_contenttab_desc'] = 'Show or hide the meeting content tab.';
|
||
$string['enable_recordingstab'] = 'Show recordings tab';
|
||
$string['enable_recordingstab_desc'] = 'Master switch for the recordings tab. Roles still need “View and play recordings” in the access matrix.';
|
||
$string['allow_override_recordingstab'] = 'Allow per-activity recordings tab setting';
|
||
$string['allow_override_recordingstab_desc'] = 'Teachers may enable/disable the recordings tab for each activity.';
|
||
$string['enable_contenttab'] = 'Show content tab';
|
||
$string['enable_contenttab_desc'] = 'Master switch for the content tab. Roles still need “View and play content” in the access matrix.';
|
||
$string['allow_override_contenttab'] = 'Allow per-activity content tab setting';
|
||
$string['allow_override_contenttab_desc'] = 'Teachers may enable/disable the content tab for each activity.';
|
||
$string['showrecordingstab'] = 'Show recordings tab';
|
||
$string['offlinesettings'] = 'Offline session video';
|
||
$string['autooffline'] = 'Automatically create offline video after the Adobe Connect class ends';
|
||
$string['autooffline_help'] = 'When this class’s Adobe Connect room had people in it and then becomes empty, recordings are sent for MP4 creation. This is independent of the optional Moodle end time (which only blocks joining).';
|
||
$string['showzip_help'] = 'When ZIP links are enabled in site settings, use this to turn the ZIP link on or off for this activity only.';
|
||
$string['showcontenttab'] = 'Show content tab';
|
||
$string['activityfeatures'] = 'Links and tabs visibility';
|
||
$string['featuredisabled'] = 'This section has been disabled by the site administrator.';
|
||
$string['tab_connectiontest'] = 'Connection test';
|
||
$string['tab_aboutdev'] = 'About the plugin developer';
|
||
$string['tab_serverguide'] = 'Server setup guide';
|
||
|
||
$string['serverguide_heading'] = 'Required Adobe Connect server settings';
|
||
$string['serverguide_intro'] = 'Only the files and lines needed for this plugin (SSO and HTTPS) on the Connect host. Restart the <code>ConnectPro</code> service after each change.';
|
||
$string['serverguide_match_title'] = 'Fields that must match the server';
|
||
$string['serverguide_match_intro'] = 'Set these on the <strong>Server settings</strong> tab. The examples below are placeholders — use your own Connect host and secrets.';
|
||
$string['serverguide_placeholder_httpauth'] = 'your-secret-header-value';
|
||
$string['serverguide_placeholder_apiurl'] = 'https://connect.example.edu/api/xml';
|
||
$string['serverguide_placeholder_meethost'] = 'connect.example.edu';
|
||
|
||
$string['serverguide_customini_title'] = 'custom.ini';
|
||
$string['serverguide_customini_body'] = '<p>Path: <code>C:\\Connect\\11.2.0\\custom.ini</code> (the version folder name may stay the same after a CPS patch).</p><ul><li><code>HTTP_AUTH_HEADER</code> = same as the plugin “HTTP authentication header”</li><li><code>HTTP_AUTH_TRUSTED_HOSTS</code> = <code>127.0.0.1</code> plus Moodle egress IP(s)</li><li><code>ADMIN_HOST</code> = meeting domain · for HTTPS: <code>ADMIN_PROTOCOL=https://</code> and <code>SSL_ONLY=yes</code></li></ul>';
|
||
$string['serverguide_customini_sample'] = 'ADMIN_HOST=connect.example.edu
|
||
ADMIN_PROTOCOL=https://
|
||
SSL_ONLY=yes
|
||
HTTP_AUTH_HEADER=your-secret-header-value
|
||
HTTP_AUTH_TRUSTED_HOSTS=127.0.0.1,::1,203.0.113.10';
|
||
|
||
$string['serverguide_webxml_title'] = 'web.xml — HeaderAuthenticationFilter';
|
||
$string['serverguide_webxml_body'] = '<p>Path: <code>C:\\Connect\\11.2.0\\appserv\\web\\WEB-INF\\web.xml</code></p><ul><li>Uncomment the <code>HeaderAuthenticationFilter</code> <code><filter></code> and <code><filter-mapping></code> blocks.</li><li>Do not list <code>/api/</code> in this filter’s <code>ignore-pattern</code> values. The plugin sends the user’s SSO login request to Adobe’s XML API URL; if <code>/api/</code> is ignored, SSO fails.</li><li>Keep the <code>NtlmAuthenticationFilter</code> block commented. That filter is for Windows / Active Directory (domain) login and is not required for this plugin. Uncomment it only if your organisation intentionally uses NTLM on Connect; otherwise leave it alone and keep HeaderAuthenticationFilter enabled.</li></ul>';
|
||
$string['serverguide_webxml_sample'] = '<!-- Keep HeaderAuthenticationFilter enabled for Moodle SSO.
|
||
Do NOT add /api/ to ignore-pattern values. -->
|
||
<filter>
|
||
<filter-name>HeaderAuthenticationFilter</filter-name>
|
||
<filter-class>com.macromedia.airspeed.servlet.filter.HeaderAuthenticationFilter</filter-class>
|
||
<init-param>
|
||
<param-name>ignore-pattern-0</param-name>
|
||
<param-value>/common/</param-value>
|
||
</init-param>
|
||
<init-param>
|
||
<param-name>ignore-pattern-1</param-name>
|
||
<param-value>/servlet/gateway/</param-value>
|
||
</init-param>
|
||
<init-param>
|
||
<param-name>ignore-pattern-2</param-name>
|
||
<param-value>/servlet/mirror</param-value>
|
||
</init-param>
|
||
<init-param>
|
||
<param-name>ignore-pattern-3</param-name>
|
||
<param-value>/servlet/testbuilder</param-value>
|
||
</init-param>
|
||
<init-param>
|
||
<param-name>ignore-pattern-4</param-name>
|
||
<param-value>/main</param-value>
|
||
</init-param>
|
||
</filter>
|
||
<filter-mapping>
|
||
<filter-name>HeaderAuthenticationFilter</filter-name>
|
||
<url-pattern>/*</url-pattern>
|
||
</filter-mapping>
|
||
|
||
<!-- Leave NtlmAuthenticationFilter commented (Windows/AD login).
|
||
Example of what must stay commented unless you use NTLM on purpose:
|
||
<filter>
|
||
<filter-name>NtlmAuthenticationFilter</filter-name>
|
||
...
|
||
</filter>
|
||
-->';
|
||
|
||
$string['serverguide_serverxml_title'] = 'server.xml — SSL / HTTPS connectors';
|
||
$string['serverguide_serverxml_body'] = '<p>Path: <code>C:\\Connect\\11.2.0\\appserv\\conf\\server.xml</code></p><p>In the stock install file, <strong>two blocks</strong> marked <code>Uncomment for SSL support</code> are commented — uncomment both:</p><ol><li><code><Executor name="httpsThreadPool" ...></code></li><li><code><Connector port="8443" ...></code> (often with <code>SSLEnabled="false"</code> when stunnel terminates TLS on 443)</li></ol><p>On the port <code>80</code> Connector keep <code>redirectPort="443"</code>.</p>';
|
||
$string['serverguide_serverxml_sample'] = '<!-- 1) Uncomment for SSL support -->
|
||
<Executor name="httpsThreadPool"
|
||
namePrefix="https-8443-"
|
||
maxThreads="350"
|
||
minSpareThreads="25"/>
|
||
|
||
<!-- On the port 80 Connector, keep: -->
|
||
redirectPort="443"
|
||
|
||
<!-- 2) Uncomment for SSL support -->
|
||
<Connector port="8443" protocol="HTTP/1.1"
|
||
compression="on"
|
||
executor="httpsThreadPool"
|
||
enableLookups="false"
|
||
acceptCount="250"
|
||
connectionTimeout="20000"
|
||
SSLEnabled="false"
|
||
scheme="https"
|
||
secure="true"
|
||
proxyPort="443"
|
||
URIEncoding="utf-8"
|
||
relaxedQueryChars="{}|<>""/>';
|
||
|
||
$string['serverguide_upgrade_title'] = 'Note after a Connect upgrade / patch: ';
|
||
$string['serverguide_upgrade_body'] = '<ul><li>The file <code>appserv\\web\\WEB-INF\\web.xml</code> usually breaks after an upgrade; the updater often re-comments the <code>HeaderAuthenticationFilter</code> block. Uncomment that block again and remove <code>/api/</code> from the <code>ignore-pattern</code> list.</li><li>Open <code>custom.ini</code> and confirm that <code>HTTP_AUTH_HEADER</code> and <code>HTTP_AUTH_TRUSTED_HOSTS</code> are still set correctly.</li><li>Open <code>appserv\\conf\\server.xml</code> and confirm that both the <code>httpsThreadPool</code> block and the port <code>8443</code> Connector are still uncommented.</li><li>After you apply the fixes, restart the Windows <code>ConnectPro</code> service and run the Connection test tab in Moodle again.</li></ul>';
|
||
|
||
$string['tab_registration'] = 'Plugin activation';
|
||
$string['registration_required'] = 'This plugin requires free plugin activation before meetings, SSO join, recordings and other features can be used. A site administrator can activate under Site administration → Plugins → Activity modules → Adobe Connect → Plugin activation.';
|
||
$string['registration_heading'] = 'Plugin activation';
|
||
$string['registration_heading_desc'] = 'Activate this plugin with MeetLet to unlock meetings, SSO join, recordings sync and all Marketplace features. Activation is voluntary and happens only when you click the button below — nothing is sent automatically on install.';
|
||
$string['registration_gate_title'] = 'Plugin activation required';
|
||
$string['registration_gate_body'] = 'Meetings, SSO, recordings and other Adobe Connect features are locked until an administrator completes free plugin activation.';
|
||
$string['registration_gate_link'] = 'Open Plugin activation tab';
|
||
$string['registration_hero_notice'] = 'Core features are locked until you complete free plugin activation.';
|
||
$string['registration_why_title'] = 'Why activation is requested';
|
||
$string['registration_why'] = 'MeetLet asks for one-time plugin activation so we can deliver security updates, provide support when you need help, and understand free-edition usage. This edition does not use a paid license key.';
|
||
$string['registration_data_title'] = 'What is sent';
|
||
$string['registration_data_sent'] = 'When you activate, only the following technical and contact metadata is sent to MeetLet:';
|
||
$string['registration_data_item_domain'] = 'Site domain: {$a}';
|
||
$string['registration_data_item_moodle'] = 'Moodle version: {$a}';
|
||
$string['registration_data_item_plugin'] = 'Plugin version: {$a}';
|
||
$string['registration_data_item_installation'] = 'Installation ID: {$a}';
|
||
$string['registration_data_item_sitename'] = 'Site name: {$a}';
|
||
$string['registration_data_item_email'] = 'Administrator email (if available): {$a}';
|
||
$string['registration_data_optional'] = 'not sent';
|
||
$string['registration_privacy'] = 'For full details, see the {$a}.';
|
||
$string['registration_privacy_tablink'] = 'Privacy tab';
|
||
$string['tab_privacy'] = 'Privacy';
|
||
$string['privacy_tab_heading'] = 'Privacy policy — Marketplace edition';
|
||
$string['privacy_tab_intro'] = 'This policy describes how the MeetLet Adobe Connect Bridge plugin (Marketplace / free edition) handles personal and technical data when installed in Moodle. It applies to site administrators who configure the plugin and to end users who join Adobe Connect meetings through Moodle activities.';
|
||
$string['privacy_tab_effective'] = 'Effective date: September 2026. MeetLet may update this in-plugin policy when the plugin changes; the version installed on your site is the authoritative copy.';
|
||
$string['privacy_tab_scope_title'] = '1. Scope';
|
||
$string['privacy_tab_scope_body'] = '<p>This policy covers data processed by the <strong>mod_meetletacbfree</strong> activity module and its site-wide administration settings. It does not replace your organisation\'s own privacy notices to learners, your Adobe Connect server operator\'s terms, or Moodle core privacy documentation.</p><p>MeetLet develops and maintains this plugin. For questions about this policy, contact <a href="mailto:info@meetlet.net">info@meetlet.net</a>.</p>';
|
||
$string['privacy_tab_registration_title'] = '2. Optional plugin activation';
|
||
$string['privacy_tab_registration_body'] = '<p>Plugin activation is <strong>voluntary</strong>. No data is sent to MeetLet until a site administrator explicitly clicks <em>Activate plugin</em> on the Plugin activation tab. Until then, the plugin does not contact the MeetLet activation service.</p><p>When an administrator activates the plugin, the following metadata may be transmitted to the MeetLet activation service:</p><ul><li>Public site URL / domain</li><li>A unique installation identifier generated by the plugin</li><li>Moodle platform name and release version</li><li>Plugin component name and release version</li><li>Site or organisation name (from Moodle site settings), if available</li><li>Site administrator or support contact email, if available in Moodle</li></ul><p>No learner personal data, course content, meeting recordings, or Adobe Connect credentials are included in activation requests.</p>';
|
||
$string['privacy_tab_purpose_title'] = '3. Purpose of activation data';
|
||
$string['privacy_tab_purpose_body'] = '<p>MeetLet uses activation metadata solely to:</p><ul><li>Identify your installation for support and troubleshooting when you contact us</li><li>Deliver security and compatibility updates relevant to your Moodle and plugin versions</li><li>Maintain aggregate, non-identifying statistics about free Marketplace edition adoption</li></ul><p>MeetLet does not use activation information to send promotional emails or make marketing contact without your request. Activating does not oblige you to purchase paid products.</p>';
|
||
$string['privacy_tab_service_title'] = '4. MeetLet activation service';
|
||
$string['privacy_tab_service_body'] = '<p>Activation data is sent over HTTPS to the <strong>MeetLet activation service</strong> endpoint configured on the Plugin activation tab (production default: MeetLet\'s hosted activation API). The service stores installation records linked to your installation ID and domain.</p><p>While activated, the plugin may send periodic heartbeat requests containing the same categories of metadata to confirm activation status. You can review the exact API URL in plugin settings; only administrators with site configuration rights can change it.</p>';
|
||
$string['privacy_tab_adobe_title'] = '5. Adobe Connect single sign-on (SSO)';
|
||
$string['privacy_tab_adobe_body'] = '<p>When users open or join a meeting, the plugin exchanges selected Moodle profile fields with the <strong>Adobe Connect server you configure</strong> (your own host or a host operated by your provider). This typically includes first name, last name, email address, and Moodle username/login so Adobe Connect can provision accounts and grant meeting access.</p><p>That transmission is directed to your Adobe Connect instance, not to MeetLet\'s activation service. MeetLet does not store Adobe Connect user accounts on MeetLet servers as part of this plugin.</p>';
|
||
$string['privacy_tab_local_title'] = '6. Data stored locally in Moodle';
|
||
$string['privacy_tab_local_body'] = '<p>The plugin stores the following in your Moodle database:</p><ul><li>Activity settings, meeting mappings, cached recording metadata, and optional per-activity participant rules</li><li>Activation status, installation ID, and cryptographic keys used for activation (when activated)</li></ul>';
|
||
$string['privacy_tab_retention_title'] = '7. Data retention';
|
||
$string['privacy_tab_retention_body'] = '<p><strong>Local Moodle data</strong> is retained until deleted through normal Moodle course/activity administration or Privacy API deletion requests.</p><p><strong>Activation records</strong> on the MeetLet activation service are retained while your plugin remains activated and for a reasonable period afterward to prevent abuse and support re-activation. When you deactivate via <em>Deactivate plugin</em>, the plugin stops sending heartbeats; MeetLet may retain historical activation logs in anonymised or aggregated form for security and statistics.</p><p>Data on your Adobe Connect server is governed by that server\'s retention policies, not by MeetLet.</p>';
|
||
$string['privacy_tab_sharing_title'] = '8. Sharing and sale of data';
|
||
$string['privacy_tab_sharing_body'] = '<p>MeetLet does <strong>not sell</strong> activation metadata or plugin usage data to third parties. Data is shared only as necessary to operate the activation service (e.g. hosting infrastructure) or when required by applicable law.</p><p>Adobe Connect SSO data is shared only with the Adobe Connect endpoint configured by your administrator.</p>';
|
||
$string['privacy_tab_control_title'] = '9. Administrator choices';
|
||
$string['privacy_tab_control_body'] = '<p>Site administrators can:</p><ul><li>Decline plugin activation and still read this policy before deciding</li><li>Deactivate at any time from the Plugin activation tab, which stops further activation traffic</li><li>Configure which Adobe Connect server receives SSO data</li><li>Use Moodle\'s Privacy API tools to export or delete user data held by this plugin</li></ul>';
|
||
$string['privacy_tab_contact_title'] = '10. Contact';
|
||
$string['privacy_tab_contact_body'] = '<p>For privacy questions, data subject requests relating to MeetLet activation records, or support regarding this plugin, contact MeetLet at <a href="mailto:info@meetlet.net">info@meetlet.net</a>.</p><p>For requests about data held on your Adobe Connect server, contact your Adobe Connect administrator or hosting provider.</p>';
|
||
|
||
$string['registration_product_free'] = 'Product: free-adobe-connect-bridge (Marketplace edition)';
|
||
$string['registration_activate'] = 'Activate plugin';
|
||
$string['registration_activate_confirm_ok'] = 'Activate plugin';
|
||
$string['registration_activate_confirm_lead'] = 'You are about to activate this plugin with MeetLet for the free Marketplace edition.';
|
||
$string['registration_activate_confirm_data'] = 'Only the metadata listed on this tab will be sent. After activation, all plugin features unlock.';
|
||
$string['registration_deactivate_confirm_ok'] = 'Deactivate';
|
||
$string['registration_deactivate_confirm_lead'] = 'Deactivate this plugin with MeetLet?';
|
||
$string['registration_deactivate_confirm_warning'] = 'All plugin features will be locked again until you re-activate.';
|
||
$string['registration_api_url'] = 'Activation API URL';
|
||
$string['registration_api_url_desc'] = 'MeetLet activation service base URL (no trailing slash). Production default: https://license.webatsign.com';
|
||
$string['registration_status_label'] = 'Activation status:';
|
||
$string['registration_status_active'] = 'Activated';
|
||
$string['registration_status_inactive'] = 'Not activated';
|
||
$string['registration_status_network_error'] = 'Activation server unreachable';
|
||
$string['registration_status_invalid_key'] = 'Activation invalid';
|
||
$string['registration_status_expired'] = 'Activation expired';
|
||
$string['registration_status_suspended'] = 'Activation suspended';
|
||
$string['registration_status_revoked'] = 'Activation revoked';
|
||
$string['registration_status_domain_mismatch'] = 'Domain not allowed';
|
||
$string['registration_status_activation_limit'] = 'Activation limit reached';
|
||
$string['registration_status_misconfigured'] = 'Activation misconfigured';
|
||
$string['registration_status_unknown'] = 'Activation error';
|
||
$string['registration_product_label'] = 'Product: Adobe Connect Bridge — Marketplace (free activation)';
|
||
$string['registration_domain'] = 'Site domain: {$a}';
|
||
$string['registration_installation'] = 'Installation ID: {$a}';
|
||
$string['registration_last_validated'] = 'Last checked with MeetLet: {$a}';
|
||
$string['registration_last_validated_never'] = 'Never';
|
||
$string['registration_activate_help'] = 'Send site metadata to MeetLet and activate this installation on the free Marketplace product.';
|
||
$string['registration_activate_confirm_title'] = 'Activate this plugin?';
|
||
$string['registration_activate_confirm_item_domain'] = 'Public site domain and a unique installation ID';
|
||
$string['registration_activate_confirm_item_plugin'] = 'Plugin component (mod_meetletacbfree) and release version';
|
||
$string['registration_activate_confirm_item_contact'] = 'Site name and administrator contact email (for support statistics only)';
|
||
$string['registration_activate_confirm_optional'] = 'You can deactivate at any time. A daily scheduled task re-validates activation only while activated.';
|
||
$string['registration_recheck'] = 'Re-check activation';
|
||
$string['registration_recheck_help'] = 'Contact the MeetLet server to refresh activation status (does not re-activate).';
|
||
$string['registration_deactivate'] = 'Deactivate plugin';
|
||
$string['registration_deactivate_confirm'] = 'Remove this plugin activation from MeetLet? Plugin features will be locked again.';
|
||
$string['registration_deactivate_confirm_title'] = 'Deactivate plugin?';
|
||
$string['registration_modal_cancel'] = 'Cancel';
|
||
$string['registration_modal_confirm_activate'] = 'Activate plugin';
|
||
$string['registration_modal_confirm_deactivate'] = 'Deactivate';
|
||
$string['registration_modal_close'] = 'Close';
|
||
$string['registration_activated'] = 'Plugin activated successfully with MeetLet.';
|
||
$string['registration_rechecked'] = 'Activation status refreshed.';
|
||
$string['registration_deactivated'] = 'Plugin deactivated from MeetLet.';
|
||
$string['registration_already_active'] = 'This plugin is already activated.';
|
||
$string['registration_not_active'] = 'This plugin is not activated yet.';
|
||
$string['registration_request_id'] = 'request_id={$a}';
|
||
$string['registration_privacy_title'] = 'What is sent and why';
|
||
$string['registration_privacy_body'] = 'When you activate, MeetLet receives your site domain, installation ID, Moodle and plugin versions, and site contact details. Data is sent to {$a} for update notifications and aggregate support statistics only. No automatic contact occurs on install.';
|
||
$string['registration_err_invalid_key'] = 'Activation could not be validated.';
|
||
$string['registration_err_expired'] = 'Activation has expired.';
|
||
$string['registration_err_revoked'] = 'Activation was revoked.';
|
||
$string['registration_err_suspended'] = 'Activation is suspended.';
|
||
$string['registration_err_product_mismatch'] = 'Product configuration mismatch.';
|
||
$string['registration_err_domain'] = 'This site domain is not allowed for activation.';
|
||
$string['registration_err_activation_limit'] = 'Plugin activation limit reached.';
|
||
$string['registration_err_misconfigured'] = 'Activation request misconfigured.';
|
||
$string['registration_err_bad_signature'] = 'Invalid authorization signature from MeetLet.';
|
||
$string['registration_err_network'] = 'Could not reach the MeetLet activation server.';
|
||
$string['registration_err_unknown'] = 'An unknown activation error occurred.';
|
||
$string['registration_api_error'] = 'MeetLet activation API error: {$a}';
|
||
$string['registration_crypto_error'] = 'Activation cryptography error.';
|
||
$string['registration_sodium_required'] = 'PHP sodium extension is required for plugin activation.';
|
||
$string['task_registration_heartbeat'] = 'MeetLet plugin activation heartbeat';
|
||
$string['privacy:metadata:meetletacbfree_license'] = 'Optional MeetLet plugin activation identity stored locally when an administrator activates the plugin.';
|
||
$string['privacy:metadata:meetletacbfree_license:installation_id'] = 'Unique installation identifier generated by the plugin.';
|
||
$string['privacy:metadata:meetletacbfree_license:status'] = 'Last known activation status.';
|
||
$string['privacy:metadata:meetletacbfree_license:last_validated'] = 'When activation was last validated with MeetLet.';
|
||
$string['privacy:metadata:meetlet_registration'] = 'When an administrator opts in, site metadata is sent to the MeetLet activation service for update notices and support statistics.';
|
||
$string['privacy:metadata:meetlet_registration:domain'] = 'Public Moodle site domain.';
|
||
$string['privacy:metadata:meetlet_registration:installation_id'] = 'Unique installation identifier.';
|
||
$string['privacy:metadata:meetlet_registration:company'] = 'Site or organisation name.';
|
||
$string['privacy:metadata:meetlet_registration:email'] = 'Administrator or support contact email.';
|
||
$string['privacy:metadata:meetlet_registration:plugin'] = 'Moodle plugin component name.';
|
||
$string['privacy:metadata:meetlet_registration:plugin_release'] = 'Plugin release version.';
|
||
$string['privacy:metadata:meetlet_registration:platform'] = 'Platform name (moodle).';
|
||
$string['privacy:metadata:meetlet_registration:platform_version'] = 'Moodle release version.';
|
||
|