您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Interface translation for joinposter.com from Russian to Polish
当前为
// ==UserScript== // @name Joinposter.com Russian to Polish Translator // @namespace Violentmonkey Scripts // @match https://*.joinposter.com/* // @grant none // @version 0.1 // @author a0s // @description Interface translation for joinposter.com from Russian to Polish // @license MIT // ==/UserScript== const translations = { "Начало работы": "Rozpoczęcie pracy", "Статистика": "Statystyki", "Продажи": "Sprzedaż", "Клиенты": "Klienci", "Сотрудники": "Pracownicy", "Цехи": "Warsztaty", "Категории": "Kategorie", "Товары": "Produkty", "ABC-анализ": "Analiza ABC", "Чеки": "Paragony", "Отзывы": "Opinie", "Оплаты": "Płatności", "Налоги": "Podatki", "Финансы": "Finanse", "Транзакции": "Transakcje", "Cash flow": "Przepływy pieniężne", "Кассовые смены": "Zmiany kasowe", "Зарплата": "Wynagrodzenia", "Счета": "Konta", "P&L": "Zyski i straty", "Меню": "Menu", "Тех. карты": "Karty technologiczne", "Полуфабрикаты": "Półprodukty", "Ингредиенты": "Składniki", "Категории товаров и тех. карт": "Kategorie produktów i kart tech.", "Категории ингредиентов": "Kategorie składników", "QR-меню": "Menu QR", "Склад": "Magazyn", "Остатки": "Stany magazynowe", "Поставки": "Dostawy", "Переработки": "Przetwarzanie", "Перемещения": "Przemieszczenia", "Списания": "Straty", "Отчёт по движению": "Ruch magazynowy", "Инвентаризации": "Inwentaryzacje", "Поставщики": "Dostawcy", "Склады": "Magazyny", "Фасовки": "Pakowanie", "Маркетинг": "Marketing", "Группы клиентов": "Grupy klientów", "Программы лояльности": "Programy lojalnościowe", "Исключения": "Wyjątki", "Акции": "Promocje", "Доступ": "Dostęp", "Должности": "Stanowiska", "Кассы": "Kasy", "Заведения": "Placówki", "Интеграции": "Integracje", "Все приложения": "Wszystkie aplikacje", "Настройки": "Ustawienia", "Общие": "Ogólne", "Оплата подписки": "Płatność abonamentu", "Заказы": "Zamówienia", "Доставка": "Dostawa", "Безопасность": "Bezpieczeństwo", "Чек": "Paragon", "Рекомендуйте Poster": "Poleć Poster", "Корзина": "Kosz", "Столбцы": "Kolumny", "Экспорт": "Eksport", "Импорт": "Import", "Печать": "Drukuj", "Добавить": "Dodaj", "Фильтры": "Filtry", "Категория": "Kategoria", "Кофе": "Kawa", "Выпечка": "Wypieki", "Холодные напитки": "Napoje zimne", "букеты": "bukiety", "цветы поштучно": "kwiaty luzem", "композиции": "kompozycje", "Цех": "Warsztat", "Без цеха": "Bez warsztatu", "Мастерская": "Pracownia", "Клиентская зона": "Strefa klienta", "Налог": "Podatek", "Весовая тех. карта": "Techniczna karta wagowa", "Нет": "Nie", "Да": "Tak", "Заведение": "Lokal", "Babskie kwiaty": "Babskie kwiaty", // имя оставить без перевода "Отображаются на кассе": "Widoczne na kasie", "Применить": "Zastosuj", "Быстрый поиск": "Szybkie wyszukiwanie", "Фильтр": "Filtr", "Название": "Nazwa", "Выход": "Wydajność", "Себестоимость без НДС": "Koszt netto", "Цена": "Cena", "Наценка": "Marża", "Состав": "Skład", "Ред.": "Edytuj" }; (function () { 'use strict'; const sortedKeys = Object.keys(translations).sort((a, b) => b.length - a.length); function translateText(node) { if (node.nodeType === Node.TEXT_NODE) { let text = node.textContent; let changed = false; for (let key of sortedKeys) { if (text.includes(key)) { text = text.replaceAll(key, translations[key]); changed = true; } } if (changed) { node.textContent = text; } } else if (node.nodeType === Node.ELEMENT_NODE && node.tagName !== 'SCRIPT' && node.tagName !== 'STYLE') { for (let child of node.childNodes) { translateText(child); } } } // Перевести всё сразу translateText(document.body); // А теперь следим за появлением новых элементов const observer = new MutationObserver(mutations => { for (let mutation of mutations) { for (let node of mutation.addedNodes) { translateText(node); } } }); observer.observe(document.body, { childList: true, subtree: true }); })();