hensm / fx_cast

Chromecast Web Sender SDK implementation for Firefox
https://hensm.github.io/fx_cast/
MIT License
1.87k stars 63 forks source link

Updated translations for 'de': German (Deutsch) #195

Open triantium opened 2 years ago

triantium commented 2 years ago

Your translation have been copied to your clipboard. Paste it here:

Updated translations for 'de': German (Deutsch):

{
    "extensionName": {
        "message": "EXTENSION_NAME",
        "description": "Name of the extension and the native receiver selector window title.",
        "hash": "1815c8a66588365bd16519dfc1cb3ea2"
    },
    "extensionDescription": {
        "message": "Aktiviert Chromecast-Support zum Streamen von Web-Apps (wie Netflix oder BBC iPlayer), HTML5-Video und Bildschirm-/Tabfreigaben.",
        "description": "Description of the extension shown in the add-ons manager.",
        "hash": "f72f53c5ba888a3a6a7d3ee93aece82d"
    },
    "popupMediaTypeApp": {
        "message": "Die App dieser Seite",
        "description": "Receiver selector media type <option> text for current site's sender application.",
        "hash": "447054ca93cd9c437b3ff558d7fed68b"
    },
    "popupMediaTypeAppNotFound": {
        "message": "Keine App auf dieser Seite gefunden",
        "description": "Receiver selector media type <option> text for current site's sender application if none found.",
        "hash": "c5b67276069722dbfb56c6a2b3ceb370"
    },
    "popupMediaTypeAppMedia": {
        "message": "Diese Medien",
        "description": "Receiver selector media type <option> text for media casting.",
        "hash": "a153436182910fbadae78621faa67395"
    },
    "popupMediaTypeTab": {
        "message": "Diesen Tab",
        "description": "Receiver selector media type <option> text for current tab.",
        "hash": "e4c3df861b608d47b6d10e697f67eafd"
    },
    "popupMediaTypeScreen": {
        "message": "Bildschirm",
        "description": "Receiver selector media type <option> text for screen.",
        "hash": "ac9859bb6d9cb5098a9e455667f57c5c"
    },
    "popupMediaTypeFile": {
        "message": "Durchsuchen...",
        "description": "Receiver selector media type <option> text for opening a file selector dialog.",
        "hash": "070e2a9fa21ab2abab971be668738e1e"
    },
    "popupMediaSelectToLabel": {
        "message": "streamen an:",
        "description": "Cast <select> (to:)",
        "hash": "16b67fe728a86deffba17241c6bd5eaf"
    },
    "popupNoReceiversFound": {
        "message": "Keine Empfänger gefunden",
        "description": "Message displayed in the receiver selector if there are no available receivers.",
        "hash": "3ce2f57b41fe59bf2709b1d7ad6ec0e6"
    },
    "popupCastButtonTitle": {
        "message": "Streamen",
        "description": "Button text for each receiver entry in the receiver selector.",
        "hash": "2697d6a1da20b8baa9c3c866983b195c"
    },
    "popupCastingButtonTitle": {
        "message": "Streame$ellipsis$",
        "description": "Button text while establishing a session in the receiver selector. Ellipsis cycles (. → .. → ...) as loading indicator.",
        "placeholders": {
            "ellipsis": { "content": "$1", "example": "..." }
        },
        "hash": "3a13ea12ce352174fc7628f6ce954a53"
    },
    "popupStopButtonTitle": {
        "message": "Stopp",
        "description": "Alternate action button text displayed instead of popupCastButtonTitle.",
        "hash": "2c9e6b261d6a925c3acc4fa478be4f02"
    },
    "contextCast": {
        "message": "Streamen...",
        "description": "Main context menu item title. Ellipsis indicates additional information required as it triggers opening of receiver selector.",
        "hash": "148ea8aea16251530ad77bc1d24253cb"
    },
    "contextAddToWhitelist": {
        "message": "Zur Whitelist hinzufügen",
        "description": "Top-level whitelist context menu item title.",
        "hash": "f62a2993e590b730340f5f377408b2f9"
    },
    "contextAddToWhitelistRecommended": {
        "message": "$matchPattern$ hinzufügen (empfohlen)",
        "description": "Context menu item title for recomended match pattern.",
        "placeholders": {
            "matchPattern": { "content": "$1", "example": "https://example.com/*" }
        },
        "hash": "395caf736ead76c1a7340850424e2c5b"
    },
    "contextAddToWhitelistAdvancedAdd": {
        "message": "$matchPattern$ hinzufügen",
        "description": "Context menu item title for all other match patterns.",
        "placeholders": {
            "matchPattern": { "content": "$1", "example": "*://*.example.com/*" }
        },
        "hash": "a79d67f700965693261f2f38f97fd870"
    },
    "mediaOverlayTitle": {
        "message": "Wiedergabe auf $receiverName$",
        "description": "Main title for overlay displayed on media elements whilst casting.",
        "placeholders": {
            "receiverName": { "content": "$1", "example": "Living Room TV" }
        },
        "hash": "d963876878f01220f9fa69e4f923fe7e"
    },
    "optionsBridgeLoading": {
        "message": "Lade Bridge-Informationen...",
        "description": "Loading placeholder text for bridge section on options page.",
        "hash": "da533bfa70f4359693c6194f601faeeb"
    },
    "optionsBridgeFoundStatusTitle": {
        "message": "Bridge gefunden",
        "description": "Bridge OK status title text.",
        "hash": "e8ea7c0de859a99248eab9b0a8c56e0e"
    },
    "optionsBridgeIssueStatusTitle": {
        "message": "Bridge-Fehler",
        "description": "Bridge error status title text.",
        "hash": "91ca475ef1fd61142c50e14159241986"
    },
    "optionsBridgeNotFoundStatusTitle": {
        "message": "Bridge nicht gefunden",
        "description": "Bridge missing status title text.",
        "hash": "ac23e6d80564cb2e6b4358421e498f5d"
    },
    "optionsBridgeNotFoundStatusText": {
        "message": "Versuchen Sie die neuste Version herunterzuladen und zu installieren.",
        "description": "Bridge not found additional description text",
        "hash": "a6cae425dc794e2798c50c914f060af1"
    },
    "optionsBridgeStatsName": {
        "message": "Name:",
        "description": "Bridge stats name row title.",
        "hash": "bcc9f177b0a20c395aac47bd88204419"
    },
    "optionsBridgeStatsVersion": {
        "message": "Version:",
        "description": "Bridge stats version row title.",
        "hash": "eb089a4ff5e2c6afc41bd4a81a4dade6"
    },
    "optionsBridgeStatsExpectedVersion": {
        "message": "Erwartete Version:",
        "description": "Bridge stats expected version row title.",
        "hash": "e8d73707f7a8e5c340b1ab52abf6793a"
    },
    "optionsBridgeStatsCompatibility": {
        "message": "Kompatibilität:",
        "description": "Bridge stats compatibility row title.",
        "hash": "834a9ddcab7c18521a58522adabffb1f"
    },
    "optionsBridgeStatsRecommendedAction": {
        "message": "Handlungsempfehlung:",
        "description": "Bridge stats recommended action row title.",
        "hash": "967cea6c06bb9309f3cac58e0accdab1"
    },
    "optionsBridgeCompatible": {
        "message": "Kompatibel",
        "description": "Compatibility status is definitely compatible.",
        "hash": "7976aeb05daa7e3ab6ff5ebc8d74b0f9"
    },
    "optionsBridgeLikelyCompatible": {
        "message": "Vermutlich kompatibel",
        "description": "Compatibility status is probably compatible.",
        "hash": "a08be1061026eeb504cdf08f4b7c864e"
    },
    "optionsBridgeIncompatible": {
        "message": "Nicht kompatibel",
        "description": "Compatibility status is definitely incompatible.",
        "hash": "28453c055bb3d322bb9a6ff2ba430ea2"
    },
    "optionsBridgeOlderAction": {
        "message": "Bridge-Version älter als erwartet, versuchen Sie auf die neuste Version zu aktualisieren.",
        "description": "Recommended action for when the installed bridge version is older than the installed extension version.",
        "hash": "401dc978f73e5452ae3ac0622a65fd05"
    },
    "optionsBridgeNewerAction": {
        "message": "Bridge-Version neuer als erwartet, versuchen Sie die Erweiterung auf die neuste Version zu aktualisieren.",
        "description": "Recommended action for when the installed bridge version is newer than the installed extension version.",
        "hash": "1579f4717e682022f947d9f169ccad55"
    },
    "optionsBridgeNoAction": {
        "message": "Kein Handlungsbedarf.",
        "description": "Recommended action for when both bridge and extension versions are compatible or likely compatible.",
        "hash": "c5ba416a736b041c1f96cee49830e4a4"
    },
    "optionsBridgeUpdateCheck": {
        "message": "Nach Aktualisierungen suchen",
        "description": "Update check button title.",
        "hash": "f712c081e2e0ff4d83ab9b8c2cb226fa"
    },
    "optionsBridgeUpdateChecking": {
        "message": "Suche nach Aktualisierungen$ellipsis$",
        "description": "Update check button title while in progress. Ellipsis cycles (. → .. → ...) as loading indicator.",
        "placeholders": {
            "ellipsis": { "content": "$1", "example": ".." }
        },
        "hash": "282dc18c1fe1de587133edd5d050b624"
    },
    "optionsBridgeUpdateStatusNoUpdates": {
        "message": "Keine Aktualisierungen verfügbar",
        "description": "Update status if no updates are found.",
        "hash": "93c0b86f72daf273a6066d9525aad1c1"
    },
    "optionsBridgeUpdateStatusError": {
        "message": "Fehler beim Suchen nach Aktualisierungen",
        "description": "Update status if an error was encountered checking for updates.",
        "hash": "a885c6a90ca732276ab09e972d9c3232"
    },
    "optionsBridgeUpdateAvailable": {
        "message": "Eine Aktualisierung ist verfügbar:",
        "description": "Update status if an update was found.",
        "hash": "62f83435cf64c57e719fa05fb4cd39aa"
    },
    "optionsBridgeUpdate": {
        "message": "Jetzt aktualisieren...",
        "description": "Update now button title. Ellipsis indicates additional information as it triggers an update window popup.",
        "hash": "19da82f32535564dc116b89e9b9839e8"
    },
    "optionsBridgeBackupEnabled": {
        "message": "Aktiviere Ausweich-Daemon-Verbindung auf $hostPort$",
        "description": "Backup daemon checkbox label. Host/port inputs are inserted inline at the hostPort substitution.",
        "placeholders": {
            "hostPort": { "content": "$1" }
        },
        "hash": "923eff866d306017aa4f5223e07cfcd5"
    },
    "optionsBridgeBackupEnabledDescription": {
        "message": "Versuchen zur Bridge im Daemon-Modus zu verbinden, wenn die reguläre Bridge-Verbindung fehlschlägt.",
        "description": "Backup daemon checkbox description.",
        "hash": "0ce9582305f68542d131499559616155"
    },
    "optionsMediaCategoryName": {
        "message": "Medien streamen",
        "description": "Options page media casting category title.",
        "hash": "b68324d8f3c48698008bf4ea67a9843c"
    },
    "optionsMediaCategoryDescription": {
        "message": "HTML5-Video/-Audio Medien streamen.",
        "description": "Options page media casting category description.",
        "hash": "6b1a30506d1324ab3dfb340bdca684d7"
    },
    "optionsMediaEnabled": {
        "message": "Streamen von Medien aktivieren",
        "description": "Media casting enabled checkbox label.",
        "hash": "c9071e46ce057bdc8ac472b061ed62e9"
    },
    "optionsMediaOverlayEnabled": {
        "message": "Aktiviere Medien-Overlay",
        "description": "Media element overlay checkbox label.",
        "hash": "ea28ca46a759a62eed218b53cf50cec0"
    },
    "optionsMediaOverlayEnabledTemp": {
        "message": "Aktiviere Medien-Overlay (experimentell)",
        "description": "Experimental-labelled version of above.",
        "hash": "7138f5d2dc53bf1e2609cec017b87053"
    },
    "optionsMediaOverlayEnabledDescription": {
        "message": "Overlay auf Medien, das, wenn verbunden, Informationen über die aktuelle Sitzung anzeigt.",
        "description": "Media element overlay option description.",
        "hash": "99097fae267af1162c69a7cc014eb21e"
    },
    "optionsMediaSyncElement": {
        "message": "Empfängerstatus mit Media-Element synchronisieren",
        "description": "Media casting sync checkbox label.",
        "hash": "2b61bd9c36dc09cc4d67b62e63e8439b"
    },
    "optionsMediaSyncElementDescription": {
        "message": "Status (Wiedergabe, Lautstärke, Untertitel, etc...) zwischen dem Media-Element und dem Empfängergerät synchronisieren.",
        "description": "Media casting sync option description.",
        "hash": "156ea206867c07cf80bbcd8b8f955d89"
    },
    "optionsMediaStopOnUnload": {
        "message": "Wiedergabe auf dem Empfänger beim verlassen der Seite beenden",
        "description": "Media stop on unload checkbox label.",
        "hash": "a60732963c6bf8ba5273a977cfc53e20"
    },
    "optionsLocalMediaCategoryName": {
        "message": "Streamen lokaler Medien",
        "description": "Options page local media category title.",
        "hash": "555b3dda3d57b31268b2fd4e2148f0a1"
    },
    "optionsLocalMediaCategoryDescription": {
        "message": "HTTP-Server, der von der Bridge zum Streamen lokaler Mediendateien an den Empfänger gestartet wird.",
        "description": "Options page local media category description.",
        "hash": "e00f4b7c8c6455740bb5aa5ca48f94ce"
    },
    "optionsLocalMediaEnabled": {
        "message": "Streamen lokaler Medien aktivieren",
        "description": "Local media enabled checkbox label.",
        "hash": "dddd9796b68b17067a304f4560223cdc"
    },
    "optionsLocalMediaServerPort": {
        "message": "HTTP-Serverport:",
        "description": "HTTP server port input label.",
        "hash": "adba96abd8f0ed467bb7146315dd8b90"
    },
    "optionsReceiverSelectorCategoryName": {
        "message": "Empfängerauswahl",
        "description": "Options page receiver selector category title.",
        "hash": "5f4dc0204ad9cf9bf062b9ddbbd48f71"
    },
    "optionsReceiverSelectorCategoryDescription": {
        "message": "Auswahloberfläche für Empfängergeräte.",
        "description": "Options page receiver selector category description.",
        "hash": "c6155674fb44aa0410bbe4353179693f"
    },
    "optionsReceiverSelectorType": {
        "message": "Art:",
        "description": "Receiver selector type option label.",
        "hash": "ac2abc33701cecc8d265d548507195e7"
    },
    "optionsReceiverSelectorTypeBrowser": {
        "message": "Browser",
        "description": "Receiver selector type browser radio option label.",
        "hash": "326d599430c98c44d0e369a651d8ca7e"
    },
    "optionsReceiverSelectorTypeNative": {
        "message": "Nativ",
        "description": "Receiver selector type native radio option label.",
        "hash": "3385812a90cc803e708f9a6e50006ecc"
    },
    "optionsReceiverSelectorWaitForConnection": {
        "message": "Auf Verbindung warten",
        "description": "Receiver selector wait for connection option checkbox label.",
        "hash": "2d7e179330799e7187908f0adb832798"
    },
    "optionsReceiverSelectorWaitForConnectionDescription": {
        "message": "Empfängerauswahl bleibt geöffnet bis die Verbindung aufgebaut ist oder die Verbindung fehlschlägt.",
        "description": "Receiver selector wait for connection option description.",
        "hash": "a093f20a6ac41312a874b14fdba7a3f0"
    },
    "optionsReceiverSelectorCloseIfFocusLost": {
        "message": "Nach Fokusverlust schließen",
        "description": "Receiver selector close if focus lost option checkbox label.",
        "hash": "670ee2676ef52e4b399937991458ebef"
    },
    "optionsUserAgentWhitelistCategoryName": {
        "message": "Useragent-Whitelist",
        "description": "Options page whitelist category title.",
        "hash": "a1dc77dcb9b52b92c91f0b1e37836a3d"
    },
    "optionsUserAgentWhitelistCategoryDescription": {
        "message": "Seiten auf denen der Useragent aus Kompatibilitätsgründen mit einer Chrome-Version ersetzt wird. Suchmuster müssen gültig sein.",
        "description": "Options page whitelist category description.",
        "hash": "c8aeca7d543a152436629bdfd932fd77"
    },
    "optionsUserAgentWhitelistEnabled": {
        "message": "Webseiten-Whitelist aktivieren",
        "description": "Whitelist enabled checkbox label.",
        "hash": "e2a983568c921d33169acb2285112e3a"
    },
    "optionsUserAgentWhitelistRestrictedEnabled": {
        "message": "Eingeschränkten Modus aktivieren",
        "description": "Whitelist restricted mode enabled checkbox label.",
        "hash": "6ccc0faf8028df031b4d068c2e4e8f0d"
    },
    "optionsUserAgentWhitelistRestrictedEnabledDescription": {
        "message": "Whitelist-Einschränkungen auch auf Seiten anwenden, die unabhängig vom aktuellen Useragent versuchen Stream-Funktionen zu laden.",
        "description": "Whitelist restricted mode enabled description.",
        "hash": "c06564700008b3975c1fc7ce8a9998f9"
    },
    "optionsUserAgentWhitelistContent": {
        "message": "Suchmuster:",
        "description": "Match patterns editor widget label.",
        "hash": "649cd2a5977b6f2760aa4a0b7e8094c5"
    },
    "optionsUserAgentWhitelistBasicView": {
        "message": "Einfache Ansicht",
        "description": "Switch to basic view button title.",
        "hash": "649e693118ff04589c6a0d0f24cce116"
    },
    "optionsUserAgentWhitelistRawView": {
        "message": "Rohdatenansicht",
        "description": "Switch to raw view button title.",
        "hash": "f794aac5261684e97281dfc19fe85ad4"
    },
    "optionsUserAgentWhitelistSaveRaw": {
        "message": "Rohdaten speichern",
        "description": "Save raw view edits button title.",
        "hash": "b2988dcff4aa717f4391c164daa820b9"
    },
    "optionsUserAgentWhitelistAddItem": {
        "message": "Eintrag hinzufügen",
        "description": "Add new whitelist item button title.",
        "hash": "7f3dd0607a364c07977651e77888485a"
    },
    "optionsUserAgentWhitelistEditItem": {
        "message": "Bearbeiten",
        "description": "Edit whitelist item button title. Displayed on each item.",
        "hash": "07fa34db2b1ae6134e7ea08b4c43b447"
    },
    "optionsUserAgentWhitelistRemoveItem": {
        "message": "Entfernen",
        "description": "Remove whitelist item button title. Displayed on each item.",
        "hash": "3908a268c854fe64242e38845dbb7c81"
    },
    "optionsUserAgentWhitelistInvalidMatchPattern": {
        "message": "Ungültiges Suchmuster $matchPattern$",
        "description": "Error displayed by input indicating an invalid match pattern.",
        "placeholders": {
            "matchPattern": { "content": "$1", "example": "http://example" }
        },
        "hash": "90fddfd106fe100d68c4b2c5bfe96d7d"
    },
    "optionsMirroringCategoryName": {
        "message": "Bildschirm casten",
        "description": "Options page mirroring category name.",
        "hash": "2897fa6fa3151a8e261baaba6a489bba"
    },
    "optionsMirroringCategoryDescription": {
        "message": "Bildschirm/Tab an eine Chromecast-Empfänger-App duplizieren.",
        "description": "Options page mirroring category description.",
        "hash": "e6c1ef9e8b168f0d9049aacc984c22fd"
    },
    "optionsMirroringEnabled": {
        "message": "Bildschirm casten aktivieren",
        "description": "Mirroring enabled checkbox label.",
        "hash": "87fa9e2f4531b10b8ba585ccbdc7bb35"
    },
    "optionsMirroringAppId": {
        "message": "Empfänger-App-ID:",
        "description": "Mirroring app ID input label.",
        "hash": "3416cc2f16a3a9dd2f6dc43f3e609cb6"
    },
    "optionsMirroringAppIdDescription": {
        "message": "App-ID einer registrierten Chromecast-Empfängeranwendung. Nur für fortgeschrittene Anwender. Muss mit der Standard-App kompatibel sein (siehe GitHub-Repository).",
        "description": "Mirroring app ID option description.",
        "hash": "90e7943c57f0bcaa04ce8e55795d9d0c"
    },
    "optionsOptionRecommended": {
        "message": "Empfohlen",
        "description": "Badge next to option label indicating boolean option is recommended enabled.",
        "hash": "cb7a5f6614a279d34d8bb57dae48bdbd"
    },
    "optionsReset": {
        "message": "Standardwerte wiederherstellen",
        "description": "Restore default options button label.",
        "hash": "368002c153ff9aeda930d97821631f0c"
    },
    "optionsSave": {
        "message": "Speichern",
        "description": "Save options button label.",
        "hash": "aa14043bd4e6f79db542868539be9220"
    },
    "optionsSaved": {
        "message": "Gespeichert!",
        "description": "Status text displayed by save button once options have been successfully saved.",
        "hash": "d2f31b10edbccfb9147336aa30b5bb08"
    },

    "__WET_LOCALE__": { "message": "de" }
}
rimrul commented 2 years ago

Where do __WET_LOCALE__ and those hashes come from? Where did popupMediaSelectCastLabel go? And what translation did you actually change?

E: Figured out what tool sets those hashes.

rimrul commented 2 years ago

Ok, I've turned the relevant changes into diffs:


   , "extensionDescription": {
-        "message": "Aktiviert Chromecast-Support zum Streamen von Web-Apps (wie Netflix oder BBC iPlayer), HTML5-Video und Bildschirm-/Tabfreigaben."
+        "message": "Aktiviert Chromecast-Support zum Streamen von Web-Apps (wie Netflix oder BBC iPlayer) HTML5-Video und Bildschirm-/Tabfreigaben."
       , "description": "Description of the extension shown in the add-ons manager."

Dropping that comma is just wrong. We definitely need a comma after the web apps.

"popupMediaTypeApp": {
         "message": "Die App dieser Seite"
       , "description": "Receiver selector media type <option> text for current site's sender application."
     }
+  , "popupMediaTypeAppNotFound": {
+        "message": "Keine App auf dieser Seite gefunden"
+      , "description": "Receiver selector media type <option> text for current site's sender application if none found." 
+    }

This seems good, but it should probably say "für" instead of "auf", because the message is about the app for this page, not on this page.

   , "popupMediaTypeFile": {
         "message": "Durchsuchen..."
       , "description": "Receiver selector media type <option> text for opening a file selector dialog."
-    }
-
-  , "popupMediaSelectCastLabel": {
-        "message": ""
-      , "description": "(Cast) <select> to:"
     }

No. Just because it's (intentionally) empty, doesn't mean it should be dropped.

"optionsMirroringCategoryName": {
-        "message": "Bildschirm duplizieren"
+        "message": "Bildschirm casten"
       , "description": "Options page mirroring category name."
     }
   , "optionsMirroringCategoryDescription": {
         "message": "Bildschirm/Tab an eine Chromecast-Empfänger-App duplizieren."
       , "description": "Options page mirroring category description."
     }
   , "optionsMirroringEnabled": {
-        "message": "Bildschirm duplizieren aktivieren"
+        "message": "Bildschirm casten aktivieren"
       , "description": "Mirroring enabled checkbox label."
     }

We consistently translate "to cast" as "streamen" (because that's what the german chromecast documentation does), so these should say "streamen" instead of "casten".

On a side note @hensm: Should the "extensionName" message in the translations be changed to fx_cast following d343ac4? Does the name of the extension even need localization at all?

hensm commented 2 years ago

@rimrul Ah, good catch. I'd suggest just removing the extensionName entry and let it fall back to the English locale since it doesn't need a localisation.