diff --git a/addon/addon.xml b/addon/addon.xml
index 9b4f369..23ff847 100644
--- a/addon/addon.xml
+++ b/addon/addon.xml
@@ -10,8 +10,8 @@
video
- ViewIt Kodi Plugin
- Streaming-Addon für Streamingseiten: Suche, Staffeln/Episoden und Wiedergabe.
+ Suche und Wiedergabe fuer mehrere Quellen
+ Findet Titel in unterstuetzten Quellen und startet Filme oder Episoden direkt in Kodi.
icon.png
diff --git a/addon/default.py b/addon/default.py
index 0a1dc11..f5e8ff5 100644
--- a/addon/default.py
+++ b/addon/default.py
@@ -1128,7 +1128,7 @@ def _sync_update_version_settings() -> None:
def _show_root_menu() -> None:
handle = _get_handle()
_log("Root-Menue wird angezeigt.")
- _add_directory_item(handle, "Globale Suche", "search")
+ _add_directory_item(handle, "Suche in allen Quellen", "search")
plugins = _discover_plugins()
for plugin_name in sorted(plugins.keys(), key=lambda value: value.casefold()):
@@ -1143,7 +1143,7 @@ def _show_plugin_menu(plugin_name: str) -> None:
plugin_name = (plugin_name or "").strip()
plugin = _discover_plugins().get(plugin_name)
if not plugin:
- xbmcgui.Dialog().notification("Plugin", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Quelle", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -1167,7 +1167,7 @@ def _show_plugin_menu(plugin_name: str) -> None:
_add_directory_item(handle, "Serien", "series_catalog", {"plugin": plugin_name, "page": "1"}, is_folder=True)
if _plugin_has_capability(plugin, "popular_series"):
- _add_directory_item(handle, "Meist gesehen", "popular", {"plugin": plugin_name, "page": "1"}, is_folder=True)
+ _add_directory_item(handle, "Beliebte Serien", "popular", {"plugin": plugin_name, "page": "1"}, is_folder=True)
xbmcplugin.endOfDirectory(handle)
@@ -1176,7 +1176,7 @@ def _show_plugin_search(plugin_name: str) -> None:
plugin_name = (plugin_name or "").strip()
plugin = _discover_plugins().get(plugin_name)
if not plugin:
- xbmcgui.Dialog().notification("Suche", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Suche", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
_show_root_menu()
return
@@ -1197,7 +1197,7 @@ def _show_plugin_search_results(plugin_name: str, query: str) -> None:
query = (query or "").strip()
plugin = _discover_plugins().get(plugin_name)
if not plugin:
- xbmcgui.Dialog().notification("Suche", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Suche", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -1208,8 +1208,8 @@ def _show_plugin_search_results(plugin_name: str, query: str) -> None:
list_items: list[dict[str, object]] = []
canceled = False
try:
- with _progress_dialog("Suche läuft", f"{plugin_name} (1/1) starte…") as progress:
- canceled = progress(5, f"{plugin_name} (1/1) Suche…")
+ with _progress_dialog("Suche laeuft", f"{plugin_name} (1/1) startet...") as progress:
+ canceled = progress(5, f"{plugin_name} (1/1) Suche...")
search_coro = plugin.search_titles(query)
try:
results = _run_async(search_coro)
@@ -1240,7 +1240,7 @@ def _show_plugin_search_results(plugin_name: str, query: str) -> None:
if _needs_tmdb(meta_labels, meta_art, want_plot=show_plot, want_art=show_art):
tmdb_titles.append(title)
if show_tmdb and tmdb_titles and not canceled:
- canceled = progress(35, f"{plugin_name} (1/1) Metadaten…")
+ canceled = progress(35, f"{plugin_name} (1/1) Metadaten...")
tmdb_prefetched = _tmdb_labels_and_art_bulk(list(tmdb_titles))
total_results = max(1, len(results))
@@ -1415,7 +1415,7 @@ def _series_url_params(plugin: BasisPlugin, title: str) -> dict[str, str]:
def _show_search() -> None:
_log("Suche gestartet.")
dialog = xbmcgui.Dialog()
- query = dialog.input("Serientitel eingeben", type=xbmcgui.INPUT_ALPHANUM).strip()
+ query = dialog.input("Titel eingeben", type=xbmcgui.INPUT_ALPHANUM).strip()
if not query:
_log("Suche abgebrochen (leere Eingabe).", xbmc.LOGDEBUG)
_show_root_menu()
@@ -1430,18 +1430,18 @@ def _show_search_results(query: str) -> None:
_set_content(handle, "tvshows")
plugins = _discover_plugins()
if not plugins:
- xbmcgui.Dialog().notification("Suche", "Keine Plugins gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Suche", "Keine Quellen gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
list_items: list[dict[str, object]] = []
canceled = False
plugin_entries = list(plugins.items())
total_plugins = max(1, len(plugin_entries))
- with _progress_dialog("Suche läuft", "Suche gestartet…") as progress:
+ with _progress_dialog("Suche laeuft", "Suche startet...") as progress:
for plugin_index, (plugin_name, plugin) in enumerate(plugin_entries, start=1):
range_start = int(((plugin_index - 1) / float(total_plugins)) * 100)
range_end = int((plugin_index / float(total_plugins)) * 100)
- canceled = progress(range_start, f"{plugin_name} ({plugin_index}/{total_plugins}) Suche…")
+ canceled = progress(range_start, f"{plugin_name} ({plugin_index}/{total_plugins}) Suche...")
if canceled:
break
search_coro = plugin.search_titles(query)
@@ -1476,7 +1476,7 @@ def _show_search_results(query: str) -> None:
if show_tmdb and tmdb_titles:
canceled = progress(
range_start + int((range_end - range_start) * 0.35),
- f"{plugin_name} ({plugin_index}/{total_plugins}) Metadaten…",
+ f"{plugin_name} ({plugin_index}/{total_plugins}) Metadaten...",
)
if canceled:
break
@@ -1519,7 +1519,7 @@ def _show_search_results(query: str) -> None:
if canceled:
break
if not canceled:
- progress(100, "Suche abgeschlossen")
+ progress(100, "Suche fertig")
if canceled and not list_items:
xbmcgui.Dialog().notification("Suche", "Suche abgebrochen.", xbmcgui.NOTIFICATION_INFO, 2500)
xbmcplugin.endOfDirectory(handle)
@@ -1544,7 +1544,7 @@ def _show_seasons(plugin_name: str, title: str, series_url: str = "") -> None:
_log(f"Staffeln laden: {plugin_name} / {title}")
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Staffeln", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Staffeln", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
if series_url:
@@ -1634,7 +1634,7 @@ def _show_seasons(plugin_name: str, title: str, series_url: str = "") -> None:
seasons = plugin.seasons_for(title)
except Exception as exc:
_log(f"Staffeln laden fehlgeschlagen ({plugin_name}): {exc}", xbmc.LOGWARNING)
- xbmcgui.Dialog().notification("Staffeln", "Konnte Staffeln nicht laden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Staffeln", "Staffeln konnten nicht geladen werden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -1715,7 +1715,7 @@ def _show_episodes(plugin_name: str, title: str, season: str, series_url: str =
_log(f"Episoden laden: {plugin_name} / {title} / {season}")
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Episoden", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Episoden", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
if series_url:
@@ -1839,7 +1839,7 @@ def _show_genre_sources() -> None:
sources.append((plugin_name, plugin))
if not sources:
- xbmcgui.Dialog().notification("Genres", "Keine Genre-Quellen gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Genres", "Keine Quellen mit Genres gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -1859,7 +1859,7 @@ def _show_genres(plugin_name: str) -> None:
_log(f"Genres laden: {plugin_name}")
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Genres", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Genres", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
try:
@@ -1896,7 +1896,7 @@ def _show_categories(plugin_name: str) -> None:
_log(f"Kategorien laden: {plugin_name}")
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Kategorien", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Kategorien", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
getter = getattr(plugin, "categories", None)
@@ -1929,14 +1929,14 @@ def _show_category_titles_page(plugin_name: str, category: str, page: int = 1) -
handle = _get_handle()
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Kategorien", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Kategorien", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
page = max(1, int(page or 1))
paging_getter = getattr(plugin, "titles_for_genre_page", None)
if not callable(paging_getter):
- xbmcgui.Dialog().notification("Kategorien", "Paging nicht verfuegbar.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Kategorien", "Seitenwechsel nicht verfuegbar.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -2045,14 +2045,14 @@ def _show_genre_titles_page(plugin_name: str, genre: str, page: int = 1) -> None
handle = _get_handle()
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Genres", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Genres", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
page = max(1, int(page or 1))
paging_getter = getattr(plugin, "titles_for_genre_page", None)
if not callable(paging_getter):
- xbmcgui.Dialog().notification("Genres", "Paging nicht verfügbar.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Genres", "Seitenwechsel nicht verfuegbar.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -2163,12 +2163,12 @@ def _show_alpha_index(plugin_name: str) -> None:
_log(f"A-Z laden: {plugin_name}")
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("A-Z", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("A-Z", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
getter = getattr(plugin, "alpha_index", None)
if not callable(getter):
- xbmcgui.Dialog().notification("A-Z", "A-Z nicht verfügbar.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("A-Z", "A-Z nicht verfuegbar.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
try:
@@ -2196,14 +2196,14 @@ def _show_alpha_titles_page(plugin_name: str, letter: str, page: int = 1) -> Non
handle = _get_handle()
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("A-Z", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("A-Z", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
page = max(1, int(page or 1))
paging_getter = getattr(plugin, "titles_for_alpha_page", None)
if not callable(paging_getter):
- xbmcgui.Dialog().notification("A-Z", "Paging nicht verfügbar.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("A-Z", "Seitenwechsel nicht verfuegbar.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -2308,14 +2308,14 @@ def _show_series_catalog(plugin_name: str, page: int = 1) -> None:
plugin_name = (plugin_name or "").strip()
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Serien", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Serien", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
page = max(1, int(page or 1))
paging_getter = getattr(plugin, "series_catalog_page", None)
if not callable(paging_getter):
- xbmcgui.Dialog().notification("Serien", "Serien nicht verfügbar.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Serien", "Serienkatalog nicht verfuegbar.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -2548,7 +2548,7 @@ def _show_popular(plugin_name: str | None = None, page: int = 1) -> None:
if plugin_name:
plugin = _discover_plugins().get(plugin_name)
if plugin is None or not _plugin_has_capability(plugin, "popular_series"):
- xbmcgui.Dialog().notification("Beliebte Serien", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Beliebte Serien", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
try:
@@ -2667,13 +2667,13 @@ def _show_new_titles(plugin_name: str, page: int = 1) -> None:
plugin_name = (plugin_name or "").strip()
plugin = _discover_plugins().get(plugin_name)
if plugin is None or not _plugin_has_capability(plugin, "new_titles"):
- xbmcgui.Dialog().notification("Neue Titel", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Neue Titel", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
getter = getattr(plugin, "new_titles", None)
if not callable(getter):
- xbmcgui.Dialog().notification("Neue Titel", "Nicht verfügbar.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Neue Titel", "Diese Liste ist nicht verfuegbar.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -2715,7 +2715,7 @@ def _show_new_titles(plugin_name: str, page: int = 1) -> None:
if total == 0:
xbmcgui.Dialog().notification(
"Neue Titel",
- "Keine Titel gefunden (Basis-URL/Index prüfen).",
+ "Keine Titel gefunden. Bitte Basis-URL oder Index pruefen.",
xbmcgui.NOTIFICATION_INFO,
4000,
)
@@ -2806,13 +2806,13 @@ def _show_latest_episodes(plugin_name: str, page: int = 1) -> None:
plugin_name = (plugin_name or "").strip()
plugin = _discover_plugins().get(plugin_name)
if not plugin:
- xbmcgui.Dialog().notification("Neueste Folgen", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Neueste Folgen", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
getter = getattr(plugin, "latest_episodes", None)
if not callable(getter):
- xbmcgui.Dialog().notification("Neueste Folgen", "Nicht unterstützt.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Neueste Folgen", "Diese Quelle bietet das nicht an.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -2883,7 +2883,7 @@ def _show_genre_series_group(plugin_name: str, genre: str, group_code: str, page
page = max(1, int(page or 1))
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Genres", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Genres", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
xbmcplugin.endOfDirectory(handle)
return
@@ -3071,11 +3071,11 @@ def _run_update_check() -> None:
builtin("UpdateAddonRepos")
builtin("UpdateLocalAddons")
builtin("ActivateWindow(addonbrowser,addons://updates/)")
- xbmcgui.Dialog().notification("ViewIT Update", "Update-Pruefung gestartet.", xbmcgui.NOTIFICATION_INFO, 4000)
+ xbmcgui.Dialog().notification("Updates", "Update-Check gestartet.", xbmcgui.NOTIFICATION_INFO, 4000)
except Exception as exc:
_log(f"Update-Pruefung fehlgeschlagen: {exc}", xbmc.LOGWARNING)
try:
- xbmcgui.Dialog().notification("ViewIT Update", "Update-Pruefung fehlgeschlagen.", xbmcgui.NOTIFICATION_ERROR, 4000)
+ xbmcgui.Dialog().notification("Updates", "Update-Check fehlgeschlagen.", xbmcgui.NOTIFICATION_ERROR, 4000)
except Exception:
pass
@@ -3249,7 +3249,7 @@ def _play_episode(
_log(f"Play anfordern: {plugin_name} / {title} / {season} / {episode}")
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Play", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Wiedergabe", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
return
available_hosters: list[str] = []
@@ -3266,7 +3266,7 @@ def _play_episode(
if len(available_hosters) == 1:
selected_hoster = available_hosters[0]
else:
- selected_index = xbmcgui.Dialog().select("Hoster wählen", available_hosters)
+ selected_index = xbmcgui.Dialog().select("Hoster waehlen", available_hosters)
if selected_index is None or selected_index < 0:
_log("Play abgebrochen (kein Hoster gewählt).", xbmc.LOGDEBUG)
return
@@ -3284,8 +3284,8 @@ def _play_episode(
try:
link = plugin.stream_link_for(title, season, episode)
if not link:
- _log("Kein Stream-Link gefunden.", xbmc.LOGWARNING)
- xbmcgui.Dialog().notification("Play", "Kein Stream-Link gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ _log("Kein Stream gefunden.", xbmc.LOGWARNING)
+ xbmcgui.Dialog().notification("Wiedergabe", "Kein Stream gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
return
_log(f"Stream-Link: {link}", xbmc.LOGDEBUG)
final_link = plugin.resolve_stream_link(link) or link
@@ -3333,7 +3333,7 @@ def _play_episode_url(
_log(f"Play (URL) anfordern: {plugin_name} / {title} / {season_label} / {episode_label} / {episode_url}")
plugin = _discover_plugins().get(plugin_name)
if plugin is None:
- xbmcgui.Dialog().notification("Play", "Plugin nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Wiedergabe", "Quelle nicht gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
return
available_hosters: list[str] = []
@@ -3350,7 +3350,7 @@ def _play_episode_url(
if len(available_hosters) == 1:
selected_hoster = available_hosters[0]
else:
- selected_index = xbmcgui.Dialog().select("Hoster wählen", available_hosters)
+ selected_index = xbmcgui.Dialog().select("Hoster waehlen", available_hosters)
if selected_index is None or selected_index < 0:
_log("Play abgebrochen (kein Hoster gewählt).", xbmc.LOGDEBUG)
return
@@ -3367,12 +3367,12 @@ def _play_episode_url(
try:
link_getter = getattr(plugin, "stream_link_for_url", None)
if not callable(link_getter):
- xbmcgui.Dialog().notification("Play", "Nicht unterstützt.", xbmcgui.NOTIFICATION_INFO, 3000)
+ xbmcgui.Dialog().notification("Wiedergabe", "Diese Funktion wird von der Quelle nicht unterstuetzt.", xbmcgui.NOTIFICATION_INFO, 3000)
return
link = link_getter(episode_url)
if not link:
- _log("Kein Stream-Link gefunden.", xbmc.LOGWARNING)
- xbmcgui.Dialog().notification("Play", "Kein Stream-Link gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
+ _log("Kein Stream gefunden.", xbmc.LOGWARNING)
+ xbmcgui.Dialog().notification("Wiedergabe", "Kein Stream gefunden.", xbmcgui.NOTIFICATION_INFO, 3000)
return
_log(f"Stream-Link: {link}", xbmc.LOGDEBUG)
final_link = plugin.resolve_stream_link(link) or link
diff --git a/addon/resources/settings.xml b/addon/resources/settings.xml
index f9e466c..d75ec60 100644
--- a/addon/resources/settings.xml
+++ b/addon/resources/settings.xml
@@ -1,85 +1,85 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/docs/PLUGIN_DEVELOPMENT.md b/docs/PLUGIN_DEVELOPMENT.md
index 5133117..b167134 100644
--- a/docs/PLUGIN_DEVELOPMENT.md
+++ b/docs/PLUGIN_DEVELOPMENT.md
@@ -1,6 +1,6 @@
# ViewIT Plugin Entwicklung (`addon/plugins/*_plugin.py`)
-Diese Datei beschreibt den Vertrag zwischen Router und Plugins.
+Diese Datei zeigt, wie Plugins im Projekt aufgebaut sind und wie sie mit dem Router zusammenarbeiten.
## Grundlagen
- Ein Plugin ist eine Python Datei in `addon/plugins/`.