浏览代码

translate default layer name

Johann ELSASS 4 年之前
父节点
当前提交
d4d3c2d72b

+ 1 - 0
lazpaint/image/uimage.pas

@@ -1875,6 +1875,7 @@ begin
       layeredBmp.LayerName[layeredBmp.AddOwnedLayer(mask,boXor)] := 'Xor';
     end;
   end;
+  if ACaption = '' then ACaption := rsLayer+'1';
   layeredBmp.LayerName[0] := ACaption;
   layeredBmp.LayerOpacity[0] := AOpacity;
   Assign(layeredBmp,True,AUndoable);

+ 34 - 2
lazpaint/image/uimagestate.pas

@@ -63,6 +63,7 @@ type
     procedure SetOnActionDone(AValue: TNotifyEvent);
     procedure SetOnActionProgress(AValue: TLayeredActionProgressEvent);
     procedure SetSelectionMask(AValue: TBGRABitmap);
+    function MakeLayerName: string;
   public
     SelectionLayer: TBGRABitmap;
     selectedLayerId: integer;
@@ -555,6 +556,30 @@ begin
   DiscardSelectionMaskBoundsCompletely;
 end;
 
+function TImageState.MakeLayerName: string;
+
+  function LayerNameUsed(AName: string): Boolean;
+  var
+    j: Integer;
+  begin
+    if LayeredBitmap = nil then
+      result := false else
+    begin
+      for j := 0 to NbLayers-1 do
+        if trim(LayerName[j]) = trim(AName) then exit(true);
+      result := false;
+    end;
+  end;
+
+var i: integer;
+begin
+  for i := 1 to 1000 do
+  begin
+    result := rsLayer + inttostr(i);
+    if not LayerNameUsed(result) and not LayerNameUsed('Layer' + inttostr(i)) then exit;
+  end;
+end;
+
 procedure TImageState.SetLayerBitmap(layer: integer; ABitmap: TBGRABitmap;
   AOwned: boolean);
 begin
@@ -680,6 +705,7 @@ end;
 procedure TImageState.Assign(AValue: TBGRABitmap; AOwned: boolean);
 var
   xorMask: TBGRABitmap;
+  idx: Integer;
 begin
   if LayeredBitmap = nil then
     SetLayeredBitmap(TBGRALayeredBitmap.Create);
@@ -688,7 +714,8 @@ begin
   LayeredBitmap.SetSize(AValue.Width,AValue.Height);
   if AOwned then
   begin
-    LayeredBitmap.AddOwnedLayer(AValue);
+    idx := LayeredBitmap.AddOwnedLayer(AValue);
+    LayeredBitmap.LayerName[idx] := MakeLayerName;
     if Assigned(AValue.XorMask) then
     begin
       xorMask := TBGRABitmap.Create(AValue.XorMask);
@@ -700,7 +727,8 @@ begin
   end
   else
   begin
-    LayeredBitmap.AddLayer(AValue);
+    idx := LayeredBitmap.AddLayer(AValue);
+    LayeredBitmap.LayerName[idx] := MakeLayerName;
     if Assigned(AValue.XorMask) then
     begin
       xorMask := AValue.XorMask.Duplicate as TBGRABitmap;
@@ -858,12 +886,14 @@ function TImageState.AddNewLayer(ALayer: TBGRABitmap; AName: string; AOffset: TP
 var
   idxLayer: Integer;
 begin
+  if AName = '' then AName := MakeLayerName;
   //no undo if no previous image
   if LayeredBitmap = nil then
   begin
     SetLayeredBitmap(TBGRALayeredBitmap.Create);
     idxLayer := LayeredBitmap.AddOwnedLayer(ALayer, ABlendOp, AOpacity);
     LayeredBitmap.LayerOffset[idxLayer] := AOffset;
+    LayeredBitmap.LayerName[idxLayer] := AName;
     result := nil;
   end else
   begin
@@ -877,12 +907,14 @@ function TImageState.AddNewLayer(AOriginal: TBGRALayerCustomOriginal;
 var
   idx: Integer;
 begin
+  if AName = '' then AName := MakeLayerName;
   //no undo if no previous image
   if LayeredBitmap = nil then
   begin
     SetLayeredBitmap(TBGRALayeredBitmap.Create);
     idx := LayeredBitmap.AddLayerFromOwnedOriginal(AOriginal, ABlendOp, AOpacity);
     LayeredBitmap.LayerOriginalMatrix[idx] := AMatrix;
+    LayeredBitmap.LayerName[idx] := AName;
     LayeredBitmap.RenderLayerFromOriginal(idx);
     result := nil;
   end else

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.ar.po

@@ -3174,6 +3174,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "طبقات"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "طبقة"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.bg.po

@@ -3144,6 +3144,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Слоеве"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "слой"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.cs.po

@@ -3184,6 +3184,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Vrstvy"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Vrstva"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.de.po

@@ -3188,6 +3188,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Ebenen"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Ebene"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.es.po

@@ -3175,6 +3175,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Capas"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Capa"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.fi.po

@@ -3163,6 +3163,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Kerrokset"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Kerros"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.fr.po

@@ -3185,6 +3185,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Calques"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Calque"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 6 - 1
lazpaint/release/bin/i18n/lazpaint.ja.po

@@ -3171,7 +3171,12 @@ msgstr ""
 #: uresourcestrings.rslayers
 msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
-msgstr ""
+msgstr "レイヤー"
+
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "層"
 
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.kab.po

@@ -3171,6 +3171,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Tissiyin"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Tissi"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.lv.po

@@ -3187,6 +3187,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Slaņi"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Slaņim"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.nl.po

@@ -3203,6 +3203,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Lagen"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Laag"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.po

@@ -3164,6 +3164,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr ""
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr ""
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.pt_BR.po

@@ -3189,6 +3189,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Camadas"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Camada"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.ru.po

@@ -3168,6 +3168,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Слои"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Слой"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.sv.po

@@ -3157,6 +3157,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "Lager"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "Lager"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 0
lazpaint/release/bin/i18n/lazpaint.zh_CN.po

@@ -3174,6 +3174,11 @@ msgctxt "uresourcestrings.rslayers"
 msgid "Layers"
 msgstr "图层"
 
+#: uresourcestrings.rslayer
+msgctxt "uresourcestrings.rslayer"
+msgid "Layer"
+msgstr "层"
+
 #: uresourcestrings.rslazpaint
 msgctxt "uresourcestrings.rslazpaint"
 msgid "LazPaint"

+ 5 - 3
lazpaint/uloadimage.pas

@@ -19,7 +19,7 @@ implementation
 uses FileUtil, BGRAAnimatedGif, Graphics, UMultiImage,
   BGRAReadLzp, LCLProc, BGRABitmapTypes, BGRAReadPng,
   UFileSystem, BGRAIconCursor, BGRAReadTiff,
-  Dialogs, math, URaw;
+  Dialogs, math, URaw, UResourceStrings;
 
 function LoadIcoEntryFromStream(AStream: TStream; AIndex: integer): TImageEntry;
 var ico: TBGRAIconCursor;
@@ -193,11 +193,13 @@ end;
 function LoadSVGImageUTF8(AFilename: string): TBGRALayeredBitmap;
 var
   svg: TBGRALayerSVGOriginal;
+  idx: Integer;
 begin
   svg := LoadSVGOriginalUTF8(AFilename);
   result := TBGRALayeredBitmap.Create(ceil(svg.Width),ceil(svg.Height));
-  result.AddLayerFromOwnedOriginal(svg);
-  result.RenderLayerFromOriginal(0);
+  idx := result.AddLayerFromOwnedOriginal(svg);
+  result.LayerName[idx] := rsLayer+'1';
+  result.RenderLayerFromOriginal(idx);
 end;
 
 function LoadSVGOriginalUTF8(AFilename: string): TBGRALayerSVGOriginal;

+ 1 - 0
lazpaint/uresourcestrings.pas

@@ -135,6 +135,7 @@ resourcestring
   rsHotSpot='Hot spot';
   rsEntries='Entries';
   rsLayers='Layers';
+  rsLayer='Layer';
   rsFrames='Frames';
   rsLoopCount='Loop count';
   rsInfinity='Infinity';