Implement receiver selector whitelist suggestion banner

This commit is contained in:
hensm
2022-04-16 12:02:19 +01:00
committed by Matt Hensman
parent 124a5eb92d
commit 1da709eb5e
14 changed files with 751 additions and 415 deletions

View File

@@ -1,370 +1,381 @@
{
"extensionName": {
"message": "fx_cast"
, "description": "Name of the extension and the native receiver selector window title."
}
, "extensionDescription": {
"message": "Enables Chromecast support for casting web apps (like Netflix or BBC iPlayer), HTML5 video and screen/tab sharing."
, "description": "Description of the extension shown in the add-ons manager."
}
"message": "fx_cast",
"description": "Name of the extension and the native receiver selector window title."
},
"extensionDescription": {
"message": "Enables Chromecast support for casting web apps (like Netflix or BBC iPlayer), HTML5 video and screen/tab sharing.",
"description": "Description of the extension shown in the add-ons manager."
},
"popupWhitelistNotWhitelisted": {
"message": "$appName$ is not whitelisted",
"description": "Receiver selector whitelist suggestion banner label.",
"placeholders": {
"appName": {
"content": "$1",
"example": "Netflix"
}
}
},
"popupWhitelistAddToWhitelist": {
"message": "Add to Whitelist",
"description": "Receiver selector whitelist suggestion banner button label."
},
"popupMediaTypeApp": {
"message": "this site's app",
"description": "Receiver selector media type <option> text for current site's sender application."
},
"popupMediaTypeAppNotFound": {
"message": "this site's app (not found)",
"description": "Receiver selector media type <option> text for current site's sender application if none found."
},
"popupMediaTypeAppMedia": {
"message": "this media",
"description": "Receiver selector media type <option> text for media casting."
},
"popupMediaTypeTab": {
"message": "Tab",
"description": "Receiver selector media type <option> text for current tab."
},
"popupMediaTypeScreen": {
"message": "Screen",
"description": "Receiver selector media type <option> text for screen."
},
"popupMediaTypeFile": {
"message": "Browse...",
"description": "Receiver selector media type <option> text for opening a file selector dialog."
},
, "popupMediaTypeApp": {
"message": "this site's app"
, "description": "Receiver selector media type <option> text for current site's sender application."
}
, "popupMediaTypeAppNotFound": {
"message": "this site's app (not found)"
, "description": "Receiver selector media type <option> text for current site's sender application if none found."
}
, "popupMediaTypeAppMedia": {
"message": "this media"
, "description": "Receiver selector media type <option> text for media casting."
}
, "popupMediaTypeTab": {
"message": "Tab"
, "description": "Receiver selector media type <option> text for current tab."
}
, "popupMediaTypeScreen": {
"message": "Screen"
, "description": "Receiver selector media type <option> text for screen."
}
, "popupMediaTypeFile": {
"message": "Browse..."
, "description": "Receiver selector media type <option> text for opening a file selector dialog."
}
, "popupMediaSelectCastLabel": {
"message": "Cast"
, "description": "(Cast) <select> to:"
}
, "popupMediaSelectToLabel": {
"message": "to:"
, "description": "Cast <select> (to:)"
}
, "popupNoReceiversFound": {
"message": "No receiver devices found"
, "description": "Message displayed in the receiver selector if there are no available receivers."
}
, "popupCastButtonTitle": {
"message": "Cast"
, "description": "Button text for each receiver entry in the receiver selector."
}
, "popupCastingButtonTitle": {
"message": "Casting$ellipsis$"
, "description": "Button text while establishing a session in the receiver selector. Ellipsis cycles (. → .. → ...) as loading indicator."
, "placeholders": {
"popupMediaSelectCastLabel": {
"message": "Cast",
"description": "(Cast) <select> to:"
},
"popupMediaSelectToLabel": {
"message": "to:",
"description": "Cast <select> (to:)"
},
"popupNoReceiversFound": {
"message": "No receiver devices found",
"description": "Message displayed in the receiver selector if there are no available receivers."
},
"popupCastButtonTitle": {
"message": "Cast",
"description": "Button text for each receiver entry in the receiver selector."
},
"popupCastingButtonTitle": {
"message": "Casting$ellipsis$",
"description": "Button text while establishing a session in the receiver selector. Ellipsis cycles (. → .. → ...) as loading indicator.",
"placeholders": {
"ellipsis": {
"content": "$1"
, "example": "..."
"content": "$1",
"example": "..."
}
}
}
, "popupStopButtonTitle": {
"message": "Stop"
, "description": "Alternate action button text displayed instead of popupCastButtonTitle."
}
},
"popupStopButtonTitle": {
"message": "Stop",
"description": "Alternate action button text displayed instead of popupCastButtonTitle."
},
"contextCast": {
"message": "Cast...",
"description": "Main context menu item title. Ellipsis indicates additional information required as it triggers opening of receiver selector."
},
, "contextCast": {
"message": "Cast..."
, "description": "Main context menu item title. Ellipsis indicates additional information required as it triggers opening of receiver selector."
}
, "contextAddToWhitelist": {
"message": "Add to Whitelist"
, "description": "Top-level whitelist context menu item title."
}
, "contextAddToWhitelistRecommended": {
"message": "Add $matchPattern$ (Recommended)"
, "description": "Context menu item title for recomended match pattern."
, "placeholders": {
"contextAddToWhitelist": {
"message": "Add to Whitelist",
"description": "Top-level whitelist context menu item title."
},
"contextAddToWhitelistRecommended": {
"message": "Add $matchPattern$ (Recommended)",
"description": "Context menu item title for recomended match pattern.",
"placeholders": {
"matchPattern": {
"content": "$1"
, "example": "https://example.com/*"
"content": "$1",
"example": "https://example.com/*"
}
}
}
, "contextAddToWhitelistAdvancedAdd": {
"message": "Add $matchPattern$"
, "description": "Context menu item title for all other match patterns."
, "placeholders": {
},
"contextAddToWhitelistAdvancedAdd": {
"message": "Add $matchPattern$",
"description": "Context menu item title for all other match patterns.",
"placeholders": {
"matchPattern": {
"content": "$1"
, "example": "*://*.example.com/*"
"content": "$1",
"example": "*://*.example.com/*"
}
}
}
},
"optionsBridgeLoading": {
"message": "Loading bridge info...",
"description": "Loading placeholder text for bridge section on options page."
},
"optionsBridgeFoundStatusTitle": {
"message": "Bridge found",
"description": "Bridge OK status title text."
},
"optionsBridgeIssueStatusTitle": {
"message": "Bridge issue",
"description": "Bridge error status title text."
},
"optionsBridgeNotFoundStatusTitle": {
"message": "Bridge not found",
"description": "Bridge missing status title text."
},
"optionsBridgeNotFoundStatusText": {
"message": "Try downloading and installing the latest version.",
"description": "Bridge not found additional description text"
},
, "optionsBridgeLoading": {
"message": "Loading bridge info..."
, "description": "Loading placeholder text for bridge section on options page."
}
, "optionsBridgeFoundStatusTitle": {
"message": "Bridge found"
, "description": "Bridge OK status title text."
}
, "optionsBridgeIssueStatusTitle": {
"message": "Bridge issue"
, "description": "Bridge error status title text."
}
, "optionsBridgeNotFoundStatusTitle": {
"message": "Bridge not found"
, "description": "Bridge missing status title text."
}
, "optionsBridgeNotFoundStatusText": {
"message": "Try downloading and installing the latest version."
, "description": "Bridge not found additional description text"
}
, "optionsBridgeStatsName": {
"message": "Name:"
, "description": "Bridge stats name row title."
}
, "optionsBridgeStatsVersion": {
"message": "Version:"
, "description": "Bridge stats version row title."
}
, "optionsBridgeStatsExpectedVersion": {
"message": "Expected version:"
, "description": "Bridge stats expected version row title."
}
, "optionsBridgeStatsCompatibility": {
"message": "Compatibility:"
, "description": "Bridge stats compatibility row title."
}
, "optionsBridgeStatsRecommendedAction": {
"message": "Recommended action:"
, "description": "Bridge stats recommended action row title."
}
, "optionsBridgeCompatible": {
"message": "Compatible"
, "description": "Compatibility status is definitely compatible."
}
, "optionsBridgeLikelyCompatible": {
"message": "Likely compatible"
, "description": "Compatibility status is probably compatible."
}
, "optionsBridgeIncompatible": {
"message": "Incompatible"
, "description": "Compatibility status is definitely incompatible."
}
, "optionsBridgeOlderAction": {
"message": "Bridge version older than expected, try updating bridge to the latest version."
, "description": "Recommended action for when the installed bridge version is older than the installed extension version."
}
, "optionsBridgeNewerAction": {
"message": "Bridge version newer than expected, try updating extension to the latest version."
, "description": "Recommended action for when the installed bridge version is newer than the installed extension version."
}
, "optionsBridgeNoAction": {
"message": "No action needed."
, "description": "Recommended action for when both bridge and extension versions are compatible or likely compatible."
}
, "optionsBridgeUpdateCheck": {
"message": "Check for Updates"
, "description": "Update check button title."
}
, "optionsBridgeUpdateChecking": {
"message": "Checking for Updates$ellipsis$"
, "description": "Update check button title while in progress. Ellipsis cycles (. → .. → ...) as loading indicator."
, "placeholders": {
"optionsBridgeStatsName": {
"message": "Name:",
"description": "Bridge stats name row title."
},
"optionsBridgeStatsVersion": {
"message": "Version:",
"description": "Bridge stats version row title."
},
"optionsBridgeStatsExpectedVersion": {
"message": "Expected version:",
"description": "Bridge stats expected version row title."
},
"optionsBridgeStatsCompatibility": {
"message": "Compatibility:",
"description": "Bridge stats compatibility row title."
},
"optionsBridgeStatsRecommendedAction": {
"message": "Recommended action:",
"description": "Bridge stats recommended action row title."
},
"optionsBridgeCompatible": {
"message": "Compatible",
"description": "Compatibility status is definitely compatible."
},
"optionsBridgeLikelyCompatible": {
"message": "Likely compatible",
"description": "Compatibility status is probably compatible."
},
"optionsBridgeIncompatible": {
"message": "Incompatible",
"description": "Compatibility status is definitely incompatible."
},
"optionsBridgeOlderAction": {
"message": "Bridge version older than expected, try updating bridge to the latest version.",
"description": "Recommended action for when the installed bridge version is older than the installed extension version."
},
"optionsBridgeNewerAction": {
"message": "Bridge version newer than expected, try updating extension to the latest version.",
"description": "Recommended action for when the installed bridge version is newer than the installed extension version."
},
"optionsBridgeNoAction": {
"message": "No action needed.",
"description": "Recommended action for when both bridge and extension versions are compatible or likely compatible."
},
"optionsBridgeUpdateCheck": {
"message": "Check for Updates",
"description": "Update check button title."
},
"optionsBridgeUpdateChecking": {
"message": "Checking for Updates$ellipsis$",
"description": "Update check button title while in progress. Ellipsis cycles (. → .. → ...) as loading indicator.",
"placeholders": {
"ellipsis": {
"content": "$1"
, "example": ".."
"content": "$1",
"example": ".."
}
}
}
, "optionsBridgeUpdateStatusNoUpdates": {
"message": "No updates available"
, "description": "Update status if no updates are found."
}
, "optionsBridgeUpdateStatusError": {
"message": "Error checking for updates"
, "description": "Update status if an error was encountered checking for updates."
}
, "optionsBridgeUpdateAvailable": {
"message": "An update is available:"
, "description": "Update status if an update was found."
}
, "optionsBridgeUpdate": {
"message": "Update Now..."
, "description": "Update now button title. Ellipsis indicates additional information as it triggers an update window popup."
}
},
"optionsBridgeUpdateStatusNoUpdates": {
"message": "No updates available",
"description": "Update status if no updates are found."
},
"optionsBridgeUpdateStatusError": {
"message": "Error checking for updates",
"description": "Update status if an error was encountered checking for updates."
},
"optionsBridgeUpdateAvailable": {
"message": "An update is available:",
"description": "Update status if an update was found."
},
"optionsBridgeUpdate": {
"message": "Update Now...",
"description": "Update now button title. Ellipsis indicates additional information as it triggers an update window popup."
},
, "optionsBridgeBackupEnabled": {
"message": "Enable backup daemon connection on $hostPort$"
, "description": "Backup daemon checkbox label. Host/port inputs are inserted inline at the hostPort substitution."
, "placeholders": {
"optionsBridgeBackupEnabled": {
"message": "Enable backup daemon connection on $hostPort$",
"description": "Backup daemon checkbox label. Host/port inputs are inserted inline at the hostPort substitution.",
"placeholders": {
"hostPort": {
"content": "$1"
}
}
}
, "optionsBridgeBackupEnabledDescription": {
"message": "If the regular bridge connection fails, attempt to connect to a bridge running in daemon mode."
, "description": "Backup daemon checkbox description."
}
},
"optionsBridgeBackupEnabledDescription": {
"message": "If the regular bridge connection fails, attempt to connect to a bridge running in daemon mode.",
"description": "Backup daemon checkbox description."
},
, "optionsMediaCategoryName": {
"message": "Media casting"
, "description": "Options page media casting category title."
}
, "optionsMediaCategoryDescription": {
"message": "HTML5 video/audio media casting."
, "description": "Options page media casting category description."
}
, "optionsMediaEnabled": {
"message": "Enable media casting"
, "description": "Media casting enabled checkbox label."
}
, "optionsMediaSyncElement": {
"message": "Sync receiver state with media element"
, "description": "Media casting sync checkbox label."
}
, "optionsMediaSyncElementDescription": {
"message": "Synchronize state (playback, volume, captions, etc...) between the media element and the receiver device."
, "description": "Media casting sync option description."
}
, "optionsMediaStopOnUnload": {
"message": "Stop receiver playback on page unload"
, "description": "Media stop on unload checkbox label."
}
"optionsMediaCategoryName": {
"message": "Media casting",
"description": "Options page media casting category title."
},
"optionsMediaCategoryDescription": {
"message": "HTML5 video/audio media casting.",
"description": "Options page media casting category description."
},
"optionsMediaEnabled": {
"message": "Enable media casting",
"description": "Media casting enabled checkbox label."
},
"optionsMediaSyncElement": {
"message": "Sync receiver state with media element",
"description": "Media casting sync checkbox label."
},
"optionsMediaSyncElementDescription": {
"message": "Synchronize state (playback, volume, captions, etc...) between the media element and the receiver device.",
"description": "Media casting sync option description."
},
"optionsMediaStopOnUnload": {
"message": "Stop receiver playback on page unload",
"description": "Media stop on unload checkbox label."
},
, "optionsLocalMediaCategoryName": {
"message": "Local media casting"
, "description": "Options page local media category title."
}
, "optionsLocalMediaCategoryDescription": {
"message": "HTTP server started by the bridge app to stream local media files to the cast receiver."
, "description": "Options page local media category description."
}
, "optionsLocalMediaEnabled": {
"message": "Enable local media casting"
, "description": "Local media enabled checkbox label."
}
, "optionsLocalMediaServerPort": {
"message": "HTTP server port:"
, "description": "HTTP server port input label."
}
"optionsLocalMediaCategoryName": {
"message": "Local media casting",
"description": "Options page local media category title."
},
"optionsLocalMediaCategoryDescription": {
"message": "HTTP server started by the bridge app to stream local media files to the cast receiver.",
"description": "Options page local media category description."
},
"optionsLocalMediaEnabled": {
"message": "Enable local media casting",
"description": "Local media enabled checkbox label."
},
"optionsLocalMediaServerPort": {
"message": "HTTP server port:",
"description": "HTTP server port input label."
},
, "optionsReceiverSelectorCategoryName": {
"message": "Receiver selector"
, "description": "Options page receiver selector category title."
}
, "optionsReceiverSelectorCategoryDescription": {
"message": "Receiver device selection interface."
, "description": "Options page receiver selector category description."
}
, "optionsReceiverSelectorWaitForConnection": {
"message": "Wait for connection"
, "description": "Receiver selector wait for connection option checkbox label."
}
, "optionsReceiverSelectorWaitForConnectionDescription": {
"message": "Keep receiver selector open until the session is established or connection fails."
, "description": "Receiver selector wait for connection option description."
}
, "optionsReceiverSelectorCloseIfFocusLost": {
"message": "Close after losing focus"
, "description": "Receiver selector close if focus lost option checkbox label."
}
"optionsReceiverSelectorCategoryName": {
"message": "Receiver selector",
"description": "Options page receiver selector category title."
},
"optionsReceiverSelectorCategoryDescription": {
"message": "Receiver device selection interface.",
"description": "Options page receiver selector category description."
},
"optionsReceiverSelectorWaitForConnection": {
"message": "Wait for connection",
"description": "Receiver selector wait for connection option checkbox label."
},
"optionsReceiverSelectorWaitForConnectionDescription": {
"message": "Keep receiver selector open until the session is established or connection fails.",
"description": "Receiver selector wait for connection option description."
},
"optionsReceiverSelectorCloseIfFocusLost": {
"message": "Close after losing focus",
"description": "Receiver selector close if focus lost option checkbox label."
},
, "optionsUserAgentWhitelistCategoryName": {
"message": "User agent whitelist"
, "description": "Options page whitelist category title."
}
, "optionsUserAgentWhitelistCategoryDescription": {
"message": "Sites for which to replace the user agent with a Chrome version for compatibility. Must be valid match patterns."
, "description": "Options page whitelist category description."
}
, "optionsUserAgentWhitelistEnabled": {
"message": "Enable site whitelist"
, "description": "Whitelist enabled checkbox label."
}
, "optionsUserAgentWhitelistRestrictedEnabled": {
"message": "Enable restricted mode"
, "description": "Whitelist restricted mode enabled checkbox label."
}
, "optionsUserAgentWhitelistRestrictedEnabledDescription": {
"message": "Also apply whitelist restrictions to sites attempting to load cast functionality regardless of the current user agent."
, "description": "Whitelist restricted mode enabled description."
}
, "optionsUserAgentWhitelistContent": {
"message": "Match patterns:"
, "description": "Match patterns editor widget label."
}
, "optionsUserAgentWhitelistBasicView": {
"message": "Basic View"
, "description": "Switch to basic view button title."
}
, "optionsUserAgentWhitelistRawView": {
"message": "Raw View"
, "description": "Switch to raw view button title."
}
, "optionsUserAgentWhitelistSaveRaw": {
"message": "Save Raw"
, "description": "Save raw view edits button title."
}
, "optionsUserAgentWhitelistAddItem": {
"message": "Add Item"
, "description": "Add new whitelist item button title."
}
, "optionsUserAgentWhitelistEditItem": {
"message": "Edit"
, "description": "Edit whitelist item button title. Displayed on each item."
}
, "optionsUserAgentWhitelistRemoveItem": {
"message": "Remove"
, "description": "Remove whitelist item button title. Displayed on each item."
}
, "optionsUserAgentWhitelistInvalidMatchPattern": {
"message": "Invalid match pattern $matchPattern$"
, "description": "Error displayed by input indicating an invalid match pattern."
, "placeholders": {
"optionsUserAgentWhitelistCategoryName": {
"message": "User agent whitelist",
"description": "Options page whitelist category title."
},
"optionsUserAgentWhitelistCategoryDescription": {
"message": "Sites for which to replace the user agent with a Chrome version for compatibility. Must be valid match patterns.",
"description": "Options page whitelist category description."
},
"optionsUserAgentWhitelistEnabled": {
"message": "Enable site whitelist",
"description": "Whitelist enabled checkbox label."
},
"optionsUserAgentWhitelistRestrictedEnabled": {
"message": "Enable restricted mode",
"description": "Whitelist restricted mode enabled checkbox label."
},
"optionsUserAgentWhitelistRestrictedEnabledDescription": {
"message": "Also apply whitelist restrictions to sites attempting to load cast functionality regardless of the current user agent.",
"description": "Whitelist restricted mode enabled description."
},
"optionsUserAgentWhitelistContent": {
"message": "Match patterns:",
"description": "Match patterns editor widget label."
},
"optionsUserAgentWhitelistBasicView": {
"message": "Basic View",
"description": "Switch to basic view button title."
},
"optionsUserAgentWhitelistRawView": {
"message": "Raw View",
"description": "Switch to raw view button title."
},
"optionsUserAgentWhitelistSaveRaw": {
"message": "Save Raw",
"description": "Save raw view edits button title."
},
"optionsUserAgentWhitelistAddItem": {
"message": "Add Item",
"description": "Add new whitelist item button title."
},
"optionsUserAgentWhitelistEditItem": {
"message": "Edit",
"description": "Edit whitelist item button title. Displayed on each item."
},
"optionsUserAgentWhitelistRemoveItem": {
"message": "Remove",
"description": "Remove whitelist item button title. Displayed on each item."
},
"optionsUserAgentWhitelistInvalidMatchPattern": {
"message": "Invalid match pattern $matchPattern$",
"description": "Error displayed by input indicating an invalid match pattern.",
"placeholders": {
"matchPattern": {
"content": "$1"
, "example": "http://example"
"content": "$1",
"example": "http://example"
}
}
}
},
, "optionsMirroringCategoryName": {
"message": "Screen/tab casting"
, "description": "Options page mirroring category name."
}
, "optionsMirroringCategoryDescription": {
"message": "Mirroring to a Chromecast receiver app."
, "description": "Options page mirroring category description."
}
, "optionsMirroringEnabled": {
"message": "Enable screen/tab casting (experimental)"
, "description": "Mirroring enabled checkbox label."
}
, "optionsMirroringAppId": {
"message": "Mirroring app ID:"
, "description": "Mirroring app ID input label."
}
, "optionsMirroringAppIdDescription": {
"message": "App ID for a registered Chromecast receiver application. Advanced use only. Must be compatible with the default app (see GitHub repo)."
, "description": "Mirroring app ID option description."
}
"optionsMirroringCategoryName": {
"message": "Screen/tab casting",
"description": "Options page mirroring category name."
},
"optionsMirroringCategoryDescription": {
"message": "Mirroring to a Chromecast receiver app.",
"description": "Options page mirroring category description."
},
"optionsMirroringEnabled": {
"message": "Enable screen/tab casting (experimental)",
"description": "Mirroring enabled checkbox label."
},
"optionsMirroringAppId": {
"message": "Mirroring app ID:",
"description": "Mirroring app ID input label."
},
"optionsMirroringAppIdDescription": {
"message": "App ID for a registered Chromecast receiver application. Advanced use only. Must be compatible with the default app (see GitHub repo).",
"description": "Mirroring app ID option description."
},
, "optionsOptionRecommended": {
"message": "recommended"
, "description": "Badge next to option label indicating boolean option is recommended enabled."
}
"optionsOptionRecommended": {
"message": "recommended",
"description": "Badge next to option label indicating boolean option is recommended enabled."
},
, "optionsReset": {
"message": "Restore Defaults"
, "description": "Restore default options button label."
}
, "optionsSave": {
"message": "Save"
, "description": "Save options button label."
}
, "optionsSaved": {
"message": "Saved!"
, "description": "Status text displayed by save button once options have been successfully saved."
"optionsReset": {
"message": "Restore Defaults",
"description": "Restore default options button label."
},
"optionsSave": {
"message": "Save",
"description": "Save options button label."
},
"optionsSaved": {
"message": "Saved!",
"description": "Status text displayed by save button once options have been successfully saved."
}
}