Sfoglia il codice sorgente

translating script titles (en/fr/es/de)

Johann ELSASS 5 anni fa
parent
commit
e5e85e81ee

+ 58 - 13
lazpaint/umenu.pas

@@ -59,7 +59,7 @@ implementation
 uses UResourceStrings, BGRAUTF8, LCScaleDPI, ComCtrls, Graphics,
   StdCtrls, BGRAText, math, udarktheme,
   ugraph, BGRABitmapTypes, LCVectorialFillControl,
-  UPython;
+  UPython, UTranslation;
 
 { TMainFormMenu }
 
@@ -289,6 +289,41 @@ var
   item: TMenuItem;
   items: TStringList;
   i: Integer;
+  matchLang: boolean;
+
+  procedure RetrieveTitle(AText: string; ADefault: boolean; out ALangMatch: boolean);
+  var
+    posCloseBracket: SizeInt;
+    lang: String;
+  begin
+    If AText.StartsWith('#') then
+      Delete(AText, 1,1);
+    AText := AText.Trim;
+    ALangMatch := false;
+    if AText.StartsWith('(') then
+    begin
+      posCloseBracket := pos(')', AText);
+      if posCloseBracket > 0 then
+      begin
+        lang := copy(AText, 2, posCloseBracket-2);
+        delete(AText, 1, posCloseBracket);
+        AText := AText.Trim;
+        if lang = ActiveLanguage then
+          ALangMatch:= true;
+      end;
+    end else
+    begin
+      if not ADefault then exit;
+      if ActiveLanguage = DesignLanguage then ALangMatch:= true;
+    end;
+    if ALangMatch or ADefault then
+    begin
+      title := AText;
+      title := StringReplace(title, ' >', '>', [rfReplaceAll]);
+      title := StringReplace(title, '> ', '>', [rfReplaceAll]);
+    end;
+  end;
+
 begin
   if FInstalledScripts = nil then FInstalledScripts := TStringList.Create;
   path := TPythonScript.DefaultScriptDirectory;
@@ -303,18 +338,28 @@ begin
         begin
           assignFile(t, fullname);
           reset(t);
-          readln(t, header);
-          closefile(t);
-          if header.StartsWith('#') then
-          begin
-            title := header.Substring(1).Trim;
-            title := StringReplace(title, ' >', '>', [rfReplaceAll]);
-            title := StringReplace(title, '> ', '>', [rfReplaceAll]);
-            item := TMenuItem.Create(AMenu);
-            item.Caption := title;
-            item.Tag := FInstalledScripts.Add(fullname);
-            item.OnClick:=@Script_Click;
-            items.AddObject(title, item);
+          try
+            readln(t, header);
+            if header.StartsWith('#') then
+            begin
+              title := '';
+              RetrieveTitle(header, true, matchLang);
+              while not matchLang do
+              begin
+                readln(t, header);
+                if header.StartsWith('#') then
+                begin
+                  RetrieveTitle(header, false, matchLang);
+                end else break;
+              end;
+              item := TMenuItem.Create(AMenu);
+              item.Caption := title;
+              item.Tag := FInstalledScripts.Add(fullname);
+              item.OnClick:=@Script_Click;
+              items.AddObject(title, item);
+            end;
+          finally
+            closefile(t);
           end;
         end;
       until FindNextUTF8(searchRec)<>0;

+ 3 - 0
resources/scripts/channels_merge.py

@@ -1,4 +1,7 @@
 # Channels > Merge
+# (fr) Canaux > Fusionner
+# (es) Canales > Dividir HSL
+# (de) Kanäle > Zusammenführen
 from lazpaint import image, dialog, layer
 
 channels_id = None

+ 3 - 0
resources/scripts/channels_monochromatic.py

@@ -1,4 +1,7 @@
 # Channels > Make monochromatic
+# (fr) Canaux > Rendre monochrome
+# (es) Canales > Hacer monocromático
+# (de) Kanäle > Monochromatisch machen
 from lazpaint import image, dialog, layer, filters
 
 channel = layer.get_registry("split-channel")

+ 3 - 0
resources/scripts/channels_split_cmyk.py

@@ -1,4 +1,7 @@
 # Channels > Split CMYK
+# (fr) Canaux > Séparer CMJN
+# (es) Canales > Dividir CMYK
+# (de) Kanäle > CMYK teilen
 from lazpaint import image, dialog, layer, filters
 
 # check if it is a channel

+ 3 - 0
resources/scripts/channels_split_hsl.py

@@ -1,4 +1,7 @@
 # Channels > Split HSL
+# (fr) Canaux > Séparer TSL
+# (es) Canales > Dividir HSL
+# (de) Kanäle > HSL teilen
 from lazpaint import image, dialog, layer, filters
 
 # check if it is a channel

+ 3 - 0
resources/scripts/channels_split_rgb.py

@@ -1,4 +1,7 @@
 # Channels > Split RGB
+# (fr) Canaux > Séparer RVB
+# (es) Canales > Dividir RGB
+# (de) Kanäle > RVB teilen
 from lazpaint import image, dialog, layer, filters
 
 # check if it is a channel

+ 3 - 0
resources/scripts/display_version.py

@@ -1,4 +1,7 @@
 # Version
+# (fr) Version
+# (es) Versión
+# (de) Version
 
 from lazpaint import command, dialog
 import sys

+ 3 - 0
resources/scripts/layerfx_color_overlay.py

@@ -1,4 +1,7 @@
 # Layer effect > Color overlay
+# (fr) Effet de calque > Couleur superposée
+# (es) Efectos de capa > Color superpuesto
+# (de) Ebeneneffekte > Farbüberlagerung
 from lazpaint import image, colors, layer, filters
 
 color = colors.show_dialog(layer.get_registry("overlay-color"))

+ 3 - 0
resources/scripts/layerfx_innerlight.py

@@ -1,4 +1,7 @@
 # Layer effect > Inner light
+# (fr) Effet de calque > Lumière intérieure
+# (es) Efectos de capa > Luz interior
+# (de) Ebeneneffekte > Inneres Licht
 from lazpaint import dialog
 
 try:

+ 3 - 0
resources/scripts/layerfx_innershadow.py

@@ -1,4 +1,7 @@
 # Layer effect > Inner shadow
+# (fr) Effet de calque > Ombre intérieure
+# (es) Efectos de capa > Sombra interior
+# (de) Ebeneneffekte > Inneren Schatten
 from lazpaint import dialog
 
 try:

+ 3 - 0
resources/scripts/layerfx_shadow.py

@@ -1,4 +1,7 @@
 # Layer effect > Drop shadow
+# (fr) Effet de calque > Ombre portée
+# (es) Efectos de capa > Sombra paralela
+# (de) Ebeneneffekte > Schlagschatten
 from lazpaint import dialog
 
 try:

+ 3 - 0
resources/scripts/layerfx_stroke.py

@@ -1,4 +1,7 @@
 # Layer effect > Stroke
+# (fr) Effet de calque > Trait
+# (es) Efectos de capa > Trazo
+# (de) Ebeneneffekte > Strich
 from lazpaint import dialog
 
 try:

+ 3 - 0
resources/scripts/mask_from_alpha.py

@@ -1,4 +1,7 @@
 # Mask > Mask from alpha channel
+# (fr) Masque > Masque depuis canal alpha
+# (es) Máscara > Máscara desde canal alpha
+# (de) Maske > Maske vom Alphakanal
 from lazpaint import image, layer, filters, selection
 
 image.do_begin()

+ 3 - 0
resources/scripts/mask_new.py

@@ -1,4 +1,7 @@
 # Mask > New mask
+# (fr) Masque > Nouveau masque
+# (es) Máscara > Máscara nueva
+# (de) Maske > Neue Maske
 from lazpaint import image, layer, tools, colors, selection
 
 image.do_begin()

+ 3 - 0
resources/scripts/render_fractal_tree.py

@@ -1,4 +1,7 @@
 # Render > Fractal tree
+# (fr) Rendu > Arbre fractal
+# (es) Renderizar > Árbol fractal
+# (de) Rendering > Fraktaler Baum
 from lazpaint import tools, image, layer, dialog
 import math, random
 

+ 3 - 0
resources/scripts/render_lava.py

@@ -1,4 +1,7 @@
 # Render > Lava
+# (fr) Rendu > Lave
+# (es) Renderizar > Lava
+# (de) Rendering > Lava
 from lazpaint import image, layer, filters, colors
 
 image.do_begin()