paintplus: vendor the app source and rename from EditmaskwithAI
Bring the full EditmaskwithAI application into the repo under paintplus/ (429 files) so the service is self-contained — the installer copies the vendored source to ~/docker/paintplus/src instead of cloning at runtime. Rename to PaintPlus (service + branding; app logic untouched): - services/editmaskwithai.sh -> services/paintplus.sh (register_service paintplus, install_paintplus, ~/docker/paintplus, Caddy paintplus:8000, Authelia option preserved) - container names -> paintplus across docker-compose*.yml; dev network -> paintplus-network - browser <title> -> "PaintPlus - AI Image Editor"; README heading -> PaintPlus with upstream provenance note - README utilities table: editmaskwithai -> paintplus Backend/frontend code (help strings referencing the old container name, the ai_photo_edit.db filename) is intentionally left as-is to avoid touching application logic. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nb2vJ8W7bHKx1JXVvpCraH
This commit is contained in:
@@ -0,0 +1,507 @@
|
||||
{
|
||||
"24-Points star": "",
|
||||
"A problem occurred while removing undo history. It": "Sorry, a problem occurred while removing the undo history.",
|
||||
"About": "",
|
||||
"Active": "",
|
||||
"Add Borders": "",
|
||||
"Aden": "",
|
||||
"Advanced": "",
|
||||
"All": "",
|
||||
"Alpha": "",
|
||||
"Alpha:": "",
|
||||
"Anonymous": "",
|
||||
"Anti aliasing": "",
|
||||
"Application markup may have changed,": "The application markup may have changed",
|
||||
"Arial": "",
|
||||
"Arrow": "",
|
||||
"ArrowDown": "",
|
||||
"ArrowLeft": "",
|
||||
"ArrowRight": "",
|
||||
"ArrowUp": "",
|
||||
"Author:": "",
|
||||
"Auto Adjust Colors": "Auto Adjust the Colours",
|
||||
"Auto Kerning": "",
|
||||
"Average:": "",
|
||||
"Backspace": "",
|
||||
"Base": "",
|
||||
"Basic": "",
|
||||
"Black and White": "",
|
||||
"Blue": "",
|
||||
"Blue channel:": "",
|
||||
"Blueprint": "",
|
||||
"Blur Radius:": "",
|
||||
"Blur Tool": "",
|
||||
"Blur power:": "",
|
||||
"Borders": "",
|
||||
"Bottom": "",
|
||||
"Bottom to Top": "",
|
||||
"Bounds:": "",
|
||||
"Box": "",
|
||||
"Box Blur": "",
|
||||
"Box blur": "",
|
||||
"Brightness": "",
|
||||
"Brightness:": "",
|
||||
"Bulge\/Pinch Tool": "",
|
||||
"Burn": "",
|
||||
"Can not animate 1 layer.": "Sorry, you can not animate just 1 layer, you need at least 2 layers.",
|
||||
"Can not find previous layer.": "Sorry, I can not find the previous layer.",
|
||||
"Cancel": "",
|
||||
"Canvas Size": "",
|
||||
"Canvas size": "",
|
||||
"Center": "Centre",
|
||||
"Center x:": "Centre x:",
|
||||
"Center y:": "Centre y:",
|
||||
"Center:": "Centre:",
|
||||
"Change Composition": "",
|
||||
"Change Layer Details": "",
|
||||
"Change Opacity": "",
|
||||
"Channel:": "",
|
||||
"Circle": "",
|
||||
"Clarendon": "",
|
||||
"Clear": "",
|
||||
"Clear Selection": "",
|
||||
"Clone Tool": "",
|
||||
"Clone count:": "",
|
||||
"Clone tool disabled for resized image. Sorry.": "Sorry, the clone tool is disabled for use on a resized asset (image). Undo the resize, clone the asset (image) then resize it again.",
|
||||
"Cloned edges": "",
|
||||
"Color #": "Colour #",
|
||||
"Color Corrections": "Colour Corrections",
|
||||
"Color Palette": "Colour Palette",
|
||||
"Color Zoom": "Colour Zoom",
|
||||
"Color alpha value can not be zero.": "The colour alpha value can not be zero. Please change it.",
|
||||
"Color to Alpha": "Colour to Alpha",
|
||||
"Color zoom": "Colour zoom",
|
||||
"Color:": "Colour:",
|
||||
"Colors": "Colours",
|
||||
"Colors:": "Colours:",
|
||||
"Common Filters": "",
|
||||
"Composition": "",
|
||||
"Composition:": "",
|
||||
"Content Fill": "",
|
||||
"Contrast": "",
|
||||
"Contrast:": "",
|
||||
"Convert to Raster": "Convert to a Raster",
|
||||
"Copy Selection": "",
|
||||
"Copy to Clipboard": "",
|
||||
"Copy:": "",
|
||||
"Courier": "",
|
||||
"Crop Tool": "",
|
||||
"Crop on rotated layer is not supported. Convert it to raster to continue.": "You can not crop a rotated layer. Please convert it to a raster to continue.",
|
||||
"Ctrl+A": "",
|
||||
"Ctrl+C": "",
|
||||
"Ctrl+V": "",
|
||||
"Ctrl+Y": "",
|
||||
"Ctrl+Z": "",
|
||||
"Ctrl-P": "",
|
||||
"Current": "",
|
||||
"Current Color Preview": "Current Colour Preview",
|
||||
"Custom": "",
|
||||
"Data URL": "",
|
||||
"Data URL:": "",
|
||||
"Decrease": "",
|
||||
"Decrease Color Depth": "Decrease Colour Depth",
|
||||
"Degree:": "",
|
||||
"Del": "",
|
||||
"Delete": "",
|
||||
"Delete Selection": "",
|
||||
"Denoise": "",
|
||||
"Desaturate Tool": "",
|
||||
"Description:": "",
|
||||
"Deutsch": "",
|
||||
"Differences": "",
|
||||
"Differences Down": "",
|
||||
"Direction:": "",
|
||||
"Dither": "",
|
||||
"Dithering:": "",
|
||||
"Dominant color:": "Dominant colour:",
|
||||
"Dot Screen": "",
|
||||
"Down": "",
|
||||
"Duplicate": "",
|
||||
"Duplicate Layer": "",
|
||||
"Dynamic": "",
|
||||
"Edge": "",
|
||||
"Edit": "",
|
||||
"Edit text...": "",
|
||||
"Effect browser": "",
|
||||
"Effects": "",
|
||||
"Effects browser": "",
|
||||
"Email:": "",
|
||||
"Emboss": "",
|
||||
"Empty selection": "",
|
||||
"Empty selection or type not image.": "You have selected nothing or the asset is not an image.",
|
||||
"Enable guides:": "",
|
||||
"Enable snap:": "",
|
||||
"End": "",
|
||||
"English": "English UK",
|
||||
"Enrich": "",
|
||||
"Enter": "",
|
||||
"Erase Tool": "",
|
||||
"Erase on rotate object is disabled. Sorry.": "Sorry you can not erase on rotated asset (object). Remove the rotation then you can delete it.",
|
||||
"Error": "",
|
||||
"Error connecting to service.": "",
|
||||
"Error loading the list of fonts from Google.": "There is an error loading the list of fonts from Google. Please report this.",
|
||||
"Error registering service worker": "",
|
||||
"Error: can not find filter:": "",
|
||||
"Error: can not find layer with id:": "",
|
||||
"Error: missing details event target": "",
|
||||
"Error: unknown layer type:": "",
|
||||
"Esc": "",
|
||||
"Escape": "",
|
||||
"Español": "",
|
||||
"Exit confirmation:": "",
|
||||
"Expand edges": "",
|
||||
"Exponent:": "",
|
||||
"Export": "",
|
||||
"External": "",
|
||||
"Factor:": "",
|
||||
"File": "",
|
||||
"File name:": "",
|
||||
"File size:": "",
|
||||
"Fill": "",
|
||||
"Fill Tool": "",
|
||||
"Fit": "",
|
||||
"Fit Window": "",
|
||||
"Flatten Image": "",
|
||||
"Flip": "",
|
||||
"FloydSteinberg-serpentine": "",
|
||||
"Font": "",
|
||||
"Français": "",
|
||||
"Full HD, 1080p": "",
|
||||
"Full Screen": "",
|
||||
"Full layers data": "",
|
||||
"Gap:": "",
|
||||
"Gaussian Blur": "",
|
||||
"Gif delay:": "",
|
||||
"Gingham": "",
|
||||
"GitHub:": "",
|
||||
"Gradient Radius:": "",
|
||||
"Grains": "",
|
||||
"Graphics Interchange Format": "",
|
||||
"Gray": "",
|
||||
"Grayscale": "",
|
||||
"Greek": "",
|
||||
"Green": "",
|
||||
"Green channel:": "",
|
||||
"Greyscale:": "",
|
||||
"Grid": "",
|
||||
"Grid on\/off": "",
|
||||
"Guides": "",
|
||||
"Guides enabled.": "",
|
||||
"H Radius:": "",
|
||||
"H. Align:": "",
|
||||
"Heatmap": "",
|
||||
"Height (%):": "",
|
||||
"Height:": "",
|
||||
"Help": "",
|
||||
"Helvetica": "",
|
||||
"Hermite": "",
|
||||
"Hex": "",
|
||||
"Histogram": "",
|
||||
"Histogram:": "",
|
||||
"Home": "",
|
||||
"Horizontal": "",
|
||||
"Horizontal Alignment": "",
|
||||
"Horizontal blur:": "",
|
||||
"Horizontal:": "",
|
||||
"Hue": "",
|
||||
"Hue Rotate": "",
|
||||
"Hue:": "",
|
||||
"Image": "",
|
||||
"Image data with multi-layers. Can be opened using miniPaint -": "You can open asset (image) data with multi-layers using miniPaint. -",
|
||||
"Impact": "",
|
||||
"Increase": "",
|
||||
"Information": "",
|
||||
"Inkwell": "",
|
||||
"Insert": "",
|
||||
"Insert guides": "",
|
||||
"Insert:": "",
|
||||
"Instagram Filters": "",
|
||||
"Invalid Hex Code": "",
|
||||
"Italiano": "",
|
||||
"JPG\/JPEG Format": "",
|
||||
"Kerning:": "",
|
||||
"Key-Points": "",
|
||||
"KeyU": "",
|
||||
"Keyboard Shortcuts": "",
|
||||
"Keyword:": "",
|
||||
"Lanczos": "",
|
||||
"Language": "",
|
||||
"Last modified": "",
|
||||
"Layer": "",
|
||||
"Layer details": "",
|
||||
"Layer is not compatible with resize": "Sorry, this layer is not compatible with resize",
|
||||
"Layer is vector, convert it to raster to apply this tool.": "Sorry this layer is a vector, please convert it to a raster to apply this tool. (Layer, Convert to a Raster)",
|
||||
"Layers": "",
|
||||
"Layers:": "",
|
||||
"Left": "",
|
||||
"Left to Right": "",
|
||||
"Level:": "",
|
||||
"Levels:": "",
|
||||
"Lietuvių": "",
|
||||
"Lo-fi": "",
|
||||
"Luminance:": "",
|
||||
"Luminosity": "",
|
||||
"Magic Eraser Tool": "",
|
||||
"Merge Down": "",
|
||||
"Merge Layers": "",
|
||||
"Merged": "",
|
||||
"Metrics": "",
|
||||
"Middle": "",
|
||||
"Missing at least 1 size parameter.": "Sorry, you are missing at least 1 size parameter.",
|
||||
"Missing permissions to write to Clipboard.cc": "",
|
||||
"Mode:": "",
|
||||
"Module function not found.": "",
|
||||
"Modules class not found:": "",
|
||||
"Monospace": "",
|
||||
"Mosaic": "",
|
||||
"Mouse:": "",
|
||||
"Move": "",
|
||||
"Move Layer": "",
|
||||
"Move down": "",
|
||||
"Move up": "",
|
||||
"Name:": "",
|
||||
"Needs at least 2 layers.": "You need at least 2 layers. Please make another layer using Layer, New or dragging a new asset (image) into the browser.",
|
||||
"Negative": "",
|
||||
"New": "",
|
||||
"New Brush Layer": "",
|
||||
"New Ellipse Layer": "",
|
||||
"New File": "",
|
||||
"New Gradient Layer": "",
|
||||
"New Layer": "",
|
||||
"New Line Layer": "",
|
||||
"New Pencil Layer": "",
|
||||
"New Rectangle Layer": "",
|
||||
"New Text Layer": "",
|
||||
"New file": "",
|
||||
"New from Selection": "",
|
||||
"New layer": "",
|
||||
"New width can not be smaller then current width": "You can not make the new width smaller then current width.",
|
||||
"Night Vision": "",
|
||||
"None": "",
|
||||
"Nothing is selected.": "Sorry, you have not selected anything, please try again.",
|
||||
"Offset X:": "",
|
||||
"Offset Y:": "",
|
||||
"Oil": "",
|
||||
"Ok": "",
|
||||
"Online image editor.": "",
|
||||
"Opacity": "",
|
||||
"Opacity:": "",
|
||||
"Open": "",
|
||||
"Open Data URL": "",
|
||||
"Open Directory": "",
|
||||
"Open File": "",
|
||||
"Open File Data URL": "",
|
||||
"Open File URL": "",
|
||||
"Open File Webcam": "",
|
||||
"Open Image": "",
|
||||
"Open JSON File": "",
|
||||
"Open Test Template": "",
|
||||
"Open URL": "",
|
||||
"Open data URL": "",
|
||||
"Open from Webcam": "",
|
||||
"Original Size": "",
|
||||
"PNGTOSVG - Convert Image to SVG": "",
|
||||
"PageDown": "",
|
||||
"PageUp": "",
|
||||
"Palette": "",
|
||||
"Parameter #1:": "",
|
||||
"Parameter #2:": "",
|
||||
"Paste": "",
|
||||
"Pencil": "",
|
||||
"Percentage:": "",
|
||||
"Pixels:": "",
|
||||
"Placeholder comment for color channels": "Placeholder comment for colour channels",
|
||||
"Placeholder comment for color picker": "Placeholder comment for colour picker",
|
||||
"Placeholder comment for color swatches": "Placeholder comment for colour swatches",
|
||||
"Portable Network Graphics": "",
|
||||
"Português": "",
|
||||
"Position:": "",
|
||||
"Power:": "",
|
||||
"Preview": "",
|
||||
"Previous": "",
|
||||
"Previous layer must be image, convert it to raster to apply this tool.": "The previous layer must be an asset (image), please convert it to a raster to apply this tool.",
|
||||
"Print": "",
|
||||
"Quality:": "",
|
||||
"Quick Load": "",
|
||||
"Quick Save": "",
|
||||
"REMOVE.BG - Remove Image Background": "",
|
||||
"Radial": "",
|
||||
"Radial gradient": "",
|
||||
"Radius:": "",
|
||||
"Range:": "",
|
||||
"Red": "",
|
||||
"Red channel:": "",
|
||||
"Redo": "",
|
||||
"Remove all": "",
|
||||
"Rename": "",
|
||||
"Rename Layer": "",
|
||||
"Rendered with errors.": "",
|
||||
"Rendering...": "",
|
||||
"Replace Color": "Replace Colour",
|
||||
"Replace color": "Replace colour",
|
||||
"Replacement:": "",
|
||||
"Report Issues": "",
|
||||
"Reset": "",
|
||||
"Resize": "",
|
||||
"Resize Boundary": "",
|
||||
"Resize Layer": "",
|
||||
"Resize Layers": "",
|
||||
"Resize Text Layer": "",
|
||||
"Resized as background": "",
|
||||
"Resized:": "",
|
||||
"Resolution:": "",
|
||||
"Restore Alpha": "",
|
||||
"Right": "",
|
||||
"Right angle:": "",
|
||||
"Right to Left": "",
|
||||
"Rotate": "",
|
||||
"Rotate Layer": "",
|
||||
"Rotate is not supported on this type of object. Convert to raster?": "Sorry, rotate is not supported on this type of asset (object), would you like to convert it to a raster?",
|
||||
"Rotate left": "",
|
||||
"Rotate:": "",
|
||||
"Ruler": "",
|
||||
"SQUOOSH - Compress and Compare Images": "",
|
||||
"Safe search:": "",
|
||||
"Saturate": "",
|
||||
"Saturation": "",
|
||||
"Saturation:": "",
|
||||
"Save (Export)": "",
|
||||
"Save As": "",
|
||||
"Save As Data URL": "",
|
||||
"Save as": "",
|
||||
"Save as type:": "",
|
||||
"Save layers:": "",
|
||||
"Scaling up is not supported in Hermite, using Lanczos.": "",
|
||||
"Scroll down": "",
|
||||
"Scroll up": "",
|
||||
"Search": "",
|
||||
"Search Images": "",
|
||||
"Search for Font": "",
|
||||
"Select All": "",
|
||||
"Select Text Layer": "",
|
||||
"Select object tool": "",
|
||||
"Selected": "",
|
||||
"Selection Tool": "",
|
||||
"Sensitivity:": "",
|
||||
"Separated": "",
|
||||
"Separated (original types)": "",
|
||||
"Sepia": "",
|
||||
"Set Image Size": "",
|
||||
"Settings": "",
|
||||
"Shadow": "",
|
||||
"Shadow:": "",
|
||||
"Shapes": "",
|
||||
"Sharpen": "",
|
||||
"Sharpen Tool": "",
|
||||
"Sharpen:": "",
|
||||
"Shortcut Key:": "",
|
||||
"Show \/ Hide": "",
|
||||
"Show file size:": "",
|
||||
"Simple": "",
|
||||
"Size is too big, max": "",
|
||||
"Size:": "",
|
||||
"Skip - layer must be image.": "Skip - layer must be an asset (image).",
|
||||
"Solarize": "",
|
||||
"Sorry, cold not load getUserMedia() data:": "Sorry, I could not load getUserMedia() data:",
|
||||
"Sorry, image could not be loaded.": "Sorry, the asset (image) could not be loaded.",
|
||||
"Sorry, image could not be loaded. Try copy image and paste it.": "Sorry, the asset (image) could not be loaded. Try copying the image and pasting it.",
|
||||
"Sorry, image is too big, max 5 MB.": "Sorry, the asset (image) is too big, max size is 5 MB.",
|
||||
"Source coordinates saved.": "",
|
||||
"Source is empty, right click on image or use long press to save source position.": "Sorry, the source is empty, right click on the asset (image) or use a long press to save source position.",
|
||||
"Sprites": "",
|
||||
"Square": "",
|
||||
"Stream:": "",
|
||||
"Strength:": "",
|
||||
"Strict": "",
|
||||
"TINYPNG - Compress PNG and JPEG": "",
|
||||
"Tab": "",
|
||||
"Tag Image File Format": "",
|
||||
"Tahoma": "",
|
||||
"Target:": "",
|
||||
"The quick brown fox jumps over the lazy dog.": "",
|
||||
"Theme": "",
|
||||
"There": "",
|
||||
"There are no layers behind.": "",
|
||||
"There is only 1 layer.": "",
|
||||
"Thick guides:": "",
|
||||
"This layer must contain an image. Please convert it to raster to apply this tool.": "Sorry, this layer must contain an asset (image). Please convert it to a raster to apply this tool.",
|
||||
"Tilt Shift": "",
|
||||
"Times New Roman": "",
|
||||
"Toaster": "",
|
||||
"Toggle": "",
|
||||
"Toggle Color Channels": "Toggle Colour Channels",
|
||||
"Toggle Color Picker": "Toggle Colour Picker",
|
||||
"Toggle Menu": "",
|
||||
"Toggle Swatches": "",
|
||||
"Tools": "",
|
||||
"Top": "",
|
||||
"Top to Bottom": "",
|
||||
"Total pixels:": "",
|
||||
"Translate": "",
|
||||
"Translate Layer": "",
|
||||
"Translate error, can not find dictionary:": "Translate error, I can not find the dictionary:",
|
||||
"Transparency background:": "",
|
||||
"Transparent:": "",
|
||||
"Trim": "",
|
||||
"Trim Layers": "",
|
||||
"Trim borders:": "",
|
||||
"Trim layer:": "",
|
||||
"Trim white color?": "Trim white colour?",
|
||||
"Type:": "",
|
||||
"Türkçe": "",
|
||||
"Undo": "",
|
||||
"Unique colors:": "Unique colours:",
|
||||
"Units": "",
|
||||
"Up": "",
|
||||
"Update": "",
|
||||
"Update Brush Layer": "",
|
||||
"Update Pencil Layer": "",
|
||||
"Update guides": "",
|
||||
"Use Ctrl+V keyboard shortcut to paste from Clipboard.": "You can use Ctrl+V on the keyboard shortcut to paste from the Clipboard.",
|
||||
"V Radius:": "",
|
||||
"V. Align:": "",
|
||||
"Valencia": "",
|
||||
"Verdana": "",
|
||||
"Version:": "",
|
||||
"Vertical": "",
|
||||
"Vertical Alignment": "",
|
||||
"Vertical blur:": "",
|
||||
"Vertical:": "",
|
||||
"Vibrance": "",
|
||||
"View": "",
|
||||
"Vignette": "",
|
||||
"ViliusL": "",
|
||||
"Vintage": "",
|
||||
"Webcam": "",
|
||||
"Webcam #": "",
|
||||
"Website:": "",
|
||||
"Weppy File Format": "",
|
||||
"Width (%):": "",
|
||||
"Width:": "",
|
||||
"Windows Bitmap": "",
|
||||
"Word": "",
|
||||
"Word + Letter": "",
|
||||
"Wrap At:": "",
|
||||
"Wrap:": "",
|
||||
"Wrong dimensions": "",
|
||||
"Wrong file type, must be image or json.": "This is the wrong file type, it must be an asset (image) or json.",
|
||||
"X end:": "",
|
||||
"X position:": "",
|
||||
"X start:": "",
|
||||
"X-Pro II": "",
|
||||
"Y end:": "",
|
||||
"Y position:": "",
|
||||
"Y start:": "",
|
||||
"You can also drag and drop items into browser.": "You can also drag and drop assets (items) into browser.",
|
||||
"Your browser does not support canvas or JavaScript is not enabled.": "",
|
||||
"Your browser does not support this format.": "",
|
||||
"Your search did not match any images.": "Your search did not match any assets (images).",
|
||||
"Zoom": "",
|
||||
"Zoom Blur": "",
|
||||
"Zoom In": "",
|
||||
"Zoom Out": "",
|
||||
"Zoom blur": "",
|
||||
"Zoom in": "",
|
||||
"Zoom out": "",
|
||||
"Zoom:": ""
|
||||
}
|
||||
Reference in New Issue
Block a user