Update addons to 1.26

Notably includes new prompts
This commit is contained in:
Thomas Weber committed 2022-05-28 20:33:16 -05:00
1 parent 91f1f92ed1
commit 0ecfab0d40
25 files changed
+179 -163

No files matched your search

+6
View File
@@ -71,6 +71,12 @@
"onion-skinning/@settings-select-layering-front": "Frente",
"onion-skinning/@settings-select-mode-merge": "Combinar imagenes",
"onion-skinning/@settings-select-mode-tint": "Teñir color",
"default-costume-editor-color/@description": "Cambia los colores predeterminados y el tamaño del borde utilizados por el editor de disfraces.",
"default-costume-editor-color/@name": "Color predeterminado personalizable en el editor de disfraces",
"default-costume-editor-color/@settings-name-fill": "Color de relleno predeterminado",
"default-costume-editor-color/@settings-name-persistence": "Usar color anterior en vez del predeterminado al cambiar de herramienta",
"default-costume-editor-color/@settings-name-stroke": "Color de borde predeterminado",
"default-costume-editor-color/@settings-name-strokeSize": "Tamaño de borde predeterminado",
"bitmap-copy/@description": "Le permite copiar una imagen bitmap en el editor de disfraces al portapapeles de su sistema, para que la puedas pegar en otros sitios web o programas.",
"bitmap-copy/@info-norightclick": "\"Click derecho → copiar\" no está soportado. Debe presionar Ctrl+C cuando la imagen bitmap este seleccionada.",
"bitmap-copy/@name": "Copiar imágenes bitmap",
+28 -28
View File
@@ -70,10 +70,10 @@
"onion-skinning/@settings-select-layering-front": "Przód",
"onion-skinning/@settings-select-mode-merge": "Łącz obrazy",
"onion-skinning/@settings-select-mode-tint": "Kolor odcienia",
"default-costume-editor-color/@description": "Zmienia domyślne kolory oraz wielkość zarysu w edytorze kostiumów.",
"default-costume-editor-color/@description": "Zmienia domyślne parametry narzędzi w edytorze kostiumów.",
"default-costume-editor-color/@name": "Domyślne kolory w edytorze kostiumów",
"default-costume-editor-color/@settings-name-fill": "Domyślny kolor wypełnienia",
"default-costume-editor-color/@settings-name-persistence": "Używaj poprzedniego koloru zamiast domyślnego, po zamianie narzędzi.",
"default-costume-editor-color/@settings-name-persistence": "Używaj poprzedniego koloru zamiast domyślnego po zamianie narzędzia.",
"default-costume-editor-color/@settings-name-stroke": "Domyślny kolor zarysu",
"default-costume-editor-color/@settings-name-strokeSize": "Domyślna wielkość zarysu",
"bitmap-copy/@description": "Pozwala ci kopiować zdjęcie z edytora kostiumu do schowka w systemie, abyś mógł wkleić do innych programów.",
@@ -105,13 +105,13 @@
"editor-theme3/@description": "Edytuj kolory bloków dla każdej kategorii w edytorze.",
"editor-theme3/@name": "Niestandardowe kolory bloków",
"editor-theme3/@preset-description-black": "Zmienia tło bloków na czarne",
"editor-theme3/@preset-description-dark": "Ciemne wersje domyślnych kolorów",
"editor-theme3/@preset-description-original": "Oryginalne kolory bloków z Scratch 2.0",
"editor-theme3/@preset-description-tweaks": "Zdarzenia, Kontrola, i Moje bloki w kolorach z 2.0",
"editor-theme3/@preset-description-dark": "Ciemne wersje podstawowych kolorów",
"editor-theme3/@preset-description-original": "Oryginalne kolory bloków z wersji Scratch 2.0",
"editor-theme3/@preset-description-tweaks": "Kategorie \"zdarzenia\", \"kontrola\", i \"moje bloki\" są kolorach z wersji 2.0",
"editor-theme3/@preset-name-black": "Czarny",
"editor-theme3/@preset-name-dark": "Ciemny",
"editor-theme3/@preset-name-original": "Kolory 2.0",
"editor-theme3/@preset-name-tweaks": "Ulepszenia 3.0 ",
"editor-theme3/@preset-name-tweaks": "Poprawki 3.0 ",
"editor-theme3/@settings-name-Pen-color": "rozszerzenia",
"editor-theme3/@settings-name-control-color": "kontrola",
"editor-theme3/@settings-name-custom-color": "niestandardowy",
@@ -121,27 +121,27 @@
"editor-theme3/@settings-name-input-color": "Wejścia bloków",
"editor-theme3/@settings-name-looks-color": "wygląd",
"editor-theme3/@settings-name-motion-color": "ruch",
"editor-theme3/@settings-name-operators-color": "operatory",
"editor-theme3/@settings-name-operators-color": "wyrażenia",
"editor-theme3/@settings-name-sensing-color": "czujniki",
"editor-theme3/@settings-name-sounds-color": "dźwięki",
"editor-theme3/@settings-name-sounds-color": "dźwięk",
"editor-theme3/@settings-name-text": "Kolor tekstu",
"editor-theme3/@settings-select-text-black": "Czarny",
"editor-theme3/@settings-select-text-colorOnBlack": "Kolorowe na czarnym tle",
"editor-theme3/@settings-select-text-colorOnWhite": "Kolorowe na białym tle",
"editor-theme3/@settings-select-text-white": "Biały",
"editor-theme3/@update": "Nowe ustawienie pozwalające zmieniać kolory bloków na forach.",
"custom-block-text/@description": "Zmienia nasycenie tekstu na blokach, opcjonalnie dodaje cień.",
"editor-theme3/@update": "Nowe ustawienie pozwalające zmieniać kolory bloków na forum.",
"custom-block-text/@description": "Zmienia nasycenie tekstu na blokach, opcjonalnie dodaje cień obok nich.",
"custom-block-text/@name": "Konfigurowalny styl tekstu bloków",
"custom-block-text/@settings-name-bold": "Pogrubiony tekst",
"custom-block-text/@settings-name-shadow": "Cień pod tekstem",
"editor-colored-context-menus/@description": "Tworzy kolorowe menu kontekstowe, klikając prawym przyciskiem myszy na blok.",
"editor-colored-context-menus/@name": "Kolorowe menu kontekstowe",
"editor-colored-context-menus/@description": "Kiedy klikniesz prawym klawiszem na blok, wyświetlone menu ma kolorowe tło.",
"editor-colored-context-menus/@name": "Kolorowe menu zawartości",
"editor-stage-left/@description": "Przesuwa scenę na lewą stronę edytora.",
"editor-stage-left/@name": "Wyświetl scenę po lewej stronie",
"editor-stage-left/@name": "Przenieś scenę na lewą stronę",
"variable-manager/@description": "Dodaje zakładkę obok \"dźwięków\" w edytorze żeby łatwo aktualizować zmienne i listy",
"variable-manager/@name": "Menedżer zmiennych",
"search-sprites/@description": "Dodaje pole wyszukiwania w liście duszków do szukania ich po nazwie.",
"search-sprites/@name": "Szukaj duszków po nazwie...",
"search-sprites/@description": "Dodaje pole wyszukiwania w liście duszków, za pomocą którego możesz wyszukać duszka po jego nazwie.",
"search-sprites/@name": "Szukaj duszków po nazwie",
"gamepad/@description": "Interakcja z projektami za pomocą kontrolera/gamepada używając USB lub Bluetooth.",
"gamepad/@name": "Wsparcie dla padów",
"gamepad/@settings-name-hide": "Ukryj przycisk ustawień, gdy system nie wykryje żadnych kontrolerów ",
@@ -245,38 +245,38 @@
"disable-stage-drag-select/@description": "Usuwa możliwość przeciągania duszków w trybie edycji, z wyjątkiem tych których tryb jest ustawiony na \"Przeciągalne\".",
"disable-stage-drag-select/@info-shift": "Przytrzymaj klawisz Shift podczas przeciągania duszka, aby przesunąć go, nawet jeśli nie jest ustawiony jako możliwy do przeciągania.",
"disable-stage-drag-select/@name": "Blokada przesuwania duszków w edytorze",
"move-to-top-bottom/@description": "Dodaje przycisk, aby przesunąć kostium lub dźwięk na górę lub na dół listy. Wcześniej część narzędzi developerskich. ",
"move-to-top-bottom/@name": "Przenieś kostium do góry albo dołu",
"disable-paste-offset/@description": "Wklej skopiowane kostiumy w jej oryginalnej pozycji, zamiast je delikatnie przesuwać.",
"disable-paste-offset/@name": "Nie przesuwaj wklejonych obiektów.",
"block-duplicate/@description": "Szybko zduplikuj skrypt, przeciągając go, trzymając klawisz Alt. Przytrzymaj również klawisz Ctrl, aby zduplikować tylko pojedynczy blok zamiast całego stosu dołączonego pod nim.",
"move-to-top-bottom/@description": "Dodaje przycisk, który przesuwa kostium lub dźwięk na górę lub na dół listy. Wcześniej część narzędzi developerskich. ",
"move-to-top-bottom/@name": "Przenieś kostium do góry albo do dołu",
"disable-paste-offset/@description": "Wklej skopiowane kostiumy w jej oryginalnej pozycji, zamiast delikatnie je przesuwać.",
"disable-paste-offset/@name": "Nie przesuwaj wklejonych obiektów",
"block-duplicate/@description": "Szybko zduplikuj skrypt, przeciągając go, trzymając klawisz Alt. Możesz także przytrzymać również klawisz Ctrl, aby zduplikować tylko pojedynczy blok zamiast całego stosu dołączonego pod nim.",
"block-duplicate/@info-mac": "W systemie macOS zamiast klawisza Alt należy użyć klawisza Option, a zamiast klawisza Control - klawisza Command.",
"block-duplicate/@name": "Duplikuj skrypt przyciskiem Alt",
"swap-local-global/@description": "Dodaje więcej opcji w czasie zmieniania nazwy zmiennej lub listy. Możesz zmienić czy dana zmienna jest dla \"Wszystkich duszków\" lub \"Tylko dla tego duszka\" oraz czy jest zapisywana w chmurze.",
"swap-local-global/@name": "Przełącz zmienną między ustawieniami \"Dla wszystkich duszków\" lub \"Tylko dla tego duszka\"",
"editor-comment-previews/@description": "Pozwala podejrzeć zawartość komentarza najeżdżając na połączone bloki. Możesz zobaczyć komentarze, które zachodzą za ekran. Dodatkowo możesz zmieścić duże komentarze w małej przestrzeni oraz więcej!",
"editor-comment-previews/@name": "Podgląd komentarzy w edytorze",
"swap-local-global/@name": "Przełącz zmienną między ustawieniami \"Dla wszystkich duszków\" na \"Tylko dla tego duszka\"",
"editor-comment-previews/@description": "Pozwala podejrzeć zawartość komentarza najeżdżając na połączone bloki. Możesz nawet zobaczyć komentarze, które zachodzą za ekran. Dodatkowo możesz zmieścić duże komentarze w małej przestrzeni oraz więcej!",
"editor-comment-previews/@name": "Podgląd komentarzy",
"editor-comment-previews/@settings-name-delay": "Czas opóźnienia",
"editor-comment-previews/@settings-name-follow-mouse": "Podążaj za myszą",
"editor-comment-previews/@settings-name-hover-view": "Najedź na nakładające się komentarze, aby zobaczyć ich podgląd.",
"editor-comment-previews/@settings-name-hover-view-block": "Najedź na bloki, aby poznać ich definicje i komentarze.",
"editor-comment-previews/@settings-name-hover-view-procedure": "Najedź na \"moje bloki\", aby poznać ich definicje i komentarze.",
"editor-comment-previews/@settings-name-reduce-animation": "Zmniejsz animacje",
"editor-comment-previews/@settings-name-reduce-animation": "Zmniejsz ilość animacji",
"editor-comment-previews/@settings-name-reduce-transparency": "Zmniejsz przezroczystość",
"editor-comment-previews/@settings-select-delay-long": "Długie",
"editor-comment-previews/@settings-select-delay-none": "Puste",
"editor-comment-previews/@settings-select-delay-none": "Brak",
"editor-comment-previews/@settings-select-delay-short": "Krótkie",
"columns/@description": "Dzieli menu kategorii bloków na dwie kolumny i przenosi je na górę palety bloków, tak jak w Scratch 2.0.",
"columns/@name": "Dwu-kolumnowe menu kategorii",
"columns/@name": "Menu kategorii podzielone na 2 kolumny",
"script-snap/@description": "Po przesunięciu kodu, zostanie on \"przyczepiony\" do kropek tła w edytorze.",
"script-snap/@name": "Przyczep fragmenty kodu do wirtualnej siatki",
"script-snap/@preset-name-default": "Domyślny",
"script-snap/@preset-name-half-block": "Połowa bloku",
"script-snap/@preset-name-whole-block": "Cały blok kodu",
"script-snap/@settings-name-grid": "Wielkość siatki (px)",
"fullscreen/@description": "Naprawia niektóre niepożądane efekty w trybie pełnoekranowym odtwarzacza projektu. Otwiera go w trybie pełnoekranowym przeglądarki oraz ukrywa pasek z zieloną flagą.",
"fullscreen/@description": "Naprawia niektóre niepożądane efekty w trybie pełnoekranowym. Otwiera projekt w trybie pełnoekranowym przeglądarki oraz ukrywa pasek z zieloną flagą.",
"fullscreen/@info-hideToolbarNotice": "Jeśli zdecydujesz się ukryć pasek narzędzi, pamiętaj, że możesz użyć klawisza Esc, aby wyjść z trybu pełnoekranowego do odtwarzacza projektów. ",
"fullscreen/@name": "Ulepszony pełny ekran",
"fullscreen/@name": "Polepszony pełny ekran",
"fullscreen/@settings-name-browserFullscreen": "Otwórz pełny ekran, gdy użytkownik jest w trybie pełnoekranowym przeglądarki",
"fullscreen/@settings-name-hideToolbar": "Ukryj pasek narzędzi w pełnym ekranie",
"editor-stepping/@description": "Dodaje kolorowe podkreślenie do bloków, których kod wykonuje się w danym momencie.",
+6
View File
@@ -32,7 +32,11 @@
"drag-drop/@name": "Перетаскивание файлов",
"drag-drop/@settings-name-use-hd-upload": "Использовать HD загрузку",
"debugger/@name": "Отладчик",
"debugger/@settings-name-log_broadcasts": "Логировать сообщения",
"debugger/@settings-name-log_clear_greenflag": "Очистить логи, когда зелёный флаг нажат",
"debugger/@settings-name-log_clone_create": "Логировать создания клонов",
"debugger/@settings-name-log_failed_clone_creation": "Логировать, когда макс. кол-во клонов превышено",
"debugger/@settings-name-log_greenflag": "Логировать нажатия на зелёный флажок",
"debugger/@update": "Новые вкладки \"Потоки\" и \"Производительность\" в окне отладки.",
"pause/@description": "Добавляет кнопку паузы рядом с зелёным флагом.",
"pause/@name": "Кнопка паузы",
@@ -130,6 +134,7 @@
"search-sprites/@name": "Поиск спрайтов по имени",
"gamepad/@description": "Взаимодействовать с проектами используя USB или Bluetooth контроллер/геймпад.",
"gamepad/@name": "Поддержка геймпада",
"gamepad/@settings-name-hide": "Спрятать кнопку настроек, если контроллеров не обнаружено",
"editor-sounds/@description": "Воспроизводит звуковые эффекты при соединении или удалении блоков.",
"editor-sounds/@name": "Звуковые эффекты редактора",
"folders/@info-notice-folders-are-public": "Пользователи, у которых включена эта функция, смогут видеть папки в вашем проекте. Все остальные будут видеть списки спрайтов в обычном режиме (без папок).",
@@ -215,6 +220,7 @@
"hide-delete-button/@settings-name-sprites": "Спрайты",
"no-script-bumping/@description": "Позволяет скриптам двигаться и изменяться без их перекрытия для перемещения вокруг.",
"no-script-bumping/@name": "Не делать автоматически пробел между перекрывающими скриптами",
"disable-stage-drag-select/@description": "Убирает возможность перетаскивать спрайты вокруг сцены в редакторе кроме тех, которые явно заданы как перетаскиваемые.",
"disable-stage-drag-select/@info-shift": "Удерживайте Shift при перетаскивании спрайта, чтобы перемещать его как обычно, даже если он не настроен как перетаскиваемый.",
"disable-stage-drag-select/@name": "Неперетаскиваемые спрайты в редакторе",
"move-to-top-bottom/@description": "Добавляет кнопку к контекстному меню ПКМ для перемещения костюма в самый верх или в самый низ списка. Первоначально было частью инструментов разработчика.",
+2
View File
@@ -141,11 +141,13 @@
"folders/create-folder": "neuer Ordner",
"folders/name-not-allowed": "Ungültiger Ordnername",
"folders/name-prompt": "Ordnername:",
"folders/name-prompt-title": "Neuer Ordner",
"folders/open-folder": "Offen",
"folders/remove-folder": "Ordner entfernen",
"folders/remove-from-folder": "vom Ordner entfernen",
"folders/rename-folder": "Ordner umbenennen",
"folders/rename-folder-prompt": "Ordner umbenennen in:",
"folders/rename-folder-prompt-title": "Ordner umbenennen",
"block-switching/control_forever": "wiederhole fortlaufend",
"block-switching/control_if": "falls, dann",
"block-switching/control_if_else": "falls, dann... sonst",
+2
View File
@@ -147,11 +147,13 @@
"folders/create-folder": "create folder",
"folders/name-not-allowed": "Invalid folder name",
"folders/name-prompt": "Name of folder:",
"folders/name-prompt-title": "Create Folder",
"folders/open-folder": "Opened",
"folders/remove-folder": "remove folder",
"folders/remove-from-folder": "remove from folder",
"folders/rename-folder": "rename folder",
"folders/rename-folder-prompt": "Rename folder to:",
"folders/rename-folder-prompt-title": "Rename Folder",
"block-switching/control_forever": "forever",
"block-switching/control_if": "if",
"block-switching/control_if_else": "if... else",
+6 -4
View File
@@ -32,7 +32,7 @@
"editor-devtools/make-space": "Hacer Espacio",
"editor-devtools/middleclick": "Saltar a",
"editor-devtools/middleclick-desc": "Usando el botón del medio del ratón o Shift + Click en una variable o bloque propio, puedes saltar a su definición o abrirlo en la barra de búsqueda interactiva.",
"editor-devtools/orphaned": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 bloque reportero huérfano?} other {Herramientas de desarrollador: ¿borrar # bloques reporteros huérfanos?} }",
"editor-devtools/orphaned": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 bloque reportero huérfano?} many {Herramientas de desarrollador: ¿borrar # bloques reporteros huérfanos?} other {Herramientas de desarrollador: ¿borrar # bloques reporteros huérfanos?} }",
"editor-devtools/paste": "Pegar",
"editor-devtools/paste-from-clipboard": "Pegar del Portapapeles",
"editor-devtools/paste-from-clipboard-desc": "Pega del portapapeles, pero lo pega donde está su cursor del ratón para que puedas posicionarlo (en vez de ponerlo donde lo copió, como la implementación actual de Scratch).",
@@ -43,8 +43,8 @@
"editor-devtools/swap-variable-desc": "Haga click derecho a una variable en la parte de código para esta nueva opción. Te permite intercambiar todas las referencias a esta variable en el objeto actual a otra variable. Esto es bueno para cuando cometió un error y quiere cambiar todas las referencias a una variable a otra o tiene que cambiar \"para todos los objetos\" a \"solo para este objeto\". Esta opción no quitará la variable antigua y no afectará las variables de otros objetos.",
"editor-devtools/top": "enviar arriba",
"editor-devtools/tutorials": "Tutoriales",
"editor-devtools/unused-list": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 lista local sin usar? Esta es:\n} other {Herramientas de desarrollador: ¿borrar # listas locales sin usar? Estas son:\n} }",
"editor-devtools/unused-var": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 variable local sin usar? Estas son:\n} other {Herramientas de desarrollador: ¿borrar # variables locales sin usar? Estas son:\n} }",
"editor-devtools/unused-list": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 lista local sin usar? Esta es:\n} many {Herramientas de desarrollador: ¿borrar # listas locales sin usar? Estas son:\n} other {Herramientas de desarrollador: ¿borrar # listas locales sin usar? Estas son:\n} }",
"editor-devtools/unused-var": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 variable local sin usar? Estas son:\n} many {Herramientas de desarrollador: ¿borrar # variables locales sin usar? Estas son:\n} other {Herramientas de desarrollador: ¿borrar # variables locales sin usar? Estas son:\n} }",
"editor-devtools/var-not-exist": "Esa variable no existe..",
"editor-devtools/youtube": "Tutoriales en YouTube",
"editor-searchable-dropdowns/createBroadcast": "Crear mensaje \"{name}\"",
@@ -94,7 +94,7 @@
"pause/pause": "Pausar",
"color-picker/hex": "color hex",
"remove-sprite-confirm/confirm": "¿Quieres borrar este objeto?",
"block-count/blocks": "{num, plural, one {1 bloques} other {# bloques}}",
"block-count/blocks": "{num, plural, one {1 bloques} many {# bloques} other {# bloques}}",
"onion-skinning/behind": "Detrás",
"onion-skinning/front": "Frente",
"onion-skinning/layering": "Método de superposición",
@@ -136,11 +136,13 @@
"folders/create-folder": "crear carpeta",
"folders/name-not-allowed": "Nombre de carpeta inválido",
"folders/name-prompt": "Nombre de carpeta:",
"folders/name-prompt-title": "Crear Carpeta",
"folders/open-folder": "Abierta",
"folders/remove-folder": "quitar carpeta",
"folders/remove-from-folder": "quitar de carpeta",
"folders/rename-folder": "renombrar carpeta",
"folders/rename-folder-prompt": "Renombrar carpeta a:",
"folders/rename-folder-prompt-title": "Renombrar Carpeta",
"block-switching/control_forever": "por siempre",
"block-switching/control_if": "si",
"block-switching/control_if_else": "si... si no",
+6 -4
View File
@@ -32,7 +32,7 @@
"editor-devtools/make-space": "Espacer",
"editor-devtools/middleclick": "Sauter Vers",
"editor-devtools/middleclick-desc": "Utiliser le clic mollete sur une variable ou un bloc personnalisé vous permet d'aller directement à sa définition ou l'ouvre dans la barre de recherche interactive.",
"editor-devtools/orphaned": "{count, plural, one {Outils développeur : Supprimer 1 bloc de valeur seul ?} other {Outils développeur : Supprimer les # blocs de valeur seuls ?} }",
"editor-devtools/orphaned": "{count, plural, one {Outils développeur : Supprimer 1 bloc de valeur seul ?} many {Outils développeur : Supprimer les # blocs de valeur seuls ?} other {Outils développeur : Supprimer les # blocs de valeur seuls ?} }",
"editor-devtools/paste": "Coller",
"editor-devtools/paste-from-clipboard": "Coller à partir du presse-papiers",
"editor-devtools/paste-from-clipboard-desc": "Colle depuis le presse-papiers, mais surtout le colle où votre souris se situe pour pouvoir le placer (meilleur que le placer là où vous l'avez copié, système actuellement implémenté dans Scratch)",
@@ -43,8 +43,8 @@
"editor-devtools/swap-variable-desc": "Faites un clic droit sur une variable dans votre code pour cette nouvelle option. Elle vous permet d'échanger toutes les références à cette variable dans le sprite actuel d'un seul coup vers une autre variable. C'est idéal lorsque vous avez fait une erreur et que vous voulez échanger d'une variable à une autre ou que vous voulez changer de \"pour tous les sprites\" à \"pour ce sprite uniquement\". Cette option ne supprimera pas l'ancienne variable et n'affectera aucun autre variable du sprite.",
"editor-devtools/top": "envoyer en haut",
"editor-devtools/tutorials": "Tutoriels",
"editor-devtools/unused-list": "{count, plural, one {Outils développeur : Supprimer 1 liste locale inutilisée ? La voici :\n} other {Outils développeur : Supprimer # listes locales inutilisées ? Les voici :\n} }",
"editor-devtools/unused-var": "{count, plural, one {Outils développeur : Supprimer 1 variable locale inutilisée ? Là voilà :\n} other {Outils développeur : Supprimer les # variables locales inutilisées ? Les voici :\n} }",
"editor-devtools/unused-list": "{count, plural, one {Outils développeur : Supprimer 1 liste locale inutilisée ? La voici :\n} many {Outils développeur : Supprimer # listes locales inutilisées ? Les voici :\n} other {Outils développeur : Supprimer # listes locales inutilisées ? Les voici :\n} }",
"editor-devtools/unused-var": "{count, plural, one {Outils développeur : Supprimer 1 variable locale inutilisée ? Là voilà :\n} many {Outils développeur : Supprimer les # variables locales inutilisées ? Les voici :\n} other {Outils développeur : Supprimer les # variables locales inutilisées ? Les voici :\n} }",
"editor-devtools/var-not-exist": "Cette variable n'existe pas...",
"editor-devtools/youtube": "Tutoriels YouTube",
"editor-searchable-dropdowns/createBroadcast": "Créer le message \"{name}\"",
@@ -99,7 +99,7 @@
"clones/clones": "clones : {cloneCount}",
"color-picker/hex": "couleur hexa",
"remove-sprite-confirm/confirm": "Voulez-vous supprimer le sprite ?",
"block-count/blocks": "{num, plural, one {1 bloc} other {# blocs}}",
"block-count/blocks": "{num, plural, one {1 bloc} many {# blocs} other {# blocs}}",
"onion-skinning/behind": "Derrière",
"onion-skinning/front": "Devant",
"onion-skinning/layering": "Calques",
@@ -142,11 +142,13 @@
"folders/create-folder": "créer un dossier",
"folders/name-not-allowed": "Nom de dossier invalide",
"folders/name-prompt": "Nom du dossier :",
"folders/name-prompt-title": "Créer un dossier",
"folders/open-folder": "Ouvert",
"folders/remove-folder": "supprimer le dossier",
"folders/remove-from-folder": "supprimer du dossier",
"folders/rename-folder": "renommer le dossier",
"folders/rename-folder-prompt": "Renommer le dossier en :",
"folders/rename-folder-prompt-title": "Renommer le dossier",
"block-switching/control_forever": "répéter indéfiniment",
"block-switching/control_if": "si",
"block-switching/control_if_else": "si... sinon",
+6 -4
View File
@@ -32,7 +32,7 @@
"editor-devtools/make-space": "Fai Spazio",
"editor-devtools/middleclick": "Vai a",
"editor-devtools/middleclick-desc": "L'uso del pulsante centrale del mouse o di Shift+Click su una variabile o su un blocco personalizzato permette di passare alla sua definizione o di aprirlo nella barra di ricerca interattiva.",
"editor-devtools/orphaned": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 blocco monitor non collegato agli script?} other {Strumenti per sviluppatori: Rimuovere # blocchi monitor non collegati agli script?} }",
"editor-devtools/orphaned": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 blocco monitor non collegato agli script?} many {Strumenti per sviluppatori: Rimuovere # blocchi monitor non collegati agli script?} other {Strumenti per sviluppatori: Rimuovere # blocchi monitor non collegati agli script?} }",
"editor-devtools/paste": "Incolla",
"editor-devtools/paste-from-clipboard": "Incolla dagli Appunti",
"editor-devtools/paste-from-clipboard-desc": "Incolla dagli appunti nel punto in cui si trova il cursore del mouse in modo che tu possa posizionare i blocchi in quel punto (invece di posizionarli nel punto da cui li hai copiati, come accade normalmente in Scratch).",
@@ -43,8 +43,8 @@
"editor-devtools/swap-variable-desc": "Clic destro su una variabile nei tuoi script. Ti permette di sostituire tutti i riferimenti a questa variabile nello sprite attuale con un'altra variabile. Questo è utile per quando fai un errore e vuoi passare da una variabile a un'altra o se hai bisogno di passare da 'Per tutti gli sprite' a 'Solo per questo sprite' o viceversa. La variabile vecchia non verrà rimossa.",
"editor-devtools/top": "porta in prima posizione",
"editor-devtools/tutorials": "Tutorial",
"editor-devtools/unused-list": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 lista locale inutilizzata? Eccola qui:\n} other {Strumenti per sviluppatori: Rimuovere # liste locali inutilizzate? Eccole qui:\n} }",
"editor-devtools/unused-var": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 variabile locale inutilizzata? Eccola qui:\n} other {Strumenti per sviluppatori: Rimuovere # variabili locali inutilizzate? Eccole qui:\n} }",
"editor-devtools/unused-list": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 lista locale inutilizzata? Eccola qui:\n} many {Strumenti per sviluppatori: Rimuovere # liste locali inutilizzate? Eccole qui:\n} other {Strumenti per sviluppatori: Rimuovere # liste locali inutilizzate? Eccole qui:\n} }",
"editor-devtools/unused-var": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 variabile locale inutilizzata? Eccola qui:\n} many {Strumenti per sviluppatori: Rimuovere # variabili locali inutilizzate? Eccole qui:\n} other {Strumenti per sviluppatori: Rimuovere # variabili locali inutilizzate? Eccole qui:\n} }",
"editor-devtools/var-not-exist": "Questa variabile non esiste...",
"editor-devtools/variables": "variabili",
"editor-devtools/youtube": "Tutorial YouTube",
@@ -98,7 +98,7 @@
"clones/clones": "cloni: {cloneCount}",
"color-picker/hex": "colore esadecimale",
"remove-sprite-confirm/confirm": "Vuoi cancellare lo sprite?",
"block-count/blocks": "{num, plural, one {1 blocco} other {# blocchi}}",
"block-count/blocks": "{num, plural, one {1 blocco} many {# blocchi} other {# blocchi}}",
"onion-skinning/behind": "Secondo piano",
"onion-skinning/front": "Primo piano",
"onion-skinning/layering": "Livelli",
@@ -143,11 +143,13 @@
"folders/create-folder": "crea cartella",
"folders/name-not-allowed": "Nome cartella non valido",
"folders/name-prompt": "Nome della cartella:",
"folders/name-prompt-title": "Crea Cartella",
"folders/open-folder": "Aperto",
"folders/remove-folder": "rimuovi cartella",
"folders/remove-from-folder": "rimuovi dalla cartella",
"folders/rename-folder": "rinomina cartella",
"folders/rename-folder-prompt": "Rinomina cartella come:",
"folders/rename-folder-prompt-title": "Rinomina Cartella",
"block-switching/control_forever": "per sempre",
"block-switching/control_if": "se allora",
"block-switching/control_if_else": "se allora... altrimenti",
+2
View File
@@ -146,11 +146,13 @@
"folders/create-folder": "フォルダーを作成",
"folders/name-not-allowed": "フォルダー名は無効です",
"folders/name-prompt": "フォルダー名:",
"folders/name-prompt-title": "フォルダーを作成",
"folders/open-folder": "表示中",
"folders/remove-folder": "フォルダーを削除",
"folders/remove-from-folder": "フォルダーから出す",
"folders/rename-folder": "フォルダーを改名",
"folders/rename-folder-prompt": "フォルダーの改名先:",
"folders/rename-folder-prompt-title": "フォルダーを改名",
"block-switching/control_forever": "ずっと",
"block-switching/control_if": "もし",
"block-switching/control_if_else": "もし... でなければ",
+2
View File
@@ -137,11 +137,13 @@
"folders/create-folder": "map aanmaken",
"folders/name-not-allowed": "Ongeldige mapnaam",
"folders/name-prompt": "Naam van map:",
"folders/name-prompt-title": "Map Aanmaken",
"folders/open-folder": "Geopend",
"folders/remove-folder": "map verwijderen",
"folders/remove-from-folder": "verwijder uit map",
"folders/rename-folder": "map hernoemen",
"folders/rename-folder-prompt": "Hernoem map naar:",
"folders/rename-folder-prompt-title": "Map Hernoemen",
"block-switching/control_forever": "herhaal",
"block-switching/control_if": "als",
"block-switching/control_if_else": "als... anders",
+7 -5
View File
@@ -99,7 +99,7 @@
"clones/clones": "klony:{cloneCount}",
"color-picker/hex": "hex kolor",
"remove-sprite-confirm/confirm": "Czy chcesz usunąć duszka?",
"block-count/blocks": "{num, plural, one {1 blok} few {# bloków} many {# bloków} other {# bloków}}",
"block-count/blocks": "{num, plural, one {1 blok} few {# bloki} many {# bloków} other {# bloków}}",
"onion-skinning/behind": "Tył",
"onion-skinning/front": "Przód",
"onion-skinning/layering": "Warstwowanie",
@@ -118,7 +118,7 @@
"variable-manager/for-this-sprite": "Zmienne dla tego duszka",
"variable-manager/search": "Szukaj",
"variable-manager/variables": "Zmienne",
"search-sprites/placeholder": "Przeszukaj duszki...",
"search-sprites/placeholder": "Szukaj duszków...",
"gamepad/axes-a-b": "Osie {a} i {b}",
"gamepad/axis-arrows": "Przyciski Strzałek",
"gamepad/axis-cursor": "Kursor",
@@ -144,11 +144,13 @@
"folders/create-folder": "stwórz folder",
"folders/name-not-allowed": "Nieprawidłowa nazwa folderu",
"folders/name-prompt": "Nazwa folderu:",
"folders/name-prompt-title": "Stwórz folder",
"folders/open-folder": "Otwarte",
"folders/remove-folder": "usuń folder",
"folders/remove-from-folder": "usuń z folderu",
"folders/rename-folder": "zmień nazwę folderu",
"folders/rename-folder-prompt": "Zmień nazwę folderu na:",
"folders/rename-folder-prompt-title": "Zmień nazwę folderu",
"block-switching/control_forever": "zawsze",
"block-switching/control_if": "jeżeli",
"block-switching/control_if_else": "jeżeli.. w przeciwnym razie",
@@ -221,11 +223,11 @@
"move-to-top-bottom/bottom": "przenieś na dół",
"move-to-top-bottom/top": "przenieś na górę",
"swap-local-global/cant-convert-cloud": "\"Zmienne w chmurze\" nie mogą być zamienione na \"Dla jednego duszka\"",
"swap-local-global/cant-convert-conflict": "Nie można zamienić ponieważ koliduje ze zmiennymi w innym duszku: {sprites}",
"swap-local-global/cant-convert-conflict": "Nie można zamienić, ponieważ koliduje ze zmiennymi w innym duszku: {sprites}",
"swap-local-global/cant-convert-stage": "Scena nie może mieć zmiennych \"Tylko dla tego duszka\".",
"swap-local-global/cant-convert-to-local": "Nie można zamienić ponieważ jest używane przez wiele duszków: {sprites}",
"swap-local-global/cant-convert-to-local": "Nie można zamienić, ponieważ to jest używane przez wiele duszków: {sprites}",
"swap-local-global/cant-convert-used-elsewhere": "Nie można zamienić, ponieważ jest używana przez duszka: {sprite}",
"swap-local-global/edit": "Edytuj szczegóły:",
"swap-local-global/edit": "Edytuj właściwości:",
"swap-local-global/edit-list-header": "Edytuj Listę",
"swap-local-global/edit-list-option": "Zmień nazwę lub edytuj listę",
"swap-local-global/edit-variable-header": "Edytuj Zmienną",
+4 -4
View File
@@ -32,7 +32,7 @@
"editor-devtools/make-space": "Abrir Espaço",
"editor-devtools/middleclick": "Pular Para",
"editor-devtools/middleclick-desc": "Use o botão da rodinha do mouse ou Shift + Click em uma variável ou bloco customizável para ir até a sua definição ou abri-lo na barra de pesquisa interativa.",
"editor-devtools/orphaned": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 bloco redondo órfão?} other {Ferramentas de desenvolvedor: Deletar # blocos redondos órfãos?} }",
"editor-devtools/orphaned": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 bloco redondo órfão?} many {Ferramentas de desenvolvedor: Deletar # blocos redondos órfãos?} other {Ferramentas de desenvolvedor: Deletar # blocos redondos órfãos?} }",
"editor-devtools/paste": "Colar",
"editor-devtools/paste-from-clipboard": "Colar da Área de Trabalho",
"editor-devtools/paste-from-clipboard-desc": "Cola da área de trabalho onde o seu mouse estiver para que você possa colocar o bloco onde quiser (ao invés de colar o bloco na mesma posição onde você copiou como a implementação atual do Scratch faz).",
@@ -43,8 +43,8 @@
"editor-devtools/swap-variable-desc": "Clique com o botão direito em uma variável para ver essa opção. Ela te deixa trocar todas as aparições dessa variável no ator atual de uma vez por outra variável. Isso é ótimo para quando você fez um erro e quer trocar uma variável por outra ou precisa trocar uma variável 'para todos os atores' por uma 'apenas para este ator'. Essa opção não remove a variável antiga e não vai afetar as variáveis de outros atores.",
"editor-devtools/top": "enviar ao topo",
"editor-devtools/tutorials": "Tutoriais",
"editor-devtools/unused-list": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 lista local não utilizada? Aqui estão:\n} other {Ferramentas de desenvolvedor: Deletar # listas locais não utilizadas? Aqui está:\n} }",
"editor-devtools/unused-var": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 variável local não utilizada? Aqui está:\n} other {Ferramentas de desenvolvedor: Deletar # variáveis locais não utilizadas? Aqui estão:\n} }",
"editor-devtools/unused-list": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 lista local não utilizada? Aqui estão:\n} many {Ferramentas de desenvolvedor: Deletar # listas locais não utilizadas? Aqui está:\n} other {Ferramentas de desenvolvedor: Deletar # listas locais não utilizadas? Aqui está:\n} }",
"editor-devtools/unused-var": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 variável local não utilizada? Aqui está:\n} many {Ferramentas de desenvolvedor: Deletar # variáveis locais não utilizadas? Aqui estão:\n} other {Ferramentas de desenvolvedor: Deletar # variáveis locais não utilizadas? Aqui estão:\n} }",
"editor-devtools/var-not-exist": "Essa variável não existe...",
"editor-devtools/variables": "variáveis",
"editor-devtools/youtube": "Tutoriais no YouTube",
@@ -96,7 +96,7 @@
"pause/pause": "Pausar",
"color-picker/hex": "cor hex",
"remove-sprite-confirm/confirm": "Quer deletar esse ator?",
"block-count/blocks": "{num, plural, one {1 bloco} other {# blocos}}",
"block-count/blocks": "{num, plural, one {1 bloco} many {# blocos} other {# blocos}}",
"onion-skinning/behind": "Atrás",
"onion-skinning/front": "Na frente",
"onion-skinning/layering": "Camada",
+9
View File
@@ -52,6 +52,7 @@
"debugger/block-error": "ошибка %s",
"debugger/block-log": "логировать %s",
"debugger/block-warn": "предупредить %s",
"debugger/cannot-pause-player": "Блок точки остановки может быть использовать только в редакторе.",
"debugger/clear": "Очистить",
"debugger/clone-of": "Клон {sprite}",
"debugger/close": "Закрыть",
@@ -63,9 +64,11 @@
"debugger/export-desc": "Щелкните, удерживая Shift, чтобы настроить формат экспорта.",
"debugger/icon-error": "Ошибка",
"debugger/icon-warn": "Предупреждение",
"debugger/log-msg-broadcasted": "Передали «{broadcast}».",
"debugger/log-msg-clone-cap": "Не удалось создать клон '{sprite}', невозможно создать более 300 клонов.",
"debugger/log-msg-clone-created": "Создан клон '{sprite}'.",
"debugger/log-msg-flag-clicked": "Зелёный флаг нажат.",
"debugger/no-logs": "Нет логов для показа.",
"debugger/tab-logs": "Логи",
"debugger/unknown-sprite": "(неизвестный спрайт)",
"debugger/unpause": "Продолжить",
@@ -96,17 +99,23 @@
"gamepad/axes-a-b": "Оси {a}и{b}",
"gamepad/axis-arrows": "Клавиши стрелок",
"gamepad/axis-cursor": "Курсор",
"gamepad/axis-custom": "Настраиваемый",
"gamepad/axis-none": "Ничего",
"gamepad/browser-support": "Этот браузер и операционная система имеют известные баги, которые могут повлиять на использование этого аддона. Попробуйте др. браузер, если у Вас появятся проблемы.",
"gamepad/button-n": "Кнопка{n}",
"gamepad/config-header": "Этот комментарий содержит конфигурацию для поддержки геймпада в сторонних инструментах или сайтах по типу https://turbowarp.org/\nНе редактировать самим",
"gamepad/key-click": "Нажатие",
"gamepad/key-down": "Вниз",
"gamepad/key-enter": "Ввод",
"gamepad/key-left": "Налево",
"gamepad/key-none": "(ничего)",
"gamepad/key-right": "Направо",
"gamepad/key-space": "Пробел",
"gamepad/key-up": "Вверх",
"gamepad/keyinput-title": "Кликните и нажмите клавишу или кликните для смены кнопки. Esc для отмены. Backspace или Delete для очистки.",
"gamepad/no-controllers": "Не обнаружены контроллеры. Попробуйте подключить какой-нибудь контроллер и нажать на ней кнопку.",
"gamepad/settings": "Настройки геймпада",
"gamepad/store-in-project": "Хранить эти настройки в проекте для обхода конфигурации по умолчанию (Экспериментальный инструмент для создателей проектов)",
"folders/add-to-folder": "добавить к папке: {folder}",
"folders/closed-folder": "Папка",
"folders/confirm-backpack-folder": "Сохранить всю папку в рюкзак?",
+2
View File
@@ -144,11 +144,13 @@
"folders/create-folder": "ustvari mapo",
"folders/name-not-allowed": "Neveljavno ime mape",
"folders/name-prompt": "Ime mape:",
"folders/name-prompt-title": "Ustvari mapo",
"folders/open-folder": "Odprta",
"folders/remove-folder": "odstrani mapo",
"folders/remove-from-folder": "odstrani iz mape",
"folders/rename-folder": "preimenuj mapo",
"folders/rename-folder-prompt": "Preimenuj mapo v:",
"folders/rename-folder-prompt-title": "Preimenuj mapo",
"block-switching/control_forever": "ponavljaj",
"block-switching/control_if": "če",
"block-switching/control_if_else": "če ... sicer",
+2
View File
@@ -146,11 +146,13 @@
"folders/create-folder": "klasör oluştur",
"folders/name-not-allowed": "Geçersiz klasör adı",
"folders/name-prompt": "Klasörün adı:",
"folders/name-prompt-title": "Klasör Oluştur",
"folders/open-folder": "Açıldı",
"folders/remove-folder": "klasörü sil",
"folders/remove-from-folder": "klasörden sil",
"folders/rename-folder": "klasörü yeniden adlandır",
"folders/rename-folder-prompt": "Klasörün adını şununla değiştir: ",
"folders/rename-folder-prompt-title": "Klasörü Yeniden Adlandır",
"block-switching/control_forever": "sürekli",
"block-switching/control_if": "eğer",
"block-switching/control_if_else": "eğer... değilse",
+4 -2
View File
@@ -119,9 +119,11 @@ export default async function createLogsTab({ debug, addon, console, msg }) {
const downloadText = (filename, text) => {
downloadBlob(filename, new Blob([text], { type: "text/plain" }));
};
exportButton.element.addEventListener("click", (e) => {
exportButton.element.addEventListener("click", async (e) => {
const defaultFormat = "{sprite}: {content} ({type})";
const exportFormat = e.shiftKey ? prompt(msg("enter-format"), defaultFormat) : defaultFormat;
const exportFormat = e.shiftKey
? await addon.tab.prompt(msg("export"), msg("enter-format"), defaultFormat, { useEditorClasses: true })
: defaultFormat;
if (!exportFormat) return;
const file = logView.rows
.map(({ text, targetId, type, count }) =>
+23
View File
@@ -18,6 +18,9 @@
width: 565px;
height: 25rem;
}
[theme="dark"] .sa-debugger-interface {
background: var(--ui-primary);
}
.sa-debugger-interface h1 {
padding: 10px;
@@ -145,6 +148,10 @@
font-family: monospace;
color: #000;
}
[theme="dark"] .sa-debugger-log {
color: var(--text-primary);
border-color: rgba(255, 255, 255, 0.15);
}
.sa-debugger-log[data-type="warn"] {
border-color: hsl(50deg, 100%, 75%);
color: hsl(39deg 100% 18%);
@@ -155,6 +162,16 @@
color: red;
background-color: hsl(0deg 100% 95%);
}
[theme="dark"] .sa-debugger-log[data-type="warn"] {
border-color: hsl(50deg, 100%, 15%);
color: hsl(39deg 100% 90%);
background-color: hsl(50deg 100% 10%);
}
[theme="dark"] .sa-debugger-log[data-type="error"] {
border-color: hsl(0deg 100% 15%);
color: hsl(0deg 100% 77%);
background-color: hsl(0deg 100% 10%);
}
.sa-debugger-log-repeats {
background-color: hsla(163, 85%, 40%, 1);
@@ -163,6 +180,9 @@
padding: 1px 6px;
margin-right: 4px;
}
[theme="dark"] .sa-debugger-log-repeats {
color: var(--ui-primary);
}
.sa-debugger-log-icon {
width: 16px;
@@ -191,6 +211,9 @@
margin-right: 4px;
margin-left: auto;
}
[theme="dark"] .sa-debugger-log-link {
color: inherit;
}
.sa-debugger-log-link:hover {
text-decoration: underline;
color: #4d97ff;
@@ -249,7 +249,7 @@ export default async function ({ addon, global, console, msg }) {
// In persistence, we always want to re-apply the previous stroke and fill.
const toolInfo = getToolInfo();
if (!toolInfo) {
console.warn("unknown tool", newToolName);
console.warn("unknown tool", addon.tab.redux.state.scratchPaint.mode);
return;
}
if (toolInfo.resetsFill) {
+19 -7
View File
@@ -385,6 +385,7 @@ export default async function ({ addon, global, console, msg }) {
const [x, y] = PREVIEW_POSITIONS[i];
let src;
if (item.asset) {
// TW: We can be 100% certain that escaping here is unnecessary
src = item.asset.encodeDataURI();
} else if (item.costume && item.costume.asset) {
src = item.costume.asset.encodeDataURI();
@@ -395,7 +396,7 @@ export default async function ({ addon, global, console, msg }) {
result += `<image width="${width}" height="${height}" x="${x}" y="${y}" href="${src}"/>`;
}
}
result += '</svg>';
result += "</svg>";
return result;
};
@@ -754,8 +755,13 @@ export default async function ({ addon, global, console, msg }) {
fixSoundOrder();
}
};
const renameFolder = () => {
let newName = prompt(msg("rename-folder-prompt"), data.folder);
const renameFolder = async () => {
let newName = await addon.tab.prompt(
msg("rename-folder-prompt-title"),
msg("rename-folder-prompt"),
data.folder,
{ useEditorClasses: true }
);
// Prompt cancelled, do not rename
if (newName === null) {
return;
@@ -813,8 +819,13 @@ export default async function ({ addon, global, console, msg }) {
}
};
const createFolder = () => {
const name = prompt(msg("name-prompt"), getNameWithoutFolder(data.realName));
const createFolder = async () => {
const name = await addon.tab.prompt(
msg("name-prompt-title"),
msg("name-prompt"),
getNameWithoutFolder(data.realName),
{ useEditorClasses: true }
);
if (name === null) {
return;
}
@@ -1254,10 +1265,11 @@ export default async function ({ addon, global, console, msg }) {
const dragInfo = args[0];
const folderItems = dragInfo && dragInfo.payload && dragInfo.payload.sa_folder_items;
if (Array.isArray(folderItems)) {
if (confirm(msg("confirm-backpack-folder"))) {
addon.tab.confirm("", msg("confirm-backpack-folder"), { useEditorClasses: true }).then((result) => {
if (!result) return;
this.sa_queuedItems = folderItems;
this.sa_loadNextItem();
}
});
return;
}
return originalHandleDrop.call(this, ...args);
+2 -1
View File
@@ -20,7 +20,8 @@
flex-direction: column;
}
.sa-gamepad-popup-content {
background-color: white;
background-color: white !important;
color: #575e75 !important;
padding: 1.5rem 2.25rem;
height: 100%;
overflow-y: auto;
+20 -47
View File
@@ -225,62 +225,40 @@ export default async function ({ addon, global, console, msg }) {
const editorEl = editor.generateEditor();
handleEditorControllerChanged();
const close = () => {
modalOverlay.remove();
document.body.removeEventListener("click", handleClickOutside, true);
window.removeEventListener("keydown", handleKeyDown);
addon.self.removeEventListener("disabled", close);
editor.hide();
};
const handleClickOutside = (e) => {
if (!modalContentContainer.contains(e.target)) {
close();
}
};
const { backdrop, container, content, closeButton, remove } = addon.tab.createModal(msg("settings"), {
isOpen: true,
useEditorClasses: true,
});
const handleKeyDown = (e) => {
if (e.key === "Escape" && !e.target.closest("[data-accepting-input]")) {
close();
remove();
}
};
document.body.addEventListener("click", handleClickOutside, true);
backdrop.addEventListener("click", remove);
window.addEventListener("keydown", handleKeyDown);
addon.self.addEventListener("disabled", close);
addon.self.addEventListener("disabled", remove);
const modalOverlay = document.createElement("div");
modalOverlay.className = addon.tab.scratchClass("modal_modal-overlay", { others: "sa-gamepad-popup-outer" });
const modalContentContainer = document.createElement("div");
modalContentContainer.className = addon.tab.scratchClass("modal_modal-content", { others: "sa-gamepad-popup" });
backdrop.classList.add("sa-gamepad-popup-outer");
container.classList.add("sa-gamepad-popup");
const modalHeaderContainer = document.createElement("div");
modalHeaderContainer.className = addon.tab.scratchClass("modal_header");
const modalHeaderText = document.createElement("div");
modalHeaderText.className = addon.tab.scratchClass("modal_header-item", "modal_header-item-title");
modalHeaderText.textContent = msg("settings");
modalHeaderContainer.appendChild(modalHeaderText);
const closeContainer = document.createElement("div");
closeContainer.className = addon.tab.scratchClass("modal_header-item", "modal_header-item-close");
const closeButton = document.createElement("div");
closeButton.className = addon.tab.scratchClass("close-button_close-button", "close-button_large");
closeButton.tabIndex = "0";
closeButton.setAttribute("role", "button");
const closeImage = document.createElement("img");
closeImage.className = addon.tab.scratchClass("close-button_close-icon");
closeImage.src = _twGetAsset("/close.svg");
closeButton.appendChild(closeImage);
closeContainer.appendChild(closeButton);
modalHeaderContainer.appendChild(closeContainer);
closeButton.addEventListener("click", close);
closeButton.addEventListener("click", remove);
closeButton.addEventListener("keydown", (e) => {
if (e.key === "Enter" || e.key === " ") {
remove();
}
});
const modalContent = document.createElement("div");
modalContent.className = "sa-gamepad-popup-content";
content.classList.add("sa-gamepad-popup-content");
if (GamepadLib.browserHasBrokenGamepadAPI()) {
const warning = document.createElement("div");
warning.textContent = msg("browser-support");
warning.className = "sa-gamepad-browser-support-warning";
modalContent.appendChild(warning);
content.appendChild(warning);
}
modalContent.appendChild(editorEl);
content.appendChild(editorEl);
const storeSettingsLabel = document.createElement("label");
storeSettingsLabel.className = "sa-gamepad-store-settings";
@@ -290,12 +268,7 @@ export default async function ({ addon, global, console, msg }) {
storeSettingsCheckbox.checked = shouldStoreSettingsInProject;
storeSettingsCheckbox.addEventListener("change", handleStoreSettingsCheckboxChanged);
storeSettingsLabel.prepend(storeSettingsCheckbox);
modalContent.appendChild(storeSettingsLabel);
modalContentContainer.appendChild(modalHeaderContainer);
modalContentContainer.appendChild(modalContent);
modalOverlay.appendChild(modalContentContainer);
document.body.appendChild(modalOverlay);
content.appendChild(storeSettingsLabel);
editor.focus();
});
+1 -9
View File
@@ -9,18 +9,9 @@
margin-right: auto;
}
.mediaRecorderPopup [class*="modal_header-item-title"] {
margin: 0; /* required because there is no close button */
}
.mediaRecorderPopupContent {
background-color: white;
padding: 1.5rem 2.25rem;
}
[theme="dark"] .mediaRecorderPopupContent {
color: var(--text-primary);
background-color: var(--ui-primary);
}
.mediaRecorderPopup p {
font-size: 1rem;
@@ -49,6 +40,7 @@
margin-left: 0.5rem;
}
/* TW: Fixes cancel button in dark mode */
.mediaRecorderPopupButtons button:nth-of-type(1) {
color: black;
}
+16 -43
View File
@@ -16,28 +16,14 @@ export default async ({ addon, console, msg }) => {
reduxEvents: ["scratch-gui/mode/SET_PLAYER", "fontsLoaded/SET_FONTS_LOADED", "scratch-gui/locales/SELECT_LOCALE"],
});
const getOptions = () => {
const recordOption = Object.assign(document.createElement("div"), {
className: addon.tab.scratchClass("modal_modal-overlay"),
});
const recordOptionPopup = Object.assign(document.createElement("div"), {
className: addon.tab.scratchClass("modal_modal-content", { others: "mediaRecorderPopup" }),
dir: addon.tab.direction,
});
const recordOptionHeader = Object.assign(document.createElement("div"), {
className: addon.tab.scratchClass("modal_header"),
});
recordOptionHeader.appendChild(
Object.assign(document.createElement("div"), {
className: addon.tab.scratchClass("modal_header-item", "modal_header-item-title"),
textContent: msg("option-title"),
})
);
recordOptionPopup.appendChild(recordOptionHeader);
const recordOptionInner = Object.assign(document.createElement("div"), {
className: "mediaRecorderPopupContent",
const { backdrop, container, content, closeButton, remove } = addon.tab.createModal(msg("option-title"), {
isOpen: true,
useEditorClasses: true,
});
container.classList.add("mediaRecorderPopup");
content.classList.add("mediaRecorderPopupContent");
recordOptionInner.appendChild(
content.appendChild(
Object.assign(document.createElement("p"), {
textContent: msg("record-description"),
className: "recordOptionDescription",
@@ -60,7 +46,7 @@ export default async ({ addon, console, msg }) => {
});
recordOptionSeconds.appendChild(recordOptionSecondsLabel);
recordOptionSeconds.appendChild(recordOptionSecondsInput);
recordOptionInner.appendChild(recordOptionSeconds);
content.appendChild(recordOptionSeconds);
// Delay
const recordOptionDelay = document.createElement("p");
@@ -78,7 +64,7 @@ export default async ({ addon, console, msg }) => {
});
recordOptionDelay.appendChild(recordOptionDelayLabel);
recordOptionDelay.appendChild(recordOptionDelayInput);
recordOptionInner.appendChild(recordOptionDelay);
content.appendChild(recordOptionDelay);
// Audio
const recordOptionAudio = document.createElement("p");
@@ -94,7 +80,7 @@ export default async ({ addon, console, msg }) => {
});
recordOptionAudio.appendChild(recordOptionAudioInput);
recordOptionAudio.appendChild(recordOptionAudioLabel);
recordOptionInner.appendChild(recordOptionAudio);
content.appendChild(recordOptionAudio);
// Mic
const recordOptionMic = document.createElement("p");
@@ -109,7 +95,7 @@ export default async ({ addon, console, msg }) => {
});
recordOptionMic.appendChild(recordOptionMicInput);
recordOptionMic.appendChild(recordOptionMicLabel);
recordOptionInner.appendChild(recordOptionMic);
content.appendChild(recordOptionMic);
// Green flag
const recordOptionFlag = document.createElement("p");
@@ -124,7 +110,7 @@ export default async ({ addon, console, msg }) => {
});
recordOptionFlag.appendChild(recordOptionFlagInput);
recordOptionFlag.appendChild(recordOptionFlagLabel);
recordOptionInner.appendChild(recordOptionFlag);
content.appendChild(recordOptionFlag);
// Stop sign
const recordOptionStop = document.createElement("p");
@@ -147,7 +133,7 @@ export default async ({ addon, console, msg }) => {
});
recordOptionStop.appendChild(recordOptionStopInput);
recordOptionStop.appendChild(recordOptionStopLabel);
recordOptionInner.appendChild(recordOptionStop);
content.appendChild(recordOptionStop);
let resolvePromise = null;
const optionPromise = new Promise((resolve) => {
@@ -155,21 +141,12 @@ export default async ({ addon, console, msg }) => {
});
let handleOptionClose = null;
const handleClickOutside = (e) => {
if (recordOptionPopup.contains(e.target)) return;
handleOptionClose(null);
};
document.body.addEventListener("click", handleClickOutside, {
capture: true,
});
backdrop.addEventListener("click", () => handleOptionClose(null));
closeButton.addEventListener("click", () => handleOptionClose(null));
handleOptionClose = (value) => {
resolvePromise(value);
document.body.removeEventListener("click", handleClickOutside, {
capture: true,
});
recordOption.remove();
remove();
};
const buttonRow = Object.assign(document.createElement("div"), {
@@ -198,11 +175,7 @@ export default async ({ addon, console, msg }) => {
{ once: true }
);
buttonRow.appendChild(startButton);
recordOptionInner.appendChild(buttonRow);
recordOptionPopup.appendChild(recordOptionInner);
recordOption.appendChild(recordOptionPopup);
document.body.appendChild(recordOption);
content.appendChild(buttonRow);
return optionPromise;
};
+2 -3
View File
@@ -1,6 +1,5 @@
// This file is copied and pasted from ScratchAddons/addon-api/content-script/contextmenu.js
// I really want to rewrite this, but just looking at it fills me with dread.
// So that will happen later.
// This file is imported from
// https://github.com/ScratchAddons/ScratchAddons/blob/master/addon-api/content-script/contextmenu.js
/* eslint-disable */
+1 -1
View File
@@ -1 +1 @@
{"commit":"7fd130c"}
{"commit":"15a67ba"}