diff --git a/src/PresetsLoader.cpp b/src/PresetsLoader.cpp
index 21727ac..b8b9f12 100644
--- a/src/PresetsLoader.cpp
+++ b/src/PresetsLoader.cpp
@@ -75,8 +75,8 @@ bool CPresetLoader::Load(const std::string& path)
if (entry[0].isString())
preset.name = entry[0].asString();
else
- preset.name = kodi::GetLocalizedString(entry[0].asInt(), "Unknown preset name " +
- std::to_string(index + 1));
+ preset.name = kodi::addon::GetLocalizedString(entry[0].asInt(), "Unknown preset name " +
+ std::to_string(index + 1));
// Check shader file included within addon or outside and set by user
const std::string usedDirName = kodi::vfs::GetDirectoryName(entry[1].asString());
@@ -88,7 +88,7 @@ bool CPresetLoader::Load(const std::string& path)
else if (!usedDirName.empty())
preset.file = entry[1].asString();
else
- preset.file = kodi::GetAddonPath("resources/shaders/" + entry[1].asString());
+ preset.file = kodi::addon::GetAddonPath("resources/shaders/" + entry[1].asString());
if (!kodi::vfs::FileExists(preset.file))
throw kodi::tools::StringUtils::Format("On %s defined GLSL shader file '%s' not found",
@@ -108,7 +108,7 @@ bool CPresetLoader::Load(const std::string& path)
else if (!usedDirName.empty())
preset.channel[i] = entry[i + 2].asString();
else if (!entry[i + 2].asString().empty())
- preset.channel[i] = kodi::GetAddonPath("resources/" + entry[i + 2].asString());
+ preset.channel[i] = kodi::addon::GetAddonPath("resources/" + entry[i + 2].asString());
if (!preset.channel[i].empty() && preset.channel[i] != "audio")
{
@@ -151,8 +151,8 @@ bool CPresetLoader::Load(const std::string& path)
// Inform user that maybe their own preset list is wrong
if (!ret)
- kodi::QueueNotification(QUEUE_OWN_STYLE, kodi::GetLocalizedString(30030),
- kodi::GetLocalizedString(30031), "", 5000, true, 20000);
+ kodi::QueueNotification(QUEUE_OWN_STYLE, kodi::addon::GetLocalizedString(30030),
+ kodi::addon::GetLocalizedString(30031), "", 5000, true, 20000);
return ret;
}
diff --git a/src/main.cpp b/src/main.cpp
index efef80f..4de916e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -118,22 +118,22 @@ CVisualizationShadertoy::CVisualizationShadertoy()
m_magnitudeBuffer(new float[NUM_BANDS]()),
m_pcm(new float[AUDIO_BUFFER]())
{
- m_settingsUseOwnshader = kodi::GetSettingBoolean("ownshader");
+ m_settingsUseOwnshader = kodi::addon::GetSettingBoolean("ownshader");
if (m_settingsUseOwnshader)
m_currentPreset = -1;
else
- m_currentPreset = kodi::GetSettingInt("lastpresetidx");
+ m_currentPreset = kodi::addon::GetSettingInt("lastpresetidx");
- m_presetsJSONFile = kodi::GetSettingString("presetfile");
+ m_presetsJSONFile = kodi::addon::GetSettingString("presetfile");
if (m_presetsJSONFile.empty() || !kodi::vfs::FileExists(m_presetsJSONFile))
- m_presetsJSONFile = kodi::GetAddonPath("resources/presets.json");
+ m_presetsJSONFile = kodi::addon::GetAddonPath("resources/presets.json");
/* In case of preset file change, set current selected preset to 0 */
- if (kodi::GetSettingString("lastpresetfile") != m_presetsJSONFile)
+ if (kodi::addon::GetSettingString("lastpresetfile") != m_presetsJSONFile)
{
m_currentPreset = 0;
- kodi::SetSettingInt("lastpresetidx", m_currentPreset);
- kodi::SetSettingString("lastpresetfile", m_presetsJSONFile);
+ kodi::addon::SetSettingInt("lastpresetidx", m_currentPreset);
+ kodi::addon::SetSettingString("lastpresetfile", m_presetsJSONFile);
}
m_presets.Load(m_presetsJSONFile);
@@ -251,7 +251,7 @@ bool CVisualizationShadertoy::NextPreset()
{
m_currentPreset = (m_currentPreset + 1) % m_presets.GetPresetsAmount();
Launch(m_currentPreset);
- kodi::SetSettingInt("lastpresetidx", m_currentPreset);
+ kodi::addon::SetSettingInt("lastpresetidx", m_currentPreset);
}
return true;
}
@@ -262,7 +262,7 @@ bool CVisualizationShadertoy::PrevPreset()
{
m_currentPreset = (m_currentPreset - 1) % m_presets.GetPresetsAmount();
Launch(m_currentPreset);
- kodi::SetSettingInt("lastpresetidx", m_currentPreset);
+ kodi::addon::SetSettingInt("lastpresetidx", m_currentPreset);
}
return true;
}
@@ -273,7 +273,7 @@ bool CVisualizationShadertoy::LoadPreset(int select)
{
m_currentPreset = select % m_presets.GetPresetsAmount();
Launch(m_currentPreset);
- kodi::SetSettingInt("lastpresetidx", m_currentPreset);
+ kodi::addon::SetSettingInt("lastpresetidx", m_currentPreset);
}
return true;
}
@@ -284,7 +284,7 @@ bool CVisualizationShadertoy::RandomPreset()
{
m_currentPreset = (int)((std::rand() / (float)RAND_MAX) * m_presets.GetPresetsAmount());
Launch(m_currentPreset);
- kodi::SetSettingInt("lastpresetidx", m_currentPreset);
+ kodi::addon::SetSettingInt("lastpresetidx", m_currentPreset);
}
return true;
}
@@ -438,15 +438,15 @@ void CVisualizationShadertoy::Launch(int preset)
if (preset < 0)
{
- m_usedShaderFile = kodi::GetSettingString("shader");
- m_shaderTextures[0].audio = kodi::GetSettingBoolean("texture0-sound");
- m_shaderTextures[0].texture = kodi::GetSettingString("texture0");
- m_shaderTextures[1].audio = kodi::GetSettingBoolean("texture1-sound");
- m_shaderTextures[1].texture = kodi::GetSettingString("texture1");
- m_shaderTextures[2].audio = kodi::GetSettingBoolean("texture2-sound");
- m_shaderTextures[2].texture = kodi::GetSettingString("texture2");
- m_shaderTextures[3].audio = kodi::GetSettingBoolean("texture3-sound");
- m_shaderTextures[3].texture = kodi::GetSettingString("texture3");
+ m_usedShaderFile = kodi::addon::GetSettingString("shader");
+ m_shaderTextures[0].audio = kodi::addon::GetSettingBoolean("texture0-sound");
+ m_shaderTextures[0].texture = kodi::addon::GetSettingString("texture0");
+ m_shaderTextures[1].audio = kodi::addon::GetSettingBoolean("texture1-sound");
+ m_shaderTextures[1].texture = kodi::addon::GetSettingString("texture1");
+ m_shaderTextures[2].audio = kodi::addon::GetSettingBoolean("texture2-sound");
+ m_shaderTextures[2].texture = kodi::addon::GetSettingString("texture2");
+ m_shaderTextures[3].audio = kodi::addon::GetSettingBoolean("texture3-sound");
+ m_shaderTextures[3].texture = kodi::addon::GetSettingString("texture3");
}
else
{
@@ -525,7 +525,7 @@ void CVisualizationShadertoy::UnloadTextures()
void CVisualizationShadertoy::LoadPreset(const std::string& shaderPath)
{
UnloadPreset();
- std::string vertShadertoyShader = kodi::GetAddonPath("resources/shaders/main_shadertoy_" GL_TYPE_STRING ".vert.glsl");
+ std::string vertShadertoyShader = kodi::addon::GetAddonPath("resources/shaders/main_shadertoy_" GL_TYPE_STRING ".vert.glsl");
if (!m_shadertoyShader.LoadShaderFiles(vertShadertoyShader, shaderPath) ||
!m_shadertoyShader.CompileAndLink("", "", fsHeader, fsFooter))
{
@@ -550,8 +550,8 @@ void CVisualizationShadertoy::LoadPreset(const std::string& shaderPath)
m_state.uScale = glGetUniformLocation(shadertoyShader, "uScale");
m_state.attr_vertex_e = glGetAttribLocation(shadertoyShader, "vertex");
- std::string vertShader = kodi::GetAddonPath("resources/shaders/main_display_" GL_TYPE_STRING ".vert.glsl");
- std::string fraqShader = kodi::GetAddonPath("resources/shaders/main_display_" GL_TYPE_STRING ".frag.glsl");
+ std::string vertShader = kodi::addon::GetAddonPath("resources/shaders/main_display_" GL_TYPE_STRING ".vert.glsl");
+ std::string fraqShader = kodi::addon::GetAddonPath("resources/shaders/main_display_" GL_TYPE_STRING ".frag.glsl");
if (!m_displayShader.LoadShaderFiles(vertShader, fraqShader) ||
!m_displayShader.CompileAndLink())
{
@@ -683,7 +683,7 @@ float CVisualizationShadertoy::LinearToDecibels(float linear)
int CVisualizationShadertoy::DetermineBitsPrecision()
{
m_state.fbwidth = 32, m_state.fbheight = 26*10;
- LoadPreset(kodi::GetAddonPath("resources/shaders/main_test.frag.glsl"));
+ LoadPreset(kodi::addon::GetAddonPath("resources/shaders/main_test.frag.glsl"));
RenderTo(m_shadertoyShader.ProgramHandle(), m_state.effect_fb);
glFinish();
diff --git a/src/main.h b/src/main.h
index 55a894f..2f71574 100644
--- a/src/main.h
+++ b/src/main.h
@@ -17,7 +17,7 @@
#include "kissfft/kiss_fft.h"
-class ATTRIBUTE_HIDDEN CVisualizationShadertoy
+class ATTR_DLL_LOCAL CVisualizationShadertoy
: public kodi::addon::CAddonBase
, public kodi::addon::CInstanceVisualization
{
diff --git a/visualization.shadertoy/addon.xml.in b/visualization.shadertoy/addon.xml.in
index 826ec49..72beebf 100644
--- a/visualization.shadertoy/addon.xml.in
+++ b/visualization.shadertoy/addon.xml.in
@@ -1,7 +1,7 @@
@ADDON_DEPENDS@
@@ -26,9 +26,13 @@
resources/screenshot-05.jpg
resources/screenshot-06.jpg
+ Visualiseringer fra Shadertoy
Visualisierungen von Shadertoy
Visualizations from Shadertoy
+ 来自ShaderToy的可视化效果
+ Denne musikvisualisering er baseret på Shadertoy-baserede GPU-programmer.
Diese Musikvisualisierung basiert auf Shadertoy-basierten GPU-Programmen.
This music visualization is based on Shadertoy based GPU programs.
+ 次音乐可视化是基于基于Shadertoy的GPU程序。
diff --git a/visualization.shadertoy/changelog.txt b/visualization.shadertoy/changelog.txt
index 970a355..ef88735 100644
--- a/visualization.shadertoy/changelog.txt
+++ b/visualization.shadertoy/changelog.txt
@@ -1,3 +1,7 @@
+[B]20.2.0[/B]
+- Translation updates by Weblate
+- Kodi main API update to version 2.0.0
+
[B]20.1.1[/B]
- Fix possible compile error about missing jsoncpp include
diff --git a/visualization.shadertoy/resources/language/resource.language.da_dk/strings.po b/visualization.shadertoy/resources/language/resource.language.da_dk/strings.po
index 21458d6..1be1bf7 100644
--- a/visualization.shadertoy/resources/language/resource.language.da_dk/strings.po
+++ b/visualization.shadertoy/resources/language/resource.language.da_dk/strings.po
@@ -5,9 +5,9 @@
msgid ""
msgstr ""
"Project-Id-Version: KODI Addons\n"
-"Report-Msgid-Bugs-To: https://github.com/xbmc/visualization.shadertoy/issues\n"
+"Report-Msgid-Bugs-To: translations@kodi.tv\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"PO-Revision-Date: 2021-08-04 13:29+0000\n"
+"PO-Revision-Date: 2021-12-08 12:13+0000\n"
"Last-Translator: Christian Gade \n"
"Language-Team: Danish \n"
"Language: da_dk\n"
@@ -15,15 +15,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7.2\n"
+"X-Generator: Weblate 4.9.1\n"
msgctxt "Addon Summary"
msgid "Visualizations from Shadertoy"
-msgstr ""
+msgstr "Visualiseringer fra Shadertoy"
msgctxt "Addon Description"
msgid "This music visualization is based on Shadertoy based GPU programs."
-msgstr ""
+msgstr "Denne musikvisualisering er baseret på Shadertoy-baserede GPU-programmer."
#. Settings category
msgctxt "#30000"
@@ -153,42 +153,42 @@ msgstr "Kanal 3 som *.png"
#. Header text shown on notification dialog and on file selection dialog
msgctxt "#30030"
msgid "Shadertoy Visualization"
-msgstr ""
+msgstr "Shadertoy Visualisering"
#. Notification message shown on the screen when an incorrect preset list is given
msgctxt "#30031"
msgid "Cannot read the JSON file. Please check the formatting is correct and the file is available."
-msgstr ""
+msgstr "Kan ikke læse JSON-filen. Kontroller at formateringen er korrekt, og at filen er tilgængelig."
#. Settings value to open dialog for file selection
msgctxt "#30032"
msgid "Path to custom preset list"
-msgstr ""
+msgstr "Sti til brugerdefineret liste med forudindstillinger"
#. Help text related to setting string with id 30032
msgctxt "#30033"
msgid "Set the path to your custom JSON-formatted preset file. If no path is configured, the add-on will use the default preset file."
-msgstr ""
+msgstr "Indstil stien til din brugerdefinerede JSON-formaterede fil med forudindstillinger. Hvis der ikke er konfigureret nogen sti, bruger add-on'et standardfilen med forudindstillinger."
#. Settings group name
msgctxt "#30034"
msgid "Configure a single shader"
-msgstr ""
+msgstr "Konfigurer en enkelt shader"
#. Settings value to open a dialog for showing help about the preset file
msgctxt "#30035"
msgid "Show help about preset file"
-msgstr ""
+msgstr "Vis hjælp til den forudindstillede fil"
#. Help text related to setting string with id 30035
msgctxt "#30036"
msgid "Open to read about creating the JSON-formatted preset file."
-msgstr ""
+msgstr "Åben for at læse om oprettelse af den JSON-formaterede forudindstillede fil."
#. Header text on the help dialog within settings, related to the help text of string ID 30038
msgctxt "#30037"
msgid "Help about defining your own shaders in the JSON file"
-msgstr ""
+msgstr "Hjælp til at definere dine egne shaders i JSON-filen"
#. Help text about showing the JSON-formatted preset file in a text window.
#. Same text also on visualization.shadertoy/resources/presets.json.md, for here
@@ -225,3 +225,32 @@ msgid ""
"[ [COLOR red]\"Fractal Land by Kali\"[/COLOR], [COLOR red]\"fractalland.frag.glsl\"[/COLOR], [COLOR red]\"tex02.png\"[/COLOR], [COLOR red]\"tex15.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ]\n"
"][COLOR green]}[/COLOR][/COLOR]"
msgstr ""
+"[B][I]JSON-fil til brugerdefinerede shaderlister[/I][/B]\n"
+"\n"
+"Filen [B]presets.json[/B] bruges til at præcisere brugerdefinerede shadere.\n"
+"En brugerdefineret sti til shaderfilerne (GLSL) kan indtastes i indstillinger for dette add-on.\n"
+"\n"
+"Indholdet i [B]presets.json[/B] skal være:\n"
+"[I] 1.[/I] Navn på forudindstilling. Enten direkte indtastet navn eller defineret i [I]resources/language/.../strings.po[/I]\n"
+"[I] 2.[/I] GLSL shader der bruges. Hvis ingen brugerdefineret sti er indtastet, bruges standarden [B]resources/[/B]. Indstil brugerdefineret sti til './' for at bruge shaders fra samme stil som din [B]presets.json[/B]-fil.\n"
+"[I] 3.[/I] Kanalværdi value 0. Definerer den brugte tekstur (f.eks.. PNG-fil). Det kan også indstilles til \"audio\" for at sende relateret streamdata til teksturen. PNG- og GLSL-filerne skal placeres i samme mappe.\n"
+"[I] 4.[/I] Defination af kanalværdi 1.\n"
+"[I] 5.[/I] Defination af kanalværdi 2.\n"
+"[I] 6.[/I] Defination af kanalværdi 3.\n"
+"[I] 7.[/I] [I][Valgfri][/I] tilføj teksten [B]\"gl_only\"[/B] for kun at gøre denne forudindstilling tilgængelig for OpenGL.\n"
+"\n"
+"[B]Eksempel:[/B]\n"
+"[COLOR white][COLOR green]{[/COLOR] [COLOR blue]\"forudindstillinger\"[/COLOR]:[\n"
+"[COLOR gray]/* Standard metode brugt af selve add-on'et */[/COLOR]\n"
+"[ [COLOR red]\"The Disco Tunnel af poljere\"[/COLOR], [COLOR red]\"discotunnel.frag.glsl\"[/COLOR], [COLOR red]\"tex02.png\"[/COLOR], [COLOR red]\"tex15.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* Beskrivelse defineret i strings.po */[/COLOR]\n"
+"[ 30100, [COLOR red]\"audioeclipse.frag.glsl\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* Præciser brugerdefinerede filstier */[/COLOR]\n"
+"[ [COLOR red]\"Min egen\"[/COLOR], [COLOR red]\"/sti/til/glsl/min.frag.glsl\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"/sti/til/png-filer/mit_billede.png\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* >Forudindstilling kun tilgængelig for OpenGL (se 7) */[/COLOR]\n"
+"[ [COLOR red]\"Polar Beats af sauj123\"[/COLOR], [COLOR red]\"polarbeats.frag.glsl\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"gl_only\"[/COLOR] ],\n"
+"[COLOR gray]/* GLSL- og PNG-filer er i samme mappe som presets.json */[/COLOR]\n"
+"[ [COLOR red]\"En mere\"[/COLOR], [COLOR red]\"./another.frag.glsl\"[/COLOR], [COLOR red]\"./min_01.png\"[/COLOR], [COLOR red]\"./min_02.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* Vælg teksturbillede efter filnavn, brug standard \"resources/\"-mappe */[/COLOR]\n"
+"[ [COLOR red]\"Fractal Land af Kali\"[/COLOR], [COLOR red]\"fractalland.frag.glsl\"[/COLOR], [COLOR red]\"tex02.png\"[/COLOR], [COLOR red]\"tex15.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ]\n"
+"][COLOR green]}[/COLOR][/COLOR]"
diff --git a/visualization.shadertoy/resources/language/resource.language.de_de/strings.po b/visualization.shadertoy/resources/language/resource.language.de_de/strings.po
index 57d283d..be6152b 100644
--- a/visualization.shadertoy/resources/language/resource.language.de_de/strings.po
+++ b/visualization.shadertoy/resources/language/resource.language.de_de/strings.po
@@ -5,9 +5,9 @@
msgid ""
msgstr ""
"Project-Id-Version: KODI Addons\n"
-"Report-Msgid-Bugs-To: https://github.com/xbmc/visualization.shadertoy/issues\n"
+"Report-Msgid-Bugs-To: translations@kodi.tv\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"PO-Revision-Date: 2021-07-26 17:33+0000\n"
+"PO-Revision-Date: 2021-10-03 10:01+0000\n"
"Last-Translator: Kai Sommerfeld \n"
"Language-Team: German \n"
"Language: de_de\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7.2\n"
+"X-Generator: Weblate 4.8\n"
msgctxt "Addon Summary"
msgid "Visualizations from Shadertoy"
@@ -153,42 +153,42 @@ msgstr "Kanal 3 als *.png"
#. Header text shown on notification dialog and on file selection dialog
msgctxt "#30030"
msgid "Shadertoy Visualization"
-msgstr ""
+msgstr "Shadertoy-Visualisierung"
#. Notification message shown on the screen when an incorrect preset list is given
msgctxt "#30031"
msgid "Cannot read the JSON file. Please check the formatting is correct and the file is available."
-msgstr ""
+msgstr "JSON-Datei kann nicht gelesen werden. Bitte prüfen, ob die Formatierung korrekt und dass die Datei verfügabr ist."
#. Settings value to open dialog for file selection
msgctxt "#30032"
msgid "Path to custom preset list"
-msgstr ""
+msgstr "Pfad zur benutzerdefinierten Voreinstellungsliste"
#. Help text related to setting string with id 30032
msgctxt "#30033"
msgid "Set the path to your custom JSON-formatted preset file. If no path is configured, the add-on will use the default preset file."
-msgstr ""
+msgstr "Pfad für eine benutzerdefinierte JSON-formatierte Voreinstellungsdatei. Wenn kein Pfad konfiguriert ist, wird das Addon die Standard-Voreinstellungsdatei verwenden."
#. Settings group name
msgctxt "#30034"
msgid "Configure a single shader"
-msgstr ""
+msgstr "Einen einzelnen Shader konfigurieren"
#. Settings value to open a dialog for showing help about the preset file
msgctxt "#30035"
msgid "Show help about preset file"
-msgstr ""
+msgstr "Hilfe zu Voreinstellungsdatei anzeigen"
#. Help text related to setting string with id 30035
msgctxt "#30036"
msgid "Open to read about creating the JSON-formatted preset file."
-msgstr ""
+msgstr "Öffnen, um mehr über die Erstellung der JSON-formatierten Voreinstellungsdatei zu erfahren."
#. Header text on the help dialog within settings, related to the help text of string ID 30038
msgctxt "#30037"
msgid "Help about defining your own shaders in the JSON file"
-msgstr ""
+msgstr "Hilfe zur Definition eines benutzerdefinierten Shaders in der JSON-Datei"
#. Help text about showing the JSON-formatted preset file in a text window.
#. Same text also on visualization.shadertoy/resources/presets.json.md, for here
@@ -225,3 +225,32 @@ msgid ""
"[ [COLOR red]\"Fractal Land by Kali\"[/COLOR], [COLOR red]\"fractalland.frag.glsl\"[/COLOR], [COLOR red]\"tex02.png\"[/COLOR], [COLOR red]\"tex15.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ]\n"
"][COLOR green]}[/COLOR][/COLOR]"
msgstr ""
+"[B][I]JSON-Datei für benutzerdefinierte Shader-Listen[/I][/B]\n"
+"\n"
+"Benutzerdefinierte Shader werden in der Datei [B]presets.json[/B] definiert.\n"
+"In den Addon-Einstellungen kann ein benutzdefinierter Pfad für Shader-Dateien (GLSL) hinterlegt werden.\n"
+"\n"
+"Inhalt von [B]presets.json[/B] sollte sein:\n"
+"[I] 1.[/I] Name der Voreinstellung. Entweder fixe Zeichenkette oder definiert in [I]resources/language/.../strings.po[/I]\n"
+"[I] 2.[/I] Zu verwendender GLSL-Shader. Wenn kein benutzerdefinierter Pfad festgelegt ist, wird standardmässig [B]resources/[/B] verwendet. Benutzerdefinierten Pfad auf ‚./‘ setzen, um Shader aus dem Pfad zu nutzen, in dem die Datei [B]presets.json[/B] sich befindet.\n"
+"[I] 3.[/I] Kanalwert 0. Legt die zu nutzende Textur fest (e.g. PNG file). Kann auch auf „audio“ gesetzt werden, um in der Textur enthaltene Stream-Daten weiterzugeben. Die PNG- und GLSL-Dateien sollten sich im gleichen Verzeichnis befinden.\n"
+"[I] 4.[/I] Definition für Kanalwert 1.\n"
+"[I] 5.[/I] Definition für Kanalwert 2.\n"
+"[I] 6.[/I] Definition für Kanalwert 3.\n"
+"[I] 7.[/I] [I][Optional][/I] die Zeichenkette [B]„gl_only“[/B] anhängen, um diese Voreinstellung nur für OpenGL zu nutzen.\n"
+"\n"
+"[B]Beispiel:[/B]\n"
+"[COLOR white][COLOR green]{[/COLOR] [COLOR blue]\"presets\"[/COLOR]:[\n"
+"[COLOR gray]/* Default way used by the addon itself */[/COLOR]\n"
+"[ [COLOR red]\"The Disco Tunnel by poljere\"[/COLOR], [COLOR red]\"discotunnel.frag.glsl\"[/COLOR], [COLOR red]\"tex02.png\"[/COLOR], [COLOR red]\"tex15.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* Description defined in strings.po */[/COLOR]\n"
+"[ 30100, [COLOR red]\"audioeclipse.frag.glsl\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* Define custom file paths */[/COLOR]\n"
+"[ [COLOR red]\"My own one\"[/COLOR], [COLOR red]\"/path/to/glsl/my.frag.glsl\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"/path/to/pngs/my_image.png\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* Preset only available to OpenGL (see 7) */[/COLOR]\n"
+"[ [COLOR red]\"Polar Beats by sauj123\"[/COLOR], [COLOR red]\"polarbeats.frag.glsl\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"\"[/COLOR], [COLOR red]\"gl_only\"[/COLOR] ],\n"
+"[COLOR gray]/* GLSL and PNG files are in the same folder as presets.json */[/COLOR]\n"
+"[ [COLOR red]\"Another one\"[/COLOR], [COLOR red]\"./another.frag.glsl\"[/COLOR], [COLOR red]\"./my_01.png\"[/COLOR], [COLOR red]\"./my_02.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ],\n"
+"[COLOR gray]/* Select texture image by file name, use default \"resources/\" dir */[/COLOR]\n"
+"[ [COLOR red]\"Fractal Land by Kali\"[/COLOR], [COLOR red]\"fractalland.frag.glsl\"[/COLOR], [COLOR red]\"tex02.png\"[/COLOR], [COLOR red]\"tex15.png\"[/COLOR], [COLOR red]\"audio\"[/COLOR], [COLOR red]\"\"[/COLOR] ]\n"
+"][COLOR green]}[/COLOR][/COLOR]"
diff --git a/visualization.shadertoy/resources/language/resource.language.zh_cn/strings.po b/visualization.shadertoy/resources/language/resource.language.zh_cn/strings.po
index e87dae9..2c2145b 100644
--- a/visualization.shadertoy/resources/language/resource.language.zh_cn/strings.po
+++ b/visualization.shadertoy/resources/language/resource.language.zh_cn/strings.po
@@ -5,25 +5,25 @@
msgid ""
msgstr ""
"Project-Id-Version: KODI Addons\n"
-"Report-Msgid-Bugs-To: https://github.com/xbmc/visualization.shadertoy/issues\n"
+"Report-Msgid-Bugs-To: translations@kodi.tv\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"PO-Revision-Date: 2021-09-12 21:39+0000\n"
-"Last-Translator: taxigps \n"
+"PO-Revision-Date: 2021-11-04 08:45+0000\n"
+"Last-Translator: 撷星芒 \n"
"Language-Team: Chinese (China) \n"
"Language: zh_cn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8\n"
+"X-Generator: Weblate 4.8.1\n"
msgctxt "Addon Summary"
msgid "Visualizations from Shadertoy"
-msgstr ""
+msgstr "来自ShaderToy的可视化效果"
msgctxt "Addon Description"
msgid "This music visualization is based on Shadertoy based GPU programs."
-msgstr ""
+msgstr "次音乐可视化是基于基于Shadertoy的GPU程序。"
#. Settings category
msgctxt "#30000"
@@ -33,162 +33,162 @@ msgstr "常规"
#. Settings category
msgctxt "#30001"
msgid "iChannel 0"
-msgstr ""
+msgstr "iChannel 0"
#. Settings category
msgctxt "#30002"
msgid "iChannel 1"
-msgstr ""
+msgstr "iChannel 1"
#. Settings category
msgctxt "#30003"
msgid "iChannel 2"
-msgstr ""
+msgstr "iChannel 2"
#. Settings category
msgctxt "#30004"
msgid "iChannel 3"
-msgstr ""
+msgstr "iChannel 3"
#. Boolean settings value to enable and allow selection of a ".glsl" file and related textures
msgctxt "#30010"
msgid "Choose one yourself"
-msgstr ""
+msgstr "自己选一个"
#. Help text related to setting string with id 30010
msgctxt "#30011"
msgid "Use your own shadertoy. Attention: Some shaders are not supported by some GPU's in performance!"
-msgstr ""
+msgstr "使用自己的shadertoy。注意:一些GPU在性能中不支持一些着色器!"
#. To open the file selection dialog about *.glsl files, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30012"
msgid "Shadertoy file"
-msgstr ""
+msgstr "Shadertoy文件"
#. Help text related to setting string with id 30012
msgctxt "#30013"
msgid "Shader as *.glsl"
-msgstr ""
+msgstr "着色器为 *.glsl"
#. Boolean value to use channel 0 as audio, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30014"
msgid "Channel 0 as audio"
-msgstr ""
+msgstr "通道0为音频"
#. Help text related to setting string with id 30014
msgctxt "#30015"
msgid "Use audio stream data on channel 0"
-msgstr ""
+msgstr "在通道0上使用音频流数据"
#. Texture image to use, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30016"
msgid "Channel 0 texture image"
-msgstr ""
+msgstr "通道0纹理图像"
#. Help text related to setting string with id 30016
msgctxt "#30017"
msgid "Channel 0 as *.png"
-msgstr ""
+msgstr "通道0为* .png"
#. Boolean value to use channel 1 as audio, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30018"
msgid "Channel 1 as audio"
-msgstr ""
+msgstr "通道1作为音频"
#. Help text related to setting string with id 30018
msgctxt "#30019"
msgid "Use audio stream data on channel 1"
-msgstr ""
+msgstr "在通道1上使用音频流数据"
#. Texture image to use, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30020"
msgid "Channel 1 texture image"
-msgstr ""
+msgstr "通道1纹理图像"
#. Help text related to setting string with id 30020
msgctxt "#30021"
msgid "Channel 1 as *.png"
-msgstr ""
+msgstr "通道1为* .png"
#. Boolean value to use channel 2 as audio, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30022"
msgid "Channel 2 as audio"
-msgstr ""
+msgstr "通道2作为音频"
#. Help text related to setting string with id 30022
msgctxt "#30023"
msgid "Use audio stream data on channel 2"
-msgstr ""
+msgstr "在通道2上使用音频流数据"
#. Texture image to use, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30024"
msgid "Channel 2 texture image"
-msgstr ""
+msgstr "通道2纹理图像"
#. Help text related to setting string with id 30024
msgctxt "#30025"
msgid "Channel 2 as *.png"
-msgstr ""
+msgstr "通道2为* .png"
#. Boolean value to use channel 3 as audio, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30026"
msgid "Channel 3 as audio"
-msgstr ""
+msgstr "通道3作为音频"
#. Help text related to setting string with id 30026
msgctxt "#30027"
msgid "Use audio stream data on channel 3"
-msgstr ""
+msgstr "在通道3上使用音频流数据"
#. Texture image to use, if the setting "Choose one yourself"(30010) above is enabled.
msgctxt "#30028"
msgid "Channel 3 texture image"
-msgstr ""
+msgstr "通道3纹理图像"
#. Help text related to setting string with id 30028
msgctxt "#30029"
msgid "Channel 3 as *.png"
-msgstr ""
+msgstr "通道3为* .png"
#. Header text shown on notification dialog and on file selection dialog
msgctxt "#30030"
msgid "Shadertoy Visualization"
-msgstr ""
+msgstr "Shadertoy可视化"
#. Notification message shown on the screen when an incorrect preset list is given
msgctxt "#30031"
msgid "Cannot read the JSON file. Please check the formatting is correct and the file is available."
-msgstr ""
+msgstr "无法读取JSON文件。请检查格式是否正确,文件是否可用。"
#. Settings value to open dialog for file selection
msgctxt "#30032"
msgid "Path to custom preset list"
-msgstr ""
+msgstr "定制预设列表的路径"
#. Help text related to setting string with id 30032
msgctxt "#30033"
msgid "Set the path to your custom JSON-formatted preset file. If no path is configured, the add-on will use the default preset file."
-msgstr ""
+msgstr "设置自定义JSON格式预设文件的路径。如果未配置路径,加载项将使用默认预设文件。"
#. Settings group name
msgctxt "#30034"
msgid "Configure a single shader"
-msgstr ""
+msgstr "配置单个着色器"
#. Settings value to open a dialog for showing help about the preset file
msgctxt "#30035"
msgid "Show help about preset file"
-msgstr ""
+msgstr "显示有关预设文件的帮助"
#. Help text related to setting string with id 30035
msgctxt "#30036"
msgid "Open to read about creating the JSON-formatted preset file."
-msgstr ""
+msgstr "打开阅读关于创建JSON格式预设文件的帮助。"
#. Header text on the help dialog within settings, related to the help text of string ID 30038
msgctxt "#30037"
msgid "Help about defining your own shaders in the JSON file"
-msgstr ""
+msgstr "关于在JSON文件中定义自己的着色器的帮助"
#. Help text about showing the JSON-formatted preset file in a text window.
#. Same text also on visualization.shadertoy/resources/presets.json.md, for here