Merge pull request #4 from viliusle/master

Backfill
This commit is contained in:
Giwayume 2020-10-13 21:47:30 -04:00 committed by GitHub
commit 833f6282b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 1485 additions and 1362 deletions

View File

@ -20,9 +20,8 @@ or upload from computer (using menu or drag & drop). Nothing will be sent to any
- Chrome
- Firefox
- Opera
- Edge
- Safari
- Edge (missing few features)
- IE 11 (only basic support)
## Features

View File

@ -30,6 +30,8 @@
</head>
<body>
<div class="wrapper">
<nav aria-label="Main Menu" class="main_menu" id="main_menu"></nav>
<div class="submenu">
<a class="logo" href="">miniPaint</a>
@ -84,9 +86,10 @@
</div>
</div>
<div class="mobile_menu">
<button class="right_mobile_menu" id="mobile_menu_button" type="button"></button>
<button class="right_mobile_menu" id="mobile_menu_button" type="button">
<span class="sr_only">Toggle Menu</span>
</button>
</div>
<div class="ddsmoothmenu" id="main_menu"></div>
<div class="hidden" id="tmp"></div>
<div id="popup"></div>
</body>

View File

@ -531,6 +531,9 @@ body .sp-preview{
-ms-grid-column: 2;
grid-area: main;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
}
.canvas_wrapper{
position:relative;

View File

@ -1,226 +1,194 @@
.mobile_menu{
display:none;
position: absolute;
width:100%;
top: 0;
:root {
--menu-dropdown-background-color: #ffffff;
--menu-dropdown-border-color: #5680C1;
--menu-dropdown-text-color: #2d2b2b;
--menu-dropdown-text-muted-color: #aaaaaa;
--menu-dropdown-hover-background-color: #E4EBF8;
--menu-dropdown-hover-text-color: #2d2d2d;
--menu-dropdown-divider-color: #e5e5e5;
}
.left_mobile_menu, .right_mobile_menu{
position:absolute;
width:50px;
height:50px;
background: url("images/sprites.png") no-repeat 11px -86px;
filter: invert(1);
display:block;
top:0;
z-index:200;
border:0;
outline:0;
cursor: pointer;
}
.left_mobile_menu{left:0;}
.right_mobile_menu{right:0;}
.ddsmoothmenu{
position:fixed;
top:0;
left:0;
width:100%;
font:12px Arial,sans-serif;
background: #2D2D2D;
background: var(--background-color-menu);
width: 100%;
padding-left:10px;
z-index:100;
}
.ddsmoothmenu ul{
z-index:100;
margin: 0;
.sr_only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
list-style-type: none;
height:30px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.ddsmoothmenu ul li{
position: relative;
display: inline-block;
float: left;
color: #2d2b2b;
height:100%;
.main_menu {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
}
.ddsmoothmenu ul ul li a{
width:100%;
.main_menu > ul.menu_bar {
display: flex;
flex-direction: row;
list-style: none;
padding: 0;
margin: 0;
height: 30px;
padding-left: 10px;
background: var(--background-color-menu);
}
.ddsmoothmenu .rightarrowclass{
display:none !important;
.main_menu > ul.menu_bar > li {
padding: 0;
overflow: hidden;
height: 100%;
}
.ddsmoothmenu ul li a{
display: inline-block;
color: #cccccc;
.main_menu > ul.menu_bar > li > a {
display: flex;
align-items: center;
font-size: 12px;
color: var(--text-color-menu);
text-decoration: none;
text-align:center;
padding: 7px 10px 8px 10px !important;
padding: 0 10px;
height: 100%;
}
.ddsmoothmenu ul ul li a{
padding-right: 25px !important;
.main_menu > ul.menu_bar > li > a::-moz-focus-inner {
border: 0;
}
.ddsmoothmenu ul li a.selected{
background-color: #FFFFFF !important;
color: #2d2b2b;
.main_menu > ul.menu_bar > li > a:focus {
outline: none;
box-shadow: 0 -3px var(--menu-dropdown-background-color) inset;
}
.ddsmoothmenu ul li ul li a.selected{
background-color:#E4EBF8 !important;
.main_menu > ul.menu_bar > li > a:hover {
background: var(--menu-dropdown-hover-background-color);
box-shadow: none;
color: var(--menu-dropdown-hover-text-color);
}
.ddsmoothmenu ul li a:hover{
background-color: #E4EBF8;
color: #2D2D2D;
.main_menu > ul.menu_bar > li > a[aria-expanded="true"] {
background: var(--menu-dropdown-background-color);
box-shadow: none;
color: var(--menu-dropdown-text-color);
}
.ddsmoothmenu .hide_ul{
position: absolute;
left: -3000px;
display: none;
visibility: hidden;
border:1px solid #5680C1;
border-top:0px;
.main_menu > ul.menu_bar > li > a > * {
pointer-events: none;
}
.ddsmoothmenu ul li ul{
position: absolute;
left: -3000px;
display: none;
visibility: hidden;
border:1px solid #5680C1;
border-top:0px;
margin-left: -1px;
height:auto;
min-width:140px;
width:auto !important;
top:30px !important;
.main_menu > ul.menu_dropdown {
display: flex;
flex-direction: column;
position: fixed;
top: 0;
left: 0;
list-style: none;
padding: 0;
margin: 0;
overflow-x: hidden;
overflow-y: auto;
max-height: calc(100vh - 60px);
background-color: white;
min-width: 150px;
box-shadow: 0 0 0 1px var(--menu-dropdown-border-color);
background: var(--menu-dropdown-background-color);
}
.ddsmoothmenu ul li ul.expanded{
overflow: visible;
max-height: none;
.main_menu > ul.menu_dropdown > li {
padding: 0;
}
.ddsmoothmenu ul li ul li{
display: list-item;
background: #ffffff;
float: none;
height:auto;
width:100%;
}
.ddsmoothmenu ul li ul li a{
text-align:left;
}
.ddsmoothmenu ul li ul li ul{
top: 0;
border-top:1px solid #5680C1;
}
.ddsmoothmenu ul li ul li a{
padding-left: 5px;
padding-right:5px;
.main_menu > ul.menu_dropdown > li > hr {
background: none;
border: 1px solid var(--menu-dropdown-divider-color);
border-bottom: none;
margin: 0;
color: #2D2D2D;
white-space: nowrap;
}
.ddsmoothmenu ul li ul li ul{
top:0 !important;
.main_menu > ul.menu_dropdown > li > a {
display: flex;
flex-direction: row;
align-items: center;
position: relative;
height: 30px;
padding: 0 10px;
font-size: 12px;
line-height: 30px;
text-decoration: none;
color: var(--menu-dropdown-text-color);
}
.ddsmoothmenu .downarrowclass{
.main_menu > ul.menu_dropdown > li > ::-moz-focus-inner {
border: 0;
}
.main_menu > ul.menu_dropdown > li > a:focus {
outline: none;
box-shadow: 0 0 0 2px var(--menu-dropdown-hover-background-color) inset;
}
.main_menu > ul.menu_dropdown > li > a:hover {
background: var(--menu-dropdown-hover-background-color);
box-shadow: none;
color: var(--menu-dropdown-hover-text-color);
}
.main_menu > ul.menu_dropdown > li > a[aria-expanded="true"] {
background: var(--menu-dropdown-hover-background-color);
box-shadow: none;
color: var(--menu-dropdown-hover-text-color);
}
.main_menu > ul.menu_dropdown > li > a[aria-haspopup="true"]::after {
position: absolute;
top: 12px;
right: 7px;
}
.ddsmoothmenu .ddshadow{
position: absolute;
left: 0;
top: 0;
width: 0;
height: 0;
background-color: #ccc;
}
.ddsmoothmenu .mid-line{
background-color:#ff0000;
border-top:1px solid #e5e5e5;
font-size:0;
padding:0 8px 0 8px;
}
.ddsmoothmenu ul li ul li.more > a{
position:relative;
}
.ddsmoothmenu ul li ul li.more > a:before{
position: absolute;
content:">";
content: ">";
right: 9px;
width: 5px;
height: 14px;
transform: scaleY(2);
color: #808080;
}
.ddsmoothmenu ul li ul li ul{
left: calc(100% + 1px) !important;
.main_menu > ul.menu_dropdown > li > a[aria-haspopup="true"] > .name {
margin-right: 8px;
}
.ddsmoothmenu .dots::after{
content: " ...";
.main_menu > ul.menu_dropdown > li > a[target="_blank"]::after {
content: "";
width: 10px;
height: 10px;
margin-left: 5px;
background: url(images/sprites.png) no-repeat -700px 0;
opacity: 0.3;
}
.ddsmoothmenu a[data-key]:after{
position: absolute;
content: attr(data-key) " ";
color: #aaa;
font-size: 12px;
margin-left: 8px;
right:10px;
.main_menu > ul.menu_dropdown > li > a > * {
pointer-events: none;
}
.ddsmoothmenu a.destructive {
background-color: rgba(0,0,0,0.08);
.main_menu > ul.menu_dropdown > li > a > .name {
flex-grow: 1;
overflow: hidden;
white-space: nowrap;
}
.main_menu > ul.menu_dropdown > li > a > .shortcut {
flex-shrink: 1;
color: var(--menu-dropdown-text-muted-color);
}
@media screen and (max-width:700px){
.mobile_menu{
display:block;
}
.left_mobile_menu{
display:none;
}
.ddsmoothmenu{
height:50px;
}
.ddsmoothmenu ul{
width: calc(100% - 50px);
height:50px;
}
.ddsmoothmenu > ul > li > a{
height:50px;
padding-top: 15px !important;
}
.ddsmoothmenu ul li ul{
top:50px !important;
}
.ddsmoothmenu ul li ul li{
height:auto;
}
.ddsmoothmenu ul li ul li a{
height:30px;
}
.mobile_menu {
display: none;
position: absolute;
width: 100%;
top: 0;
}
@media screen and (max-width:550px){
.ddsmoothmenu{
padding-left:0;
}
.ddsmoothmenu ul{
width: calc(100% - 50px);
}
.ddsmoothmenu > ul > li{
width: calc(100% / 7);
}
.ddsmoothmenu > ul > li > a{
width:100%;
padding-left: 3px !important;
padding-right: 3px !important;
overflow: hidden;
}
.left_mobile_menu{
display:block;
}
.left_mobile_menu, .right_mobile_menu {
position: absolute;
width: 50px;
height: 50px;
background: url("images/sprites.png") no-repeat 11px -86px;
filter: invert(1);
display: block;
top: 0;
z-index: 200;
border: 0;
outline: 0;
cursor: pointer;
}
.left_mobile_menu { left:0; }
.right_mobile_menu { right:0; }
@media screen and (max-width:700px) {
.mobile_menu {
display: block;
}
.left_mobile_menu {
display: none;
}
.main_menu > ul.menu_bar {
height: 50px;
padding-left: 0;
padding-right: 50px;
}
}

View File

@ -13,7 +13,7 @@
.sidebar_left,
.sidebar_right,
.submenu,
.ddsmoothmenu{
.main_menu{
display: none;
height: 0;
width: 0;

View File

@ -1,198 +1,630 @@
var menu_template = `
<ul>
<li>
<a class="trn" href="#">File</a>
<ul>
<li><a class="trn" data-target="file/new.new" href="#">New</a></li>
<li><div class="mid-line"></div></li>
<li class="more">
<a class="trn" href="#">Open</a>
<ul>
<li><a class="trn dots" data-target="file/open.open_file" data-key="Drag&Drop" href="#">Open File</a></li>
<li><a class="trn dots" data-target="file/open.open_dir" href="#">Open Directory</a></li>
<li><a class="trn dots" data-target="file/open.open_webcam" href="#">Open from Webcam</a></li>
<li><a class="trn dots" data-target="file/open.open_url" href="#">Open URL</a></li>
<li><a class="trn dots" data-target="file/open.open_data_url" href="#">Open Data URL</a></li>
<li><a class="trn dots" data-target="file/open.open_template_test" href="#">Open test template</a></li>
</ul>
</li>
<li><a class="trn dots" data-target="file/search.search" href="#">Search images</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="file/save.save" data-key="S" href="#">Save as</a></li>
<li><a class="trn dots" data-target="file/save.save_data_url" href="#">Save as data URL</a></li>
<li><a class="trn dots" data-target="file/print.print" data-key="Ctrl-P" href="#">Print</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn" data-target="file/quicksave.quicksave" data-key="F9" href="#">Quick save</a></li>
<li><a class="trn" data-target="file/quickload.quickload" data-key="F10" href="#">Quick load</a></li>
</ul>
</li>
<li>
<a class="trn" href="#">Edit</a>
<ul>
<li><a class="trn" data-target="edit/undo.undo" href="#">Undo</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn" data-target="edit/selection.delete" data-key="Del" href="#">Delete selection</a></li>
<li><a class="trn" data-target="layer/new.new_selection" href="#">Copy selection</a></li>
<li><a class="trn" data-target="edit/paste.paste" data-key="Ctrl+V" href="#">Paste</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn" data-target="edit/selection.select_all" href="#">Select all</a></li>
</ul>
</li>
<li>
<a class="trn" href="#">Image</a>
<ul>
<li><a class="trn dots" data-target="image/information.information" href="#">Information</a></li>
<li><a class="trn dots" data-target="image/size.size" href="#">Size</a></li>
<li><a class="trn dots" data-target="image/trim.trim" data-key="T" href="#">Trim</a>
<li class="more">
<a class="trn" href="#">Zoom</a>
<ul>
<li><a class="trn" data-target="image/zoom.in" href="#">Zoom In</a></li>
<li><a class="trn" data-target="image/zoom.out" href="#">Zoom Out</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn" data-target="image/zoom.original" href="#">Original size</a></li>
<li><a class="trn" data-target="image/zoom.auto" href="#">Fit window</a></li>
</ul>
</li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="image/resize.resize" href="#">Resize</a></li>
<li><a class="trn dots" data-target="image/rotate.rotate" href="#">Rotate</a></li>
<li class="more">
<a class="trn" href="#">Flip</a>
<ul>
<li><a class="trn" data-target="image/flip.vertical" href="#">Vertical</a></li>
<li><a class="trn" data-target="image/flip.horizontal" href="#">Horizontal</a></li>
</ul>
</li>
<li><a class="trn dots" data-target="image/translate.translate" href="#">Translate</a></li>
<li><a class="trn dots" data-target="image/opacity.opacity" href="#">Opacity</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="image/color_corrections.color_corrections" href="#">Color corrections</a></li>
<li><a class="trn" data-target="image/auto_adjust.auto_adjust" href="#">Auto adjust colors</a></li>
<li><a class="trn" data-target="image/decrease_colors.decrease_colors" href="#">Decrease color depth</a></li>
<li><a class="trn dots" data-target="image/palette.palette" href="#">Color palette</a></li>
<li><a class="trn dots" data-target="image/grid.grid" data-key="G" href="#">Grid</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="image/histogram.histogram" data-key="H" href="#">Histogram</a></li>
</ul>
</li>
<li>
<a class="trn" href="#">Layers</a>
<ul>
<li><a class="trn" data-target="layer/new.new" data-key="N" href="#">New</a></li>
<li><a class="trn" data-target="layer/new.new_selection" href="#">New from selection</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn" data-target="layer/duplicate.duplicate" href="#">Duplicate</a></li>
<li><a class="trn" data-target="layer/visibility.toggle" href="#">Show / Hide</a></li>
<li><a class="trn" data-target="layer/delete.delete" href="#">Delete</a></li>
<li><a class="trn" data-target="layer/raster.raster" href="#">Convert to raster</a></li>
<li><div class="mid-line"></div></li>
<li class="more">
<a class="trn" href="#">Move</a>
<ul>
<li><a class="trn" data-target="layer/move.up" href="#">Up</a></li>
<li><a class="trn" data-target="layer/move.down" href="#">Down</a></li>
</ul>
</li>
<li><a class="trn dots" data-target="layer/composition.composition" href="#">Composition</a></li>
<li><a class="trn dots" data-target="layer/rename.rename" href="#">Rename</a></li>
<li><a class="trn" data-target="layer/clear.clear" href="#">Clear</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn" data-target="layer/differences.differences" href="#">Differences Down</a></li>
<li><a class="trn" data-target="layer/merge.merge" href="#">Merge Down</a></li>
<li><a class="trn" data-target="layer/flatten.flatten" href="#">Flatten Image</a></li>
</ul>
</li>
<li>
<a class="trn" href="#">Effects</a>
<ul id="effects_list">
<li><a class="trn destructive dots" data-target="effects/black_and_white.black_and_white" href="#">Black and White</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/blueprint.blueprint" href="#">Blueprint</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/box_blur.box_blur" href="#">Box Blur</a>
<li><a class="trn dots" data-target="effects/brightness.brightness" href="#">Brightness</a>
<li><a class="trn dots" data-target="effects/contrast.contrast" href="#">Contrast</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/denoise.denoise" href="#">Denoise</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/dither.dither" href="#">Dither</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/dot_screen.dot_screen" href="#">Dot Screen</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/edge.edge" href="#">Edge</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/emboss.emboss" href="#">Emboss</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/enrich.enrich" href="#">Enrich</a>
<li><a class="trn dots" data-target="effects/blur.blur" href="#">Gaussian Blur</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/grains.grains" href="#">Grains</a>
<li><a class="trn dots" data-target="effects/grayscale.grayscale" href="#">Grayscale</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/heatmap.heatmap" href="#">Heatmap</a>
<li><a class="trn dots" data-target="effects/hue_rotate.hue_rotate" href="#">Hue Rotate</a>
<li><a class="trn destructive dots title="Destructive"" data-target="effects/mosaic.mosaic" href="#">Mosaic</a>
<li><a class="trn dots" data-target="effects/negative.negative" href="#">Negative</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/night_vision.night_vision" href="#">Night Vision</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/oil.oil" href="#">Oil</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/pencil.pencil" href="#">Pencil</a>
<li><a class="trn dots" data-target="effects/saturate.saturate" href="#">Saturate</a>
<li><a class="trn dots" data-target="effects/sepia.sepia" href="#">Sepia</a>
<li><a class="trn dots" data-target="effects/shadow.shadow" href="#">Shadow</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/sharpen.sharpen" href="#">Sharpen</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/solarize.solarize" href="#">Solarize</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/tilt_shift.tilt_shift" href="#">Tilt Shift</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/vignette.vignette" href="#">Vignette</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/vibrance.vibrance" href="#">Vibrance</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/vintage.vintage" href="#">Vintage</a>
<li><a class="trn destructive dots" title="Destructive" data-target="effects/zoom_blur.zoom_blur" href="#">Zoom Blur</a>
</ul>
</li>
<li>
<a class="trn" href="#">Tools</a>
<ul>
<li class="more">
<a class="trn" href="#">External</a>
<ul>
<li><a class="trn external" target="_blank" href="https://tinypng.com">TINYPNG - compress PNG and JPEG</a>
<li><a class="trn external" target="_blank" href="https://www.remove.bg">REMOVE.BG - remove Image Background</a>
<li><a class="trn external" target="_blank" href="https://www.pngtosvg.com">PNGTOSVG - convert image to SVG</a>
<li><a class="trn external" target="_blank" href="https://squoosh.app">SQUOOSH - compress and compare images</a>
</ul>
</li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="tools/borders.borders" href="#">Borders</a></li>
<li><a class="trn" data-target="tools/sprites.sprites" href="#">Sprites</a></li>
<li><a class="trn" data-target="tools/keypoints.keypoints" href="#">Key-points</a></li>
<li><a class="trn dots" data-target="tools/content_fill.content_fill" href="#">Content fill</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="tools/color_to_alpha.color_to_alpha" href="#">Color to alpha</a></li>
<li><a class="trn dots" data-target="tools/color_zoom.color_zoom" href="#">Color Zoom</a></li>
<li><a class="trn dots" data-target="tools/replace_color.replace_color" href="#">Replace Color</a></li>
<li><a class="trn dots" data-target="tools/restore_alpha.restore_alpha" href="#">Restore alpha</a></li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="tools/settings.settings" href="#">Settings</a></li>
</ul>
</li>
<li>
<a class="trn" href="#">Help</a>
<ul>
<li><a class="trn dots" data-target="help/shortcuts.shortcuts" href="#">Keyboard Shortcuts</a></li>
<li><a class="trn external" target="_blank" href="https://github.com/viliusle/miniPaint/issues">Report issues</a></li>
<li class="more">
<a class="trn" href="#">Language</a>
<ul>
<li><a data-target="help/translate.translate.en" href="#">English</a>
<li><div class="mid-line"></div></li>
<li><a data-target="help/translate.translate.zh" href="#">简体中文</a>
<li><a data-target="help/translate.translate.es" href="#">Español</a>
<li><a data-target="help/translate.translate.fr" href="#">French</a>
<li><a data-target="help/translate.translate.de" href="#">German</a>
<li><a data-target="help/translate.translate.it" href="#">Italiano</a>
<li><a data-target="help/translate.translate.ja" href="#">Japanese</a>
<li><a data-target="help/translate.translate.ko" href="#">Korean</a>
<li><a data-target="help/translate.translate.lt" href="#">Lietuvių</a>
<li><a data-target="help/translate.translate.pt" href="#">Portuguese</a>
<li><a data-target="help/translate.translate.ru" href="#">Russian</a>
<li><a data-target="help/translate.translate.tr" href="#">Turkish</a>
</ul>
</li>
<li><div class="mid-line"></div></li>
<li><a class="trn dots" data-target="help/about.about" href="#">About</a></li>
</ul>
</li>
</ul>
`;
const menuDefinition = [
{
name: 'File',
children: [
{
name: 'New',
target: 'file/new.new'
},
{
divider: true
},
{
name: 'Open',
children: [
{
name: 'Open File',
shortcut: 'Drag&Drop',
target: 'file/open.open_file'
},
{
name: 'Open Directory',
target: 'file/open.open_dir'
},
{
name: 'Open from Webcam',
target: 'file/open.open_webcam'
},
{
name: 'Open URL',
target: 'file/open.open_url'
},
{
name: 'Open Data URL',
target: 'file/open.open_data_url'
},
{
name: 'Open Test Template',
target: 'file/open.open_template_test'
}
]
},
{
name: 'Search Images',
ellipsis: true,
target: 'file/search.search'
},
{
divider: true
},
{
name: 'Save As',
ellipsis: true,
shortcut: 'S',
target: 'file/save.save'
},
{
name: 'Save As Data URL',
ellipsis: true,
target: 'file/save.save_data_url'
},
{
name: 'Print',
ellipsis: true,
shortcut: 'Ctrl-P',
target: 'file/print.print'
},
{
divider: true
},
{
name: 'Quick Save',
shortcut: 'F9',
target: 'file/quicksave.quicksave'
},
{
name: 'Quick Load',
shortcut: 'F10',
target: 'file/quickload.quickload'
}
]
},
{
name: 'Edit',
children: [
{
name: 'Undo',
target: 'edit/undo.undo'
},
{
divider: true
},
{
name: 'Delete Selection',
shortcut: 'Del',
target: 'edit/selection.delete'
},
{
name: 'Copy Selection',
target: 'layer/new.new_selection'
},
{
name: 'Paste',
shortcut: 'Ctrl+V',
target: 'edit/paste.paste'
},
{
divider: true
},
{
name: 'Select All',
target: 'edit/selection.select_all'
}
]
},
{
name: 'Image',
children: [
{
name: 'Information',
ellipsis: true,
target: 'image/information.information'
},
{
name: 'Size',
ellipsis: true,
target: 'image/size.size'
},
{
name: 'Trim',
ellipsis: true,
shortcut: 'T',
target: 'image/trim.trim'
},
{
name: 'Zoom',
children: [
{
name: 'Zoom In',
target: 'image/zoom.in'
},
{
name: 'Zoom Out',
target: 'image/zoom.out'
},
{
divider: true
},
{
name: 'Original Size',
target: 'image/zoom.original'
},
{
name: 'Fit Window',
target: 'image/zoom.auto'
}
]
},
{
divider: true
},
{
name: 'Resize',
ellipsis: true,
target: 'image/resize.resize'
},
{
name: 'Rotate',
ellipsis: true,
target: 'image/rotate.rotate'
},
{
name: 'Flip',
children: [
{
name: 'Vertical',
target: 'image/flip.vertical'
},
{
name: 'Horizontal',
target: 'image/flip.horizontal'
}
]
},
{
name: 'Translate',
ellipsis: true,
target: 'image/translate.translate'
},
{
name: 'Opacity',
ellipsis: true,
target: 'image/opacity.opacity'
},
{
divider: true
},
{
name: 'Color Corrections',
ellipsis: true,
target: 'image/color_corrections.color_corrections'
},
{
name: 'Auto Adjust Colors',
target: 'image/auto_adjust.auto_adjust'
},
{
name: 'Decrease Color Depth',
target: 'image/decrease_colors.decrease_colors'
},
{
name: 'Color Palette',
ellipsis: true,
target: 'image/palette.palette'
},
{
name: 'Grid',
ellipsis: true,
shortcut: 'G',
target: 'image/grid.grid'
},
{
divider: true
},
{
name: 'Histogram',
ellipsis: true,
shortcut: 'H',
target: 'image/histogram.histogram'
}
]
},
{
name: 'Layers',
children: [
{
name: 'New',
shortcut: 'N',
target: 'layer/new.new'
},
{
name: 'New from Selection',
target: 'layer/new.new_selection'
},
{
divider: true
},
{
name: 'Duplicate',
target: 'layer/duplicate.duplicate'
},
{
name: 'Show / Hide',
target: 'layer/visibility.toggle'
},
{
name: 'Delete',
target: 'layer/delete.delete'
},
{
name: 'Convert to Raster',
target: 'layer/raster.raster'
},
{
divider: true
},
{
name: 'Move',
children: [
{
name: 'Up',
target: 'layer/move.up'
},
{
name: 'Down',
target: 'layer/move.down'
}
]
},
{
name: 'Composition',
ellipsis: true,
target: 'layer/composition.composition'
},
{
name: 'Rename',
ellipsis: true,
target: 'layer/rename.rename'
},
{
name: 'Clear',
target: 'layer/clear.clear'
},
{
divider: true
},
{
name: 'Differences Down',
target: 'layer/differences.differences'
},
{
name: 'Merge Down',
target: 'layer/merge.merge'
},
{
name: 'Flatten Image',
target: 'layer/flatten.flatten'
}
]
},
{
name: 'Effects',
children: [
{
name: 'CSS Filters',
children: [
{
name: 'Gaussian Blur',
ellipsis: true,
target: 'effects/blur.blur'
},
{
name: 'Brightness',
ellipsis: true,
target: 'effects/brightness.brightness'
},
{
name: 'Contrast',
ellipsis: true,
target: 'effects/contrast.contrast'
},
{
name: 'Grayscale',
ellipsis: true,
target: 'effects/grayscale.grayscale'
},
{
name: 'Hue Rotate',
ellipsis: true,
target: 'effects/hue_rotate.hue_rotate'
},
{
name: 'Negative',
ellipsis: true,
target: 'effects/negative.negative'
},
{
name: 'Saturate',
ellipsis: true,
target: 'effects/saturate.saturate'
},
{
name: 'Sepia',
ellipsis: true,
target: 'effects/sepia.sepia'
},
{
name: 'Shadow',
ellipsis: true,
target: 'effects/shadow.shadow'
},
]
},
{
name: 'Black and White',
ellipsis: true,
target: 'effects/black_and_white.black_and_white'
},
{
name: 'Blueprint',
ellipsis: true,
target: 'effects/blueprint.blueprint'
},
{
name: 'Box Blur',
ellipsis: true,
target: 'effects/box_blur.box_blur'
},
{
name: 'Denoise',
ellipsis: true,
target: 'effects/denoise.denoise'
},
{
name: 'Dither',
ellipsis: true,
target: 'effects/dither.dither'
},
{
name: 'Dot Screen',
ellipsis: true,
target: 'effects/dot_screen.dot_screen'
},
{
name: 'Edge',
ellipsis: true,
target: 'effects/edge.edge'
},
{
name: 'Emboss',
ellipsis: true,
target: 'effects/emboss.emboss'
},
{
name: 'Enrich',
ellipsis: true,
target: 'effects/enrich.enrich'
},
{
name: 'Grains',
ellipsis: true,
target: 'effects/grains.grains'
},
{
name: 'Heatmap',
ellipsis: true,
target: 'effects/heatmap.heatmap'
},
{
name: 'Mosaic',
ellipsis: true,
target: 'effects/mosaic.mosaic'
},
{
name: 'Night Vision',
ellipsis: true,
target: 'effects/night_vision.night_vision'
},
{
name: 'Oil',
ellipsis: true,
target: 'effects/oil.oil'
},
{
name: 'Pencil',
ellipsis: true,
target: 'effects/pencil.pencil'
},
{
name: 'Sharpen',
ellipsis: true,
target: 'effects/sharpen.sharpen'
},
{
name: 'Solarize',
ellipsis: true,
target: 'effects/solarize.solarize'
},
{
name: 'Tilt Shift',
ellipsis: true,
target: 'effects/tilt_shift.tilt_shift'
},
{
name: 'Vignette',
ellipsis: true,
target: 'effects/vignette.vignette'
},
{
name: 'Vibrance',
ellipsis: true,
target: 'effects/vibrance.vibrance'
},
{
name: 'Vintage',
ellipsis: true,
target: 'effects/vintage.vintage'
},
{
name: 'Zoom Blur',
ellipsis: true,
target: 'effects/zoom_blur.zoom_blur'
}
]
},
{
name: 'Tools',
children: [
{
name: 'Borders',
ellipsis: true,
target: 'tools/borders.borders'
},
{
name: 'Sprites',
target: 'tools/sprites.sprites'
},
{
name: 'Key-Points',
target: 'tools/keypoints.keypoints'
},
{
name: 'Content Fill',
ellipsis: true,
target: 'tools/content_fill.content_fill'
},
{
divider: true
},
{
name: 'Color to Alpha',
ellipsis: true,
target: 'tools/color_to_alpha.color_to_alpha'
},
{
name: 'Color Zoom',
ellipsis: true,
target: 'tools/color_zoom.color_zoom'
},
{
name: 'Replace Color',
ellipsis: true,
target: 'tools/replace_color.replace_color'
},
{
name: 'Restore Alpha',
ellipsis: true,
target: 'tools/restore_alpha.restore_alpha'
},
{
name: 'External',
children: [
{
name: 'TINYPNG - Compress PNG and JPEG',
href: 'https://tinypng.com'
},
{
name: 'REMOVE.BG - Remove Image Background',
href: 'https://www.remove.bg'
},
{
name: 'PNGTOSVG - Convert Image to SVG',
href: 'https://www.pngtosvg.com'
},
{
name: 'SQUOOSH - Compress and Compare Images',
href: 'https://squoosh.app'
}
]
},
{
divider: true
},
{
name: 'Settings',
ellipsis: true,
target: 'tools/settings.settings'
}
]
},
{
name: 'Help',
children: [
{
name: 'Keyboard Shortcuts',
ellipsis: true,
target: 'help/shortcuts.shortcuts'
},
{
name: 'Report Issues',
href: 'https://github.com/viliusle/miniPaint/issues'
},
{
name: 'Language',
children: [
{
name: 'English',
target: 'help/translate.translate.en'
},
{
divider: true
},
{
name: '简体中文',
target: 'help/translate.translate.zh'
},
{
name: 'Español',
target: 'help/translate.translate.es'
},
{
name: 'Français',
target: 'help/translate.translate.fr'
},
{
name: 'Deutsch',
target: 'help/translate.translate.de'
},
{
name: 'Italiano',
target: 'help/translate.translate.it'
},
{
name: '日本語',
target: 'help/translate.translate.ja'
},
{
name: '한국어',
target: 'help/translate.translate.ko'
},
{
name: 'Lietuvių',
target: 'help/translate.translate.lt'
},
{
name: 'Português',
target: 'help/translate.translate.pt'
},
{
name: 'русский язык',
target: 'help/translate.translate.ru'
},
{
name: 'Türkçe',
target: 'help/translate.translate.tr'
}
]
},
{
divider: true
},
{
name: 'About',
target: 'help/about.about'
}
]
}
];
export default menu_template;
export default menuDefinition;

View File

@ -123,7 +123,7 @@ config.TOOLS = [
},
{
name: 'media',
title: 'Search images',
title: 'Search Images',
on_activate: 'on_activate',
attributes: {
size: 30,

View File

@ -124,34 +124,23 @@ class Base_gui_class {
var _this = this;
//menu events
var targets = document.querySelectorAll('#main_menu a');
for (var i = 0; i < targets.length; i++) {
if (targets[i].dataset.target == undefined)
continue;
targets[i].addEventListener('click', function (event) {
var parts = this.dataset.target.split('.');
var module = parts[0];
var function_name = parts[1];
var param = parts[2];
this.GUI_menu.on('select_target', (target) => {
var parts = target.split('.');
var module = parts[0];
var function_name = parts[1];
var param = parts[2];
//close menu
var menu = document.querySelector('#main_menu .selected');
if (menu != undefined) {
menu.click();
}
//call module
if (_this.modules[module] == undefined) {
alertify.error('Modules class not found: ' + module);
return;
}
if (_this.modules[module][function_name] == undefined) {
alertify.error('Module function not found. ' + module + '.' + function_name);
return;
}
_this.modules[module][function_name](param);
});
}
//call module
if (this.modules[module] == undefined) {
alertify.error('Modules class not found: ' + module);
return;
}
if (this.modules[module][function_name] == undefined) {
alertify.error('Module function not found. ' + module + '.' + function_name);
return;
}
this.modules[module][function_name](param);
});
//registerToggleAbility
var targets = document.querySelectorAll('.toggle');
@ -176,10 +165,9 @@ class Base_gui_class {
window.addEventListener('resize', function (event) {
//resize
_this.prepare_canvas();
_this.check_canvas_offset();
config.need_render = true;
}, false);
_this.check_canvas_offset();
this.check_canvas_offset();
}
check_canvas_offset() {
@ -217,6 +205,8 @@ class Base_gui_class {
//change wrapper dimensions
document.getElementById('canvas_wrapper').style.width = w + 'px';
document.getElementById('canvas_wrapper').style.height = h + 'px';
this.check_canvas_offset();
}
load_saved_changes() {

View File

@ -4,37 +4,408 @@
*/
import config from './../../config.js';
import menu_template from './../../config-menu.js';
import ddsmoothmenu from './../../libs/menu.js';
import menuDefinition from './../../config-menu.js';
import Help_translate_class from './../../modules/help/translate.js';
/**
* class responsible for rendering main menu
*/
class GUI_menu_class {
constructor() {
this.eventSubscriptions = {};
this.dropdownMaxHeightMargin = 15;
this.menuContainer = null;
this.menuBarNode = null;
this.lastFocusedMenuBarLink = 0;
this.dropdownStack = [];
this.Help_translate = new Help_translate_class();
}
render_main() {
document.getElementById('main_menu').innerHTML = menu_template;
ddsmoothmenu.init({
mainmenuid: "main_menu",
method: 'toggle', //'hover' (default) or 'toggle'
contentsource: "markup",
this.menuContainer = document.getElementById('main_menu');
let menuTemplate = '<ul class="menu_bar" role="menubar" tabindex="0">';
for (let i = 0; i < menuDefinition.length; i++) {
const item = menuDefinition[i];
menuTemplate += this.generate_menu_bar_item_template(item, i);
}
menuTemplate += '</ul>';
this.menuContainer.innerHTML = menuTemplate;
this.menuBarNode = this.menuContainer.querySelector('[role="menubar"]');
this.menuContainer.addEventListener('click', (event) => { return this.on_click_menu(event); }, true);
this.menuContainer.addEventListener('keydown', (event) => { return this.on_key_down_menu(event); }, true);
this.menuBarNode.addEventListener('focus', (event) => { return this.on_focus_menu_bar(event); });
this.menuBarNode.addEventListener('blur', (event) => { return this.on_blur_menu_bar(event); });
this.menuBarNode.querySelectorAll('a').forEach((link) => {
link.addEventListener('focus', (event) => { return this.on_focus_menu_bar_link(event); });
});
document.body.addEventListener('mousedown', (event) => { return this.on_mouse_down_body(event); }, true);
document.body.addEventListener('touchstart', (event) => { return this.on_mouse_down_body(event); }, true);
window.addEventListener('resize', (event) => { return this.on_resize_window(event); }, true)
}
on(eventName, callback) {
if (!this.eventSubscriptions[eventName]) {
this.eventSubscriptions[eventName] = [];
}
if (!this.eventSubscriptions[eventName].includes(callback)) {
this.eventSubscriptions[eventName].push(callback);
}
}
emit(eventName, payload) {
if (this.eventSubscriptions[eventName]) {
for (let callback of this.eventSubscriptions[eventName]) {
callback(payload);
}
}
}
generate_menu_bar_item_template(definition, index) {
return `
<li>
<a id="main_menu_0_${index}" role="menuitem" tabindex="-1" aria-haspopup="true" aria-expanded="false"
href="javascript:void(0)" data-level="0" data-index="${ index }"><span class="name trn">${ definition.name }</span></a>
</li>
`.trim();
}
generate_menu_dropdown_item_template(definition, level, index) {
if (definition.divider) {
return `
<li role="presentation">
<hr>
</li>
`.trim();
} else {
return `
<li>
<a id="main_menu_${ level }_${ index }" role="menuitem" tabindex="-1" aria-haspopup="${ (!!definition.children) + '' }"
href="${ definition.href ? definition.href : 'javascript:void(0)' }"
target="${ definition.href ? '_blank' : '_self' }"
data-level="${ level }" data-index="${ index }">
<span class="name"><span class="trn">${ definition.name }</span>${ definition.ellipsis ? ' ...' : '' }</span>
${ !!definition.shortcut ? `
<span class="shortcut"><span class="sr_only">Shortcut Key:</span> ${ definition.shortcut }</span>
` : `` }
</a>
</li>
`.trim();
}
}
on_mouse_down_body(event) {
const target = event.touches ? event.touches[0].target : event.target;
// Clicked outside of menu; close dropdowns.
if (target && !this.menuContainer.contains(target)) {
this.close_child_dropdowns(0);
}
}
on_focus_menu_bar(event) {
if (document.activeElement === this.menuBarNode) {
let lastFocusedLink = this.menuBarNode.querySelector(`[data-index="${ this.lastFocusedMenuBarLink }"]`);
if (!lastFocusedLink) {
lastFocusedLink = this.menuBarNode.querySelector('a');
}
lastFocusedLink.focus();
}
}
on_focus_menu_bar_link(event) {
this.lastFocusedMenuBarLink = parseInt(event.target.getAttribute('data-index'), 10) || 0;
}
on_blur_menu_bar(event) {
// TODO
}
on_key_down_menu(event) {
const key = event.key;
const activeElement = document.activeElement;
if (activeElement && activeElement.tagName === 'A') {
const linkLevel = parseInt(activeElement.getAttribute('data-level'), 10) || 0;
const linkIndex = parseInt(activeElement.getAttribute('data-index'), 10) || 0;
const menuParent = activeElement.closest('ul');
if (linkLevel === 0) {
if (['Right', 'ArrowRight'].includes(event.key)) {
let nextLink = menuParent.querySelector(`[data-index="${ linkIndex + 1 }"]`);
if (!nextLink) {
nextLink = menuParent.querySelector(`[data-index="0"]`);
}
nextLink.focus();
}
else if (['Left', 'ArrowLeft'].includes(event.key)) {
let previousLink = menuParent.querySelector(`[data-index="${ linkIndex - 1 }"]`);
if (!previousLink) {
previousLink = menuParent.querySelector(`[data-index="${ menuParent.querySelectorAll('[data-index]').length - 1 }"]`);
}
previousLink.focus();
}
else if (['Down', 'ArrowDown'].includes(event.key)) {
if (activeElement.getAttribute('aria-haspopup') === 'true') {
event.preventDefault();
activeElement.click();
}
}
else if (event.key === 'Home') {
menuParent.querySelector(`[data-index="0"]`).focus();
}
else if (event.key === 'End') {
menuParent.querySelector(`[data-index="${ menuParent.querySelectorAll('[data-index]').length - 1 }"]`).focus();
}
else if ([' ', 'Enter'].includes(event.key)) {
event.preventDefault();
activeElement.click();
}
} else {
if (['Up', 'ArrowUp'].includes(event.key)) {
event.preventDefault();
let previousLink = menuParent.querySelector(`[data-index="${ linkIndex - 1 }"]`);
if (!previousLink) {
previousLink = menuParent.querySelector(`[data-index="${ linkIndex - 2 }"]`); // Skip dividers
}
if (!previousLink) {
previousLink = menuParent.querySelector(`[data-index="${ this.dropdownStack[linkLevel - 1].children.length - 1 }"]`);
}
previousLink.focus();
}
else if (['Down', 'ArrowDown'].includes(event.key)) {
event.preventDefault();
let nextLink = menuParent.querySelector(`[data-index="${ linkIndex + 1 }"]`);
if (!nextLink) {
nextLink = menuParent.querySelector(`[data-index="${ linkIndex + 2 }"]`); // Skip dividers
}
if (!nextLink) {
nextLink = menuParent.querySelector(`[data-index="0"]`);
}
nextLink.focus();
}
else if (['Right', 'ArrowRight'].includes(event.key)) {
if (activeElement.getAttribute('aria-haspopup') === 'true') {
activeElement.click();
}
else if (this.dropdownStack.length > 1) {
const opener = this.dropdownStack[linkLevel - 1].opener;
opener.click();
opener.focus();
}
else {
const menuBarLinkIndex = parseInt(this.dropdownStack[0].opener.getAttribute('data-index'), 10) || 0;
let nextLink = this.menuBarNode.querySelector(`[data-index="${ menuBarLinkIndex + 1 }"]`);
if (!nextLink) {
nextLink = this.menuBarNode.querySelector(`[data-index="0"]`);
}
nextLink.click();
}
}
else if (['Left', 'ArrowLeft'].includes(event.key)) {
if (this.dropdownStack.length > 1) {
const opener = this.dropdownStack[linkLevel - 1].opener;
opener.click();
opener.focus();
} else {
const menuBarLinkIndex = parseInt(this.dropdownStack[0].opener.getAttribute('data-index'), 10) || 0;
let previousLink = this.menuBarNode.querySelector(`[data-index="${ menuBarLinkIndex - 1 }"]`);
if (!previousLink) {
previousLink = this.menuBarNode.querySelector(`[data-index="${ this.menuBarNode.querySelectorAll('[data-index]').length - 1 }"]`);
}
previousLink.click();
}
}
else if (event.key === 'Home') {
menuParent.querySelector(`[data-index="0"]`).focus();
}
else if (event.key === 'End') {
menuParent.querySelector(`[data-index="${ this.dropdownStack[linkLevel - 1].children.length - 1 }"]`).focus();
}
else if ([' ', 'Enter'].includes(event.key)) {
event.preventDefault();
activeElement.click();
}
else if (['Esc', 'Escape'].includes(event.key)) {
const opener = this.dropdownStack[linkLevel - 1].opener;
opener.click();
opener.focus();
}
else if (event.key === 'Tab') {
this.close_child_dropdowns(0);
}
}
}
}
on_click_menu(event) {
const target = event.target.closest('a');
// Any link in the menu is clicked.
if (target && target.tagName === 'A') {
const hasPopup = target.getAttribute('aria-haspopup') === 'true';
if (hasPopup) {
this.toggle_dropdown(target, event.isTrusted);
} else {
this.trigger_link(target);
}
} else {
this.close_child_dropdowns(0);
}
}
on_resize_window(event) {
if (this.dropdownStack.length > 0) {
this.position_dropdowns();
}
}
toggle_dropdown(opener, isTrusted) {
const linkLevel = parseInt(opener.getAttribute('data-level'), 10) || 0;
const linkIndex = parseInt(opener.getAttribute('data-index'), 10) || 0;
if (opener.getAttribute('aria-expanded') === 'true') {
this.close_child_dropdowns(linkLevel);
} else {
const parentList = opener.closest('ul');
parentList.querySelectorAll('a').forEach((item) => {
item.setAttribute('aria-expanded', 'false');
});
opener.setAttribute('aria-expanded', true);
this.create_dropdown(opener, linkLevel, linkIndex, !isTrusted);
}
}
trigger_link(link) {
const level = parseInt(link.getAttribute('data-level'), 10) || 0;
const index = parseInt(link.getAttribute('data-index'), 10) || 0;
// Find link definition
let children = menuDefinition;
for (let i = 0; i < level; i++) {
const childIndex = this.dropdownStack[i] != null ? this.dropdownStack[i].index : index;
children = children[childIndex].children;
}
let definition = children[index];
// Close the dropdown
this.close_child_dropdowns(0);
// Emit callback events for triggered links
if (definition.target) {
this.emit('select_target', definition.target);
}
else if (definition.href) {
this.emit('select_href', definition.href);
}
}
close_child_dropdowns(level) {
for (let i = this.dropdownStack.length - 1; i >= 0; i--) {
if (i >= level) {
this.dropdownStack[i].element.parentNode.removeChild(this.dropdownStack[i].element);
this.dropdownStack[i].opener.setAttribute('aria-expanded', false);
}
}
this.dropdownStack = this.dropdownStack.slice(0, level);
}
create_dropdown(opener, level, index, focusAfterCreation) {
this.close_child_dropdowns(level);
// Find child list in the menu definition
let children = menuDefinition;
for (let i = 0; i <= level; i++) {
const childIndex = this.dropdownStack[i] != null ? this.dropdownStack[i].index : index;
children = children[childIndex].children;
}
// Create the dropdown element, place it in DOM & position it
let dropdownElement = document.createElement('ul');
dropdownElement.className = 'menu_dropdown';
dropdownElement.role = 'menu';
dropdownElement.tabIndex = 0;
dropdownElement.setAttribute('aria-labelledby', 'main_menu_' + level + '_' + index);
let dropdownTemplate = '';
for (let i = 0; i < children.length; i++) {
dropdownTemplate += this.generate_menu_dropdown_item_template(children[i], level + 1, i);
}
dropdownElement.innerHTML = dropdownTemplate;
this.menuContainer.appendChild(dropdownElement);
if (config.LANG != 'en') {
this.Help_translate.translate(config.LANG, this.menuContainer);
}
if (focusAfterCreation) {
dropdownElement.querySelector('a').focus();
}
this.dropdownStack.push({
children,
opener,
index,
element: dropdownElement
});
// Additional logic for ddsmoothmenu library:
// Add CSS class to primary dropdown to identify when to toggle scrolling for mobile.
document.getElementById('main_menu').addEventListener('click', (e) => {
const target = e.target;
if (!target || !target.parentNode) return;
if (target.parentNode.classList.contains('more')) {
var parentList = target.closest('ul');
var wasSelected = target.classList.contains('selected');
setTimeout(() => {
parentList.classList.toggle('expanded', !wasSelected);
}, 1);
} else if (target.tagName === 'A' && target.matches('#main_menu > ul > li > a')) {
target.nextElementSibling.classList.remove('expanded');
this.position_dropdowns();
}
position_dropdowns() {
const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
const vh = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);
let topNavHeight = 0;
for (let level = 0; level < this.dropdownStack.length; level++) {
const dropdownElement = this.dropdownStack[level].element;
const openerRect = this.dropdownStack[level].opener.getBoundingClientRect();
topNavHeight = openerRect.height;
const dropdownMaxHeight = vh - topNavHeight - this.dropdownMaxHeightMargin;
dropdownElement.style.maxHeight = dropdownMaxHeight + 'px';
const dropdownRect = dropdownElement.getBoundingClientRect();
if (level === 0) {
dropdownElement.style.top = (openerRect.y + openerRect.height) + 'px';
let left = openerRect.x;
if (left + dropdownRect.width > vw) {
left = openerRect.x + openerRect.width - dropdownRect.width;
}
if (left + dropdownRect.width > vw) {
left = vw - dropdownRect.width;
}
if (left < 0) {
left = 0;
}
dropdownElement.style.left = left + 'px';
} else {
let top = openerRect.y;
if (top + dropdownRect.height > vh - this.dropdownMaxHeightMargin) {
top = vh - this.dropdownMaxHeightMargin - dropdownRect.height;
}
dropdownElement.style.top = top + 'px';
let left = openerRect.x + openerRect.width + 1;
if (left + dropdownRect.width > vw) {
left = openerRect.x - dropdownRect.width - 1;
}
if (left < 0) {
if (openerRect.x + (openerRect.width / 2) > vw / 2) {
left = 1;
} else {
left = vw - dropdownRect.width - 1;
if (left < 0) {
left = 1;
}
}
}
dropdownElement.style.left = left + 'px';
}
}, true);
}
}
}

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Pfeil",
"Author:": "Autor:",
"Auto adjust colors": "Automatische Farbeinstellung",
"Auto Adjust Colors": "Automatische Farbeinstellung",
"Average:": "Durchschnitt:",
"BMP - Windows Bitmap": "BMP - Windows-Bitmap",
"Base": "Basis",
@ -33,7 +33,7 @@
"Brush": "Pinsel",
"Bulge\/Pinch tool": "Ausbuchtung \/ Pinch-Werkzeug",
"Burn": "Brennen",
"CSS filters": "CSS-Filter",
"CSS Filters": "CSS-Filter",
"Can not animate 1 layer.": "1 Ebene kann nicht animiert werden.",
"Can not find previous layer.": "Die vorherige Ebene kann nicht gefunden werden.",
"Cancel": "Abbrechen",
@ -50,20 +50,20 @@
"Color #": "Farbe #",
"Color Zoom": "Farbzoom",
"Color alpha value can not be zero.": "Farb-Alpha-Wert kann nicht Null sein.",
"Color corrections": "Farbkorrekturen",
"Color palette": "Farbpalette",
"Color to alpha": "Farbe zu Alpha",
"Color Corrections": "Farbkorrekturen",
"Color Palette": "Farbpalette",
"Color to Alpha": "Farbe zu Alpha",
"Color zoom": "Farbzoom",
"Color:": "Farbe:",
"Colors": "Farben",
"Colors:": "Farben:",
"Composition": "Zusammensetzung",
"Composition:": "Zusammensetzung:",
"Content fill": "Inhalt ausfüllen",
"Content Fill": "Inhalt ausfüllen",
"Contrast": "Kontrast",
"Contrast:": "Kontrast:",
"Convert to raster": "In Raster konvertieren",
"Copy selection": "Auswahl kopieren",
"Convert to Raster": "In Raster konvertieren",
"Copy Selection": "Auswahl kopieren",
"Copy:": "Kopieren:",
"Courier": "Kurier",
"Crop": "Zuschneiden",
@ -74,12 +74,12 @@
"Custom": "Individuell",
"Data URL": "Daten-URL",
"Data URL:": "Daten-URL:",
"Decrease color depth": "Farbtiefe verringern",
"Decrease Color Depth": "Farbtiefe verringern",
"Default": "Standard",
"Degree:": "Grad:",
"Del": "Del",
"Delete": "Löschen",
"Delete selection": "Auswahl löschen",
"Delete Selection": "Auswahl löschen",
"Denoise": "Denoise",
"Desaturate": "Entsättigen",
"Description:": "Beschreibung:",
@ -119,7 +119,7 @@
"File size:": "Dateigröße:",
"Fill": "Füllen",
"Fit": "Passen",
"Fit window": "Fenster einpassen",
"Fit Window": "Fenster einpassen",
"Flatten Image": "Zu einer Ebene vereinigen",
"Flip": "Spiegeln",
"FloydSteinberg-serpentine": "FloydSteinberg-Serpentin",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, WEBP Qualität:",
"JSON - Full layers data": "JSON - Vollständige Ebenen-Daten",
"Japanese": "Japanisch",
"Key-points": "Schlüsselpunkte",
"Key-Points": "Schlüsselpunkte",
"Keyboard Shortcuts": "Tastatürkürzel",
"Keyword:": "Stichwort:",
"Korean": "Koreanisch",
@ -201,7 +201,7 @@
"Negative": "Negativ",
"New": "Neu",
"New file": "Neue Datei",
"New from selection": "Neu von Auswahl",
"New from Selection": "Neu von Auswahl",
"New layer": "Neue Ebene",
"New width can not be smaller then current width": "Die neue Breite darf nicht kleiner als die aktuelle Breite sein",
"Normal": "Normal",
@ -219,7 +219,7 @@
"Open File": "Datei öffnen",
"Open URL": "Öffne URL",
"Open data URL": "Öffnen Sie die Daten-URL",
"Original size": "Originalgröße",
"Original Size": "Originalgröße",
"PNG - Portable Network Graphics": "PNG - Portable Netzwerkgrafik",
"Palette": "Palette",
"Parameter #1:": "Parameter # 1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "Die vorherige Ebene muss ein Bild sein, wandeln Sie sie in ein Raster um, um dieses Werkzeug anzuwenden.",
"Print": "Drucken",
"Quality:": "Qualität:",
"Quick load": "Schnell laden",
"Quick save": "Schnellspeichern",
"Quick Load": "Schnell laden",
"Quick Save": "Schnellspeichern",
"Radial": "Radial",
"Radial gradient": "Radialer Verlauf",
"Radius:": "Radius:",
@ -253,14 +253,14 @@
"Replace Color": "Farbe ersetzen",
"Replace color": "Farbe ersetzen",
"Replacement:": "Ersatz:",
"Report issues": "Probleme melden",
"Report Issues": "Probleme melden",
"Resample - Hermite": "Resample - Hermite",
"Reset": "Zurücksetzen",
"Reset zoom level": "Zoomstufe zurücksetzen",
"Resize": "Größe ändern",
"Resized as background": "Größe als Hintergrund",
"Resolution:": "Auflösung:",
"Restore alpha": "Alpha wiederherstellen",
"Restore Alpha": "Alpha wiederherstellen",
"Right": "Recht",
"Right angle:": "Rechter Winkel:",
"Rotate": "Drehen",
@ -272,16 +272,16 @@
"Saturate": "Sättigen",
"Saturation:": "Sättigung:",
"Save": "Speichern",
"Save as": "Speichern als",
"Save as data URL": "Als Daten-URL speichern",
"Save As": "Speichern als",
"Save As Data URL": "Als Daten-URL speichern",
"Save as type:": "Speichern unter:",
"Save layers:": "Ebenen speichern:",
"Save resolution:": "Auflösung speichern:",
"Scroll down": "Runterscrollen",
"Scroll up": "Hochscrollen",
"Search": "Suche",
"Search images": "Bilder suchen",
"Select all": "Alles auswählen",
"Search Images": "Bilder suchen",
"Select All": "Alles auswählen",
"Select object tool": "Wählen Sie das Objektwerkzeug aus",
"Selected": "Ausgewählt",
"Selection": "Auswahl",

View File

@ -11,7 +11,7 @@
"Arial": "",
"Arrow": "",
"Author:": "",
"Auto adjust colors": "",
"Auto Adjust Colors": "",
"Average:": "",
"BMP - Windows Bitmap": "",
"Base": "",
@ -33,7 +33,7 @@
"Brush": "",
"Bulge\/Pinch tool": "",
"Burn": "",
"CSS filters": "",
"CSS Filters": "",
"Can not animate 1 layer.": "",
"Can not find previous layer.": "",
"Cancel": "",
@ -50,20 +50,20 @@
"Color #": "",
"Color Zoom": "",
"Color alpha value can not be zero.": "",
"Color corrections": "",
"Color palette": "",
"Color to alpha": "",
"Color Corrections": "",
"Color Palette": "",
"Color to Alpha": "",
"Color zoom": "",
"Color:": "",
"Colors": "",
"Colors:": "",
"Composition": "",
"Composition:": "",
"Content fill": "",
"Content Fill": "",
"Contrast": "",
"Contrast:": "",
"Convert to raster": "",
"Copy selection": "",
"Convert to Raster": "",
"Copy Selection": "",
"Copy:": "",
"Courier": "",
"Crop": "",
@ -74,12 +74,12 @@
"Custom": "",
"Data URL": "",
"Data URL:": "",
"Decrease color depth": "",
"Decrease Color Depth": "",
"Default": "",
"Degree:": "",
"Del": "",
"Delete": "",
"Delete selection": "",
"Delete Selection": "",
"Denoise": "",
"Desaturate": "",
"Description:": "",
@ -119,7 +119,7 @@
"File size:": "",
"Fill": "",
"Fit": "",
"Fit window": "",
"Fit Window": "",
"Flatten Image": "",
"Flip": "",
"FloydSteinberg-serpentine": "",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "",
"JSON - Full layers data": "",
"Japanese": "",
"Key-points": "",
"Key-Points": "",
"Keyboard Shortcuts": "",
"Keyword:": "",
"Korean": "",
@ -201,7 +201,7 @@
"Negative": "",
"New": "",
"New file": "",
"New from selection": "",
"New from Selection": "",
"New layer": "",
"New width can not be smaller then current width": "",
"Normal": "",
@ -219,7 +219,7 @@
"Open File": "",
"Open URL": "",
"Open data URL": "",
"Original size": "",
"Original Size": "",
"PNG - Portable Network Graphics": "",
"Palette": "",
"Parameter #1:": "",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "",
"Print": "",
"Quality:": "",
"Quick load": "",
"Quick save": "",
"Quick Load": "",
"Quick Save": "",
"Radial": "",
"Radial gradient": "",
"Radius:": "",
@ -253,14 +253,14 @@
"Replace Color": "",
"Replace color": "",
"Replacement:": "",
"Report issues": "",
"Report Issues": "",
"Resample - Hermite": "",
"Reset": "",
"Reset zoom level": "",
"Resize": "",
"Resized as background": "",
"Resolution:": "",
"Restore alpha": "",
"Restore Alpha": "",
"Right": "",
"Right angle:": "",
"Rotate": "",
@ -272,16 +272,16 @@
"Saturate": "",
"Saturation:": "",
"Save": "",
"Save as": "",
"Save as data URL": "",
"Save As": "",
"Save As Data URL": "",
"Save as type:": "",
"Save layers:": "",
"Save resolution:": "",
"Scroll down": "",
"Scroll up": "",
"Search": "",
"Search images": "",
"Select all": "",
"Search Images": "",
"Select All": "",
"Select object tool": "",
"Selected": "",
"Selection": "",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Flecha",
"Author:": "Autor:",
"Auto adjust colors": "Ajuste automático de colores",
"Auto Adjust Colors": "Ajuste automático de colores",
"Average:": "Promedio:",
"BMP - Windows Bitmap": "BMP - Mapa de bits de Windows",
"Base": "Base",
@ -33,7 +33,7 @@
"Brush": "Cepillo",
"Bulge\/Pinch tool": "Herramienta de abombamiento \/ pellizco",
"Burn": "Quemar",
"CSS filters": "Filtros CSS",
"CSS Filters": "Filtros CSS",
"Can not animate 1 layer.": "No se puede animar 1 capa.",
"Can not find previous layer.": "No se puede encontrar la capa anterior.",
"Cancel": "Cancelar",
@ -50,20 +50,20 @@
"Color #": "Color #",
"Color Zoom": "Zoom de color",
"Color alpha value can not be zero.": "El valor alfa del color no puede ser cero.",
"Color corrections": "Correcciones de color",
"Color palette": "Paleta de color",
"Color to alpha": "Color a alfa",
"Color Corrections": "Correcciones de color",
"Color Palette": "Paleta de color",
"Color to Alpha": "Color a alfa",
"Color zoom": "Zoom a color",
"Color:": "Color:",
"Colors": "Colores",
"Colors:": "Colores:",
"Composition": "Composición",
"Composition:": "Composición:",
"Content fill": "Relleno de contenido",
"Content Fill": "Relleno de contenido",
"Contrast": "Contraste",
"Contrast:": "Contraste:",
"Convert to raster": "Convertir a trama",
"Copy selection": "Copiar selección",
"Convert to Raster": "Convertir a trama",
"Copy Selection": "Copiar selección",
"Copy:": "Dupdo:",
"Courier": "mensajero",
"Crop": "Cultivo",
@ -74,12 +74,12 @@
"Custom": "Personalizado",
"Data URL": "URL de datos",
"Data URL:": "URL de datos:",
"Decrease color depth": "Disminuir la profundidad de color",
"Decrease Color Depth": "Disminuir la profundidad de color",
"Default": "Defecto",
"Degree:": "La licenciatura:",
"Del": "Del",
"Delete": "Borrar",
"Delete selection": "Eliminar selección",
"Delete Selection": "Eliminar selección",
"Denoise": "Denoise",
"Desaturate": "Desaturar",
"Description:": "Descripción:",
@ -119,7 +119,7 @@
"File size:": "Tamaño del archivo:",
"Fill": "Llenar",
"Fit": "Ajuste",
"Fit window": "Ajustar ventana",
"Fit Window": "Ajustar ventana",
"Flatten Image": "Imagen aplanada",
"Flip": "Dar la vuelta",
"FloydSteinberg-serpentine": "FloydSteinberg-serpentina",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, calidad de WEBP:",
"JSON - Full layers data": "JSON: datos de capas completas",
"Japanese": "japonés",
"Key-points": "Puntos clave",
"Key-Points": "Puntos clave",
"Keyboard Shortcuts": "Atajos de teclado",
"Keyword:": "Palabra clave:",
"Korean": "coreano",
@ -201,7 +201,7 @@
"Negative": "Negativo",
"New": "Nuevo",
"New file": "Archivo nuevo",
"New from selection": "Nuevo de la selección",
"New from Selection": "Nuevo de la selección",
"New layer": "Nueva capa",
"New width can not be smaller then current width": "El nuevo ancho no puede ser más pequeño que el ancho actual",
"Normal": "Normal",
@ -219,7 +219,7 @@
"Open File": "Abrir documento",
"Open URL": "URL abierta",
"Open data URL": "URL de datos abiertos",
"Original size": "Tamaño original",
"Original Size": "Tamaño original",
"PNG - Portable Network Graphics": "PNG - Gráficos de red portátiles",
"Palette": "Paleta",
"Parameter #1:": "Parámetro # 1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "La capa anterior debe ser una imagen, conviértala a raster para aplicar esta herramienta.",
"Print": "Impresión",
"Quality:": "Calidad:",
"Quick load": "Carga rápida",
"Quick save": "Guardado rápido",
"Quick Load": "Carga rápida",
"Quick Save": "Guardado rápido",
"Radial": "Radial",
"Radial gradient": "Gradiente radial",
"Radius:": "Radio:",
@ -253,14 +253,14 @@
"Replace Color": "Reemplazar color",
"Replace color": "Reemplazar color",
"Replacement:": "Reemplazo:",
"Report issues": "Informar problemas",
"Report Issues": "Informar problemas",
"Resample - Hermite": "Remuestreo - Hermite",
"Reset": "Reiniciar",
"Reset zoom level": "Restablecer nivel de zoom",
"Resize": "Cambiar el tamaño",
"Resized as background": "Redimensionado como fondo",
"Resolution:": "Resolución:",
"Restore alpha": "Restaurar alfa",
"Restore Alpha": "Restaurar alfa",
"Right": "Derecha",
"Right angle:": "Ángulo recto:",
"Rotate": "Girar",
@ -272,16 +272,16 @@
"Saturate": "Saturar",
"Saturation:": "Saturación:",
"Save": "Salvar",
"Save as": "Guardar como",
"Save as data URL": "Guardar como URL de datos",
"Save As": "Guardar como",
"Save As Data URL": "Guardar como URL de datos",
"Save as type:": "Guardar como tipo:",
"Save layers:": "Guardar capas:",
"Save resolution:": "Guardar resolución:",
"Scroll down": "Desplazarse hacia abajo",
"Scroll up": "Desplazarse hacia arriba",
"Search": "Buscar",
"Search images": "Buscar imágenes",
"Select all": "Seleccionar todo",
"Search Images": "Buscar imágenes",
"Select All": "Seleccionar todo",
"Select object tool": "Seleccionar herramienta de objeto",
"Selected": "Seleccionado",
"Selection": "Selección",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Flèche",
"Author:": "Auteur :",
"Auto adjust colors": "Ajuster automatiquement les couleurs",
"Auto Adjust Colors": "Ajuster automatiquement les couleurs",
"Average:": "Moyenne :",
"BMP - Windows Bitmap": "BMP - Windows Bitmap",
"Base": "Base",
@ -33,7 +33,7 @@
"Brush": "Pinceau",
"Bulge\/Pinch tool": "Déformer \/ Bosse",
"Burn": "Brûler",
"CSS filters": "Filtres CSS",
"CSS Filters": "Filtres CSS",
"Can not animate 1 layer.": "Impossible d'animer une couche.",
"Can not find previous layer.": "Impossible de trouver la couche précédente.",
"Cancel": "Annuler",
@ -50,20 +50,20 @@
"Color #": "Couleur #",
"Color Zoom": "Eclat",
"Color alpha value can not be zero.": "La valeur alpha de la couleur ne peut pas être nulle.",
"Color corrections": "Correction des couleurs",
"Color palette": "Palette de couleurs",
"Color to alpha": "Rendre transparent",
"Color Corrections": "Correction des couleurs",
"Color Palette": "Palette de couleurs",
"Color to Alpha": "Rendre transparent",
"Color zoom": "Zoom couleur",
"Color:": "Couleur :",
"Colors": "Couleurs",
"Colors:": "Couleurs :",
"Composition": "Composition",
"Composition:": "Composition :",
"Content fill": "Remplissage de contenu",
"Content Fill": "Remplissage de contenu",
"Contrast": "Contraste",
"Contrast:": "Contraste :",
"Convert to raster": "Convertir en raster",
"Copy selection": "Copier",
"Convert to Raster": "Convertir en raster",
"Copy Selection": "Copier",
"Copy:": "Copie:",
"Courier": "Courier",
"Crop": "Rogner selon la sélection",
@ -74,12 +74,12 @@
"Custom": "Personnalisé",
"Data URL": "URL de données",
"Data URL:": "URL de données:",
"Decrease color depth": "Postériser",
"Decrease Color Depth": "Postériser",
"Default": "Défaut",
"Degree:": "Degré:",
"Del": "Supp",
"Delete": "Supprimer",
"Delete selection": "Effacer la sélection",
"Delete Selection": "Effacer la sélection",
"Denoise": "Réduire le bruit",
"Desaturate": "Désaturer",
"Description:": "Description :",
@ -119,7 +119,7 @@
"File size:": "Taille du fichier :",
"Fill": "Remplir",
"Fit": "Fenêtre",
"Fit window": "Remplir la fenêtre",
"Fit Window": "Remplir la fenêtre",
"Flatten Image": "Fusionner tous les calques",
"Flip": "Retourner",
"FloydSteinberg-serpentine": "FloydSteinberg-serpentine",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, qualité WEBP:",
"JSON - Full layers data": "JSON - Données avec tous les calques",
"Japanese": "Japonais",
"Key-points": "Points clés",
"Key-Points": "Points clés",
"Keyboard Shortcuts": "Raccourcis clavier",
"Keyword:": "Mot-clé:",
"Korean": "Coréen",
@ -201,7 +201,7 @@
"Negative": "Négatif",
"New": "Nouveau...",
"New file": "Nouveau fichier",
"New from selection": "Nouveau à partir de la sélection",
"New from Selection": "Nouveau à partir de la sélection",
"New layer": "Nouveau calque",
"New width can not be smaller then current width": "La nouvelle largeur ne peut pas être plus petite que la largeur actuelle",
"Normal": "Normal",
@ -219,7 +219,7 @@
"Open File": "Fichier ouvert",
"Open URL": "Ouvrir depuis le Web",
"Open data URL": "URL de données ouvertes",
"Original size": "Format original",
"Original Size": "Format original",
"PNG - Portable Network Graphics": "PNG - Portable Network Graphics",
"Palette": "Palette",
"Parameter #1:": "Paramètre n ° 1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "La couche précédente doit être une image, la convertir en raster pour appliquer cet outil.",
"Print": "Imprimer",
"Quality:": "Qualité :",
"Quick load": "Chargement rapide",
"Quick save": "Sauvegarde rapide",
"Quick Load": "Chargement rapide",
"Quick Save": "Sauvegarde rapide",
"Radial": "Radial",
"Radial gradient": "Gradient radial",
"Radius:": "Rayon :",
@ -253,14 +253,14 @@
"Replace Color": "Remplacer une couleur",
"Replace color": "Remplacer une couleur",
"Replacement:": "Remplacement :",
"Report issues": "Signaler un problème",
"Report Issues": "Signaler un problème",
"Resample - Hermite": "Rééchantillonnage",
"Reset": "Réinitialiser",
"Reset zoom level": "Réinitialiser le niveau de zoom",
"Resize": "Redimensionner",
"Resized as background": "Redimensionné comme arrière-plan",
"Resolution:": "Taille :",
"Restore alpha": "Restaurer le niveau alpha",
"Restore Alpha": "Restaurer le niveau alpha",
"Right": "à droite",
"Right angle:": "Angle droit:",
"Rotate": "Faire pivoter",
@ -272,16 +272,16 @@
"Saturate": "Saturer",
"Saturation:": "Saturation :",
"Save": "Enregistrer",
"Save as": "Enregistrer sous",
"Save as data URL": "Enregistrer comme URL de données",
"Save As": "Enregistrer sous",
"Save As Data URL": "Enregistrer comme URL de données",
"Save as type:": "Enregistrer comme type :",
"Save layers:": "Enregistrer les calques :",
"Save resolution:": "Se souvenir de la taille :",
"Scroll down": "Défiler vers le bas",
"Scroll up": "Défiler",
"Search": "Chercher",
"Search images": "Rechercher des images",
"Select all": "Sélectionner tout",
"Search Images": "Rechercher des images",
"Select All": "Sélectionner tout",
"Select object tool": "Déplacer les pixels sélectionnés",
"Selected": "Choisi",
"Selection": "Sélection",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Freccia",
"Author:": "Autore:",
"Auto adjust colors": "Regola automaticamente i colori",
"Auto Adjust Colors": "Regola automaticamente i colori",
"Average:": "Media:",
"BMP - Windows Bitmap": "BMP - Bitmap di Windows",
"Base": "Base",
@ -33,7 +33,7 @@
"Brush": "Spazzola",
"Bulge\/Pinch tool": "Bulge \/ Pinch tool",
"Burn": "Bruciare",
"CSS filters": "Filtri CSS",
"CSS Filters": "Filtri CSS",
"Can not animate 1 layer.": "Impossibile animare 1 livello.",
"Can not find previous layer.": "Impossibile trovare il livello precedente.",
"Cancel": "Annulla",
@ -50,20 +50,20 @@
"Color #": "Colore #",
"Color Zoom": "Zoom a colori",
"Color alpha value can not be zero.": "Il valore alfa del colore non può essere zero.",
"Color corrections": "Correzioni di colore",
"Color palette": "Palette dei colori",
"Color to alpha": "Colore ad alfa",
"Color Corrections": "Correzioni di colore",
"Color Palette": "Palette dei colori",
"Color to Alpha": "Colore ad alfa",
"Color zoom": "Zoom a colori",
"Color:": "Colore:",
"Colors": "Colori",
"Colors:": "Colori:",
"Composition": "Composizione",
"Composition:": "Composizione:",
"Content fill": "Riempimento del contenuto",
"Content Fill": "Riempimento del contenuto",
"Contrast": "Contrasto",
"Contrast:": "Contrasto:",
"Convert to raster": "Converti in raster",
"Copy selection": "Copia selezione",
"Convert to Raster": "Converti in raster",
"Copy Selection": "Copia selezione",
"Copy:": "Copia:",
"Courier": "Corriere",
"Crop": "raccolto",
@ -74,12 +74,12 @@
"Custom": "costume",
"Data URL": "URL dei dati",
"Data URL:": "URL dei dati:",
"Decrease color depth": "Diminuisci la profondità del colore",
"Decrease Color Depth": "Diminuisci la profondità del colore",
"Default": "Predefinito",
"Degree:": "Grado:",
"Del": "del",
"Delete": "Elimina",
"Delete selection": "Elimina selezione",
"Delete Selection": "Elimina selezione",
"Denoise": "Denoise",
"Desaturate": "Togli saturazione",
"Description:": "Descrizione:",
@ -119,7 +119,7 @@
"File size:": "Dimensione del file:",
"Fill": "Riempire",
"Fit": "In forma",
"Fit window": "Finestra adatta",
"Fit Window": "Finestra adatta",
"Flatten Image": "Immagine piatta",
"Flip": "Flip",
"FloydSteinberg-serpentine": "FloydSteinberg-serpentina",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, qualità WEBP:",
"JSON - Full layers data": "JSON - Dati a strati completi",
"Japanese": "giapponese",
"Key-points": "Punti chiave",
"Key-Points": "Punti chiave",
"Keyboard Shortcuts": "Tasti rapidi",
"Keyword:": "Parola chiave:",
"Korean": "coreano",
@ -201,7 +201,7 @@
"Negative": "Negativo",
"New": "Nuovo",
"New file": "Nuovo file",
"New from selection": "Novità dalla selezione",
"New from Selection": "Novità dalla selezione",
"New layer": "Nuovo strato",
"New width can not be smaller then current width": "La nuova larghezza non può essere più piccola della larghezza attuale",
"Normal": "Normale",
@ -219,7 +219,7 @@
"Open File": "Apri il file",
"Open URL": "Apri URL",
"Open data URL": "Apri l'URL dei dati",
"Original size": "Misura originale",
"Original Size": "Misura originale",
"PNG - Portable Network Graphics": "PNG - Portable Network Graphics",
"Palette": "Tavolozza",
"Parameter #1:": "Parametro n. 1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "Il livello precedente deve essere un'immagine, convertirlo in raster per applicare questo strumento.",
"Print": "Stampare",
"Quality:": "Qualità:",
"Quick load": "Carico rapido",
"Quick save": "Salvataggio veloce",
"Quick Load": "Carico rapido",
"Quick Save": "Salvataggio veloce",
"Radial": "Radiale",
"Radial gradient": "Gradiente radiale",
"Radius:": "Raggio:",
@ -253,14 +253,14 @@
"Replace Color": "Sostituisci colore",
"Replace color": "Sostituisci colore",
"Replacement:": "Sostituzione:",
"Report issues": "Segnala problemi",
"Report Issues": "Segnala problemi",
"Resample - Hermite": "Ricampionare - Hermite",
"Reset": "Reset",
"Reset zoom level": "Reimposta il livello di zoom",
"Resize": "Ridimensiona",
"Resized as background": "Ridimensionato come sfondo",
"Resolution:": "Risoluzione:",
"Restore alpha": "Ripristina alpha",
"Restore Alpha": "Ripristina alpha",
"Right": "Destra",
"Right angle:": "Angolo retto:",
"Rotate": "Ruotare",
@ -272,16 +272,16 @@
"Saturate": "Saturare",
"Saturation:": "Saturazione:",
"Save": "Salvare",
"Save as": "Salva come",
"Save as data URL": "Salva come URL dei dati",
"Save As": "Salva come",
"Save As Data URL": "Salva come URL dei dati",
"Save as type:": "Salva come tipo:",
"Save layers:": "Salva livelli:",
"Save resolution:": "Salva risoluzione:",
"Scroll down": "Scorri verso il basso",
"Scroll up": "Scorrere verso l'alto",
"Search": "Ricerca",
"Search images": "Cerca immagini",
"Select all": "Seleziona tutto",
"Search Images": "Cerca immagini",
"Select All": "Seleziona tutto",
"Select object tool": "Seleziona lo strumento oggetto",
"Selected": "Selezionato",
"Selection": "Selezione",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "矢印",
"Author:": "著者:",
"Auto adjust colors": "色を自動調整する",
"Auto Adjust Colors": "色を自動調整する",
"Average:": "平均:",
"BMP - Windows Bitmap": "BMP - Windowsビットマップ",
"Base": "ベース",
@ -33,7 +33,7 @@
"Brush": "みがきます",
"Bulge\/Pinch tool": "バルジ\/ピンチツール",
"Burn": "燃やす",
"CSS filters": "CSSフィルタ",
"CSS Filters": "CSSフィルタ",
"Can not animate 1 layer.": "1つのレイヤーをアニメートできません。",
"Can not find previous layer.": "以前のレイヤーが見つかりません。",
"Cancel": "キャンセル",
@ -50,20 +50,20 @@
"Color #": "色 ",
"Color Zoom": "カラーズーム",
"Color alpha value can not be zero.": "色のアルファ値はゼロにすることはできません。",
"Color corrections": "色補正",
"Color palette": "カラーパレット",
"Color to alpha": "カラーからアルファ",
"Color Corrections": "色補正",
"Color Palette": "カラーパレット",
"Color to Alpha": "カラーからアルファ",
"Color zoom": "カラーズーム",
"Color:": "色:",
"Colors": "色",
"Colors:": "色:",
"Composition": "組成",
"Composition:": "組成:",
"Content fill": "コンテンツの埋め込み",
"Content Fill": "コンテンツの埋め込み",
"Contrast": "コントラスト",
"Contrast:": "コントラスト:",
"Convert to raster": "ラスタに変換する",
"Copy selection": "選択コピー",
"Convert to Raster": "ラスタに変換する",
"Copy Selection": "選択コピー",
"Copy:": "コピー:",
"Courier": "宅配便",
"Crop": "作物",
@ -74,12 +74,12 @@
"Custom": "カスタム",
"Data URL": "データURL",
"Data URL:": "データURL",
"Decrease color depth": "色深度を減らす",
"Decrease Color Depth": "色深度を減らす",
"Default": "デフォルト",
"Degree:": "度:",
"Del": "デル",
"Delete": "削除",
"Delete selection": "選択を削除する",
"Delete Selection": "選択を削除する",
"Denoise": "デノアーズ",
"Desaturate": "不飽和化する",
"Description:": "説明:",
@ -119,7 +119,7 @@
"File size:": "ファイルサイズ:",
"Fill": "塗りつぶす",
"Fit": "フィット",
"Fit window": "ウィンドウに合わせる",
"Fit Window": "ウィンドウに合わせる",
"Flatten Image": "画像を平ら",
"Flip": "フリップ",
"FloydSteinberg-serpentine": "FloydSteinberg-蛇紋文字",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG、WEBP品質",
"JSON - Full layers data": "JSON - フルレイヤーデータ",
"Japanese": "日本語",
"Key-points": "キーポイント",
"Key-Points": "キーポイント",
"Keyboard Shortcuts": "キーボードショートカット",
"Keyword:": "キーワード:",
"Korean": "韓国語",
@ -201,7 +201,7 @@
"Negative": "負",
"New": "新しい",
"New file": "新しいファイル",
"New from selection": "新しい選択から",
"New from Selection": "新しい選択から",
"New layer": "新しいレイヤー",
"New width can not be smaller then current width": "新しい幅は現在の幅より小さくすることはできません",
"Normal": "ノーマル",
@ -219,7 +219,7 @@
"Open File": "ファイルを開く",
"Open URL": "URLを開く",
"Open data URL": "公開データURL",
"Original size": "オリジナルサイズ",
"Original Size": "オリジナルサイズ",
"PNG - Portable Network Graphics": "PNG - ポータブルネットワークグラフィックス",
"Palette": "パレット",
"Parameter #1:": "パラメータ1",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "前のレイヤーはイメージでなければならず、このツールを適用するにはラスターに変換する必要があります。",
"Print": "印刷",
"Quality:": "品質:",
"Quick load": "クイックロード",
"Quick save": "クイックセーブ",
"Quick Load": "クイックロード",
"Quick Save": "クイックセーブ",
"Radial": "ラジアル",
"Radial gradient": "放射グラジエント",
"Radius:": "半径:",
@ -253,14 +253,14 @@
"Replace Color": "色を置き換える",
"Replace color": "色を交換する",
"Replacement:": "置換:",
"Report issues": "レポートの問題",
"Report Issues": "レポートの問題",
"Resample - Hermite": "リサンプル - エルミート",
"Reset": "リセット",
"Reset zoom level": "ズームレベルのリセット",
"Resize": "サイズを変更する",
"Resized as background": "背景としてサイズ変更",
"Resolution:": "解決:",
"Restore alpha": "アルファを復元する",
"Restore Alpha": "アルファを復元する",
"Right": "右",
"Right angle:": "直角:",
"Rotate": "回転する",
@ -272,16 +272,16 @@
"Saturate": "飽和",
"Saturation:": "飽和:",
"Save": "セーブ",
"Save as": "名前を付けて保存",
"Save as data URL": "データURLとして保存",
"Save As": "名前を付けて保存",
"Save As Data URL": "データURLとして保存",
"Save as type:": "タイプとして保存:",
"Save layers:": "レイヤーを保存:",
"Save resolution:": "解像度を保存:",
"Scroll down": "下へスクロール",
"Scroll up": "スクロールアップする",
"Search": "サーチ",
"Search images": "画像を検索する",
"Select all": "すべて選択",
"Search Images": "画像を検索する",
"Select All": "すべて選択",
"Select object tool": "オブジェクトツールを選択",
"Selected": "選択された",
"Selection": "選択",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "화살",
"Author:": "저자:",
"Auto adjust colors": "색상 자동 조정",
"Auto Adjust Colors": "색상 자동 조정",
"Average:": "평균:",
"BMP - Windows Bitmap": "BMP - Windows 비트 맵",
"Base": "베이스",
@ -33,7 +33,7 @@
"Brush": "브러시",
"Bulge\/Pinch tool": "벌지 \/ 핀치 도구",
"Burn": "화상",
"CSS filters": "CSS 필터",
"CSS Filters": "CSS 필터",
"Can not animate 1 layer.": "1 개의 레이어를 애니메이션으로 만들 수 없습니다.",
"Can not find previous layer.": "이전 레이어를 찾을 수 없습니다.",
"Cancel": "취소",
@ -50,20 +50,20 @@
"Color #": "색깔 #",
"Color Zoom": "색상 확대 \/ 축소",
"Color alpha value can not be zero.": "색상 알파 값은 0 일 수 없습니다.",
"Color corrections": "색상 보정",
"Color palette": "색상 팔레트",
"Color to alpha": "알파에서 색상으로",
"Color Corrections": "색상 보정",
"Color Palette": "색상 팔레트",
"Color to Alpha": "알파에서 색상으로",
"Color zoom": "색상 확대 \/ 축소",
"Color:": "색깔:",
"Colors": "그림 물감",
"Colors:": "그림 물감:",
"Composition": "구성",
"Composition:": "구성:",
"Content fill": "콘텐츠 채우기",
"Content Fill": "콘텐츠 채우기",
"Contrast": "대조",
"Contrast:": "대조:",
"Convert to raster": "래스터로 변환",
"Copy selection": "선택 항목 복사",
"Convert to Raster": "래스터로 변환",
"Copy Selection": "선택 항목 복사",
"Copy:": "부:",
"Courier": "급사",
"Crop": "수확고",
@ -74,12 +74,12 @@
"Custom": "관습",
"Data URL": "데이터 URL",
"Data URL:": "데이터 URL :",
"Decrease color depth": "색상 심도 감소",
"Decrease Color Depth": "색상 심도 감소",
"Default": "태만",
"Degree:": "정도:",
"Del": "델",
"Delete": "지우다",
"Delete selection": "선택 항목 삭제",
"Delete Selection": "선택 항목 삭제",
"Denoise": "데니스 이스",
"Desaturate": "불포화",
"Description:": "기술:",
@ -119,7 +119,7 @@
"File size:": "파일 크기 :",
"Fill": "가득 따르다",
"Fit": "적당한",
"Fit window": "창에 맞추기",
"Fit Window": "창에 맞추기",
"Flatten Image": "납작한 이미지",
"Flip": "튀기다",
"FloydSteinberg-serpentine": "FloydSteinberg- 사문석",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, WEBP 품질 :",
"JSON - Full layers data": "JSON - 전체 레이어 데이터",
"Japanese": "일본어",
"Key-points": "키 포인트",
"Key-Points": "키 포인트",
"Keyboard Shortcuts": "키보드 단축키",
"Keyword:": "예어:",
"Korean": "한국어",
@ -201,7 +201,7 @@
"Negative": "부정",
"New": "새로운",
"New file": "새로운 파일",
"New from selection": "선택 항목의 새로운 기능",
"New from Selection": "선택 항목의 새로운 기능",
"New layer": "새 레이어",
"New width can not be smaller then current width": "새 너비는 현재 너비보다 작을 수 없습니다.",
"Normal": "표준",
@ -219,7 +219,7 @@
"Open File": "파일 열기",
"Open URL": "URL 열기",
"Open data URL": "공개 데이터 URL",
"Original size": "원본 크기",
"Original Size": "원본 크기",
"PNG - Portable Network Graphics": "PNG - 휴대용 네트워크 그래픽",
"Palette": "팔레트",
"Parameter #1:": "매개 변수 # 1 :",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "이전 레이어는 이미지 여야하며이 도구를 적용하려면 래스터로 변환해야합니다.",
"Print": "인쇄",
"Quality:": "품질:",
"Quick load": "빠른로드",
"Quick save": "빠른 저장",
"Quick Load": "빠른로드",
"Quick Save": "빠른 저장",
"Radial": "방사형",
"Radial gradient": "방사형 그래디언트",
"Radius:": "반지름:",
@ -253,14 +253,14 @@
"Replace Color": "색상 바꾸기",
"Replace color": "색상 바꾸기",
"Replacement:": "바꿔 놓음:",
"Report issues": "문제 신고",
"Report Issues": "문제 신고",
"Resample - Hermite": "리 샘플 - Hermite",
"Reset": "다시 놓기",
"Reset zoom level": "확대 \/ 축소 레벨 재설정",
"Resize": "크기 조정",
"Resized as background": "배경으로 크기 조정",
"Resolution:": "해결:",
"Restore alpha": "알파 복원",
"Restore Alpha": "알파 복원",
"Right": "권리",
"Right angle:": "직각:",
"Rotate": "회전",
@ -272,16 +272,16 @@
"Saturate": "가득한",
"Saturation:": "포화:",
"Save": "구하다",
"Save as": "다른 이름으로 저장",
"Save as data URL": "데이터 URL로 저장",
"Save As": "다른 이름으로 저장",
"Save As Data URL": "데이터 URL로 저장",
"Save as type:": "유형으로 저장 :",
"Save layers:": "레이어 저장 :",
"Save resolution:": "해상도 절약 :",
"Scroll down": "아래로 스크롤",
"Scroll up": "스크롤",
"Search": "수색",
"Search images": "이미지 검색",
"Select all": "모두 선택",
"Search Images": "이미지 검색",
"Select All": "모두 선택",
"Select object tool": "오브젝트 도구 선택",
"Selected": "선택된",
"Selection": "선택",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Rodyklė",
"Author:": "Autorius:",
"Auto adjust colors": "Sureguliuoti spalvas",
"Auto Adjust Colors": "Sureguliuoti spalvas",
"Average:": "Vidurkis:",
"BMP - Windows Bitmap": "BMP - Windows Bitmap",
"Base": "Bazė",
@ -33,7 +33,7 @@
"Brush": "Šepetys",
"Bulge\/Pinch tool": "Bumbulas\/Žiupsnelis",
"Burn": "Deginti",
"CSS filters": "CSS filtrai",
"CSS Filters": "CSS filtrai",
"Can not animate 1 layer.": "Negalima animuoti 1 sluoksniu.",
"Can not find previous layer.": "Negaliu rasti ankstesnio sluoksnio.",
"Cancel": "Atšaukti",
@ -50,20 +50,20 @@
"Color #": "Spalva #",
"Color Zoom": "Spalvų mastelio keitimas",
"Color alpha value can not be zero.": "Spalvų alfa vertė negali būti lygi nuliui.",
"Color corrections": "Spalvų korekcijos",
"Color palette": "Spalvų paletė",
"Color to alpha": "Spalva alfa",
"Color Corrections": "Spalvų korekcijos",
"Color Palette": "Spalvų paletė",
"Color to Alpha": "Spalva alfa",
"Color zoom": "Spalvų priartinimas",
"Color:": "Spalva:",
"Colors": "Spalvos",
"Colors:": "Spalvos:",
"Composition": "Kompozicija",
"Composition:": "Sudėtis:",
"Content fill": "Turinio užpildymas",
"Content Fill": "Turinio užpildymas",
"Contrast": "Kontrastas",
"Contrast:": "Kontrastas:",
"Convert to raster": "Konvertuoti į rastrą",
"Copy selection": "Kopijuoti pasirinkimą",
"Convert to Raster": "Konvertuoti į rastrą",
"Copy Selection": "Kopijuoti pasirinkimą",
"Copy:": "Kopijuoti:",
"Courier": "Courier",
"Crop": "Iškirpti",
@ -74,12 +74,12 @@
"Custom": "Kitas",
"Data URL": "Duomenų adresas",
"Data URL:": "Duomenų adresas:",
"Decrease color depth": "Sumažinti spalvų gylį",
"Decrease Color Depth": "Sumažinti spalvų gylį",
"Default": "Numatytas",
"Degree:": "Laipsnis:",
"Del": "Del",
"Delete": "Ištrinti",
"Delete selection": "Ištrinti pasirinkimą",
"Delete Selection": "Ištrinti pasirinkimą",
"Denoise": "Sumažinti triukšmą",
"Desaturate": "Sumažinti ryškumą",
"Description:": "Aprašymas:",
@ -119,7 +119,7 @@
"File size:": "Failo dydis:",
"Fill": "Pildyti",
"Fit": "Talpinti",
"Fit window": "Tinkamas langas",
"Fit Window": "Tinkamas langas",
"Flatten Image": "Išlyginti vaizdą",
"Flip": "Apversti",
"FloydSteinberg-serpentine": "Floydsteinberg-serpentinas",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "Jpg, webp kokybės:",
"JSON - Full layers data": "JSON - sluoksnių duomenys",
"Japanese": "Japonų kalba",
"Key-points": "Pagrindiniai klausimai",
"Key-Points": "Pagrindiniai klausimai",
"Keyboard Shortcuts": "Klaviatūros nuorodos",
"Keyword:": "Raktinis žodis:",
"Korean": "Korėjiečių kalba",
@ -201,7 +201,7 @@
"Negative": "Neigiamas",
"New": "Naujas",
"New file": "Naujas failas",
"New from selection": "Nauja iš pasirinkimo",
"New from Selection": "Nauja iš pasirinkimo",
"New layer": "Nauja sluoksnis",
"New width can not be smaller then current width": "Naujas plotis negali būti mažesnis nei dabartinis plotis",
"Normal": "Normalus",
@ -219,7 +219,7 @@
"Open File": "Atidaryti failą",
"Open URL": "Atidaryti url",
"Open data URL": "Atidaryti duomenų url",
"Original size": "Originalus dydis",
"Original Size": "Originalus dydis",
"PNG - Portable Network Graphics": "PNG - portable network graphics",
"Palette": "Paletė",
"Parameter #1:": "Parametras Nr. 1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "Ankstesnis sluoksnis turi būti vaizdas, konvertuoti jį į rastrą, kad būtų taikomas šis įrankis.",
"Print": "Spausdinti",
"Quality:": "Kokybė:",
"Quick load": "Greitas įkrovimas",
"Quick save": "Greitas išsaugojimas",
"Quick Load": "Greitas įkrovimas",
"Quick Save": "Greitas išsaugojimas",
"Radial": "Radialinis",
"Radial gradient": "Radialinis gradientas",
"Radius:": "Spindulys:",
@ -253,14 +253,14 @@
"Replace Color": "Pakeiskite spalvą",
"Replace color": "Pakeiskite spalvą",
"Replacement:": "Pakeitimas:",
"Report issues": "Pranešti apie problemas",
"Report Issues": "Pranešti apie problemas",
"Resample - Hermite": "Resample - hermite",
"Reset": "Atstatyti",
"Reset zoom level": "Atstatyti mastelį",
"Resize": "Keisti dydį",
"Resized as background": "Pakeista kaip fonas",
"Resolution:": "Rezoliucija:",
"Restore alpha": "Atkurti alfa",
"Restore Alpha": "Atkurti alfa",
"Right": "Teisingai",
"Right angle:": "Dešinysis kampas:",
"Rotate": "Sukti",
@ -272,16 +272,16 @@
"Saturate": "Saturate",
"Saturation:": "Spalvingumas:",
"Save": "Išsaugoti",
"Save as": "Išsaugoti kaip",
"Save as data URL": "Išsaugoti kaip duomenų URL",
"Save As": "Išsaugoti kaip",
"Save As Data URL": "Išsaugoti kaip duomenų URL",
"Save as type:": "Išsaugoti kaip:",
"Save layers:": "Išsaugoti sluoksnius:",
"Save resolution:": "Išsaugoti rezoliuciją:",
"Scroll down": "Slinkti žemyn",
"Scroll up": "Slinkite aukštyn",
"Search": "Paieška",
"Search images": "Ieškoti vaizdų",
"Select all": "Pasirinkti viską",
"Search Images": "Ieškoti vaizdų",
"Select All": "Pasirinkti viską",
"Select object tool": "Pasirinkite objektas įrankis",
"Selected": "Pasirinkti",
"Selection": "Pasirinkimas",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Flecha",
"Author:": "Autor:",
"Auto adjust colors": "Cores de ajuste automático",
"Auto Adjust Colors": "Cores de ajuste automático",
"Average:": "Média:",
"BMP - Windows Bitmap": "BMP - Bitmap do Windows",
"Base": "Base",
@ -33,7 +33,7 @@
"Brush": "Escova",
"Bulge\/Pinch tool": "Ferramenta Bulge \/ Pinch",
"Burn": "Queimar",
"CSS filters": "Filtros CSS",
"CSS Filters": "Filtros CSS",
"Can not animate 1 layer.": "Não é possível animar 1 camada.",
"Can not find previous layer.": "Não é possível encontrar a camada anterior.",
"Cancel": "Cancelar",
@ -50,20 +50,20 @@
"Color #": "Cor #",
"Color Zoom": "Zoom de cor",
"Color alpha value can not be zero.": "O valor alpha colorido não pode ser zero.",
"Color corrections": "Correções de cores",
"Color palette": "Paleta de cores",
"Color to alpha": "Cor para alfa",
"Color Corrections": "Correções de cores",
"Color Palette": "Paleta de cores",
"Color to Alpha": "Cor para alfa",
"Color zoom": "Zoom de cor",
"Color:": "Cor:",
"Colors": "Cores",
"Colors:": "Cores:",
"Composition": "Composição",
"Composition:": "Composição:",
"Content fill": "Preenchimento de conteúdo",
"Content Fill": "Preenchimento de conteúdo",
"Contrast": "Contraste",
"Contrast:": "Contraste:",
"Convert to raster": "Converter em raster",
"Copy selection": "Seleção de cópia",
"Convert to Raster": "Converter em raster",
"Copy Selection": "Seleção de cópia",
"Copy:": "Cópia de:",
"Courier": "Correio",
"Crop": "Colheita",
@ -74,12 +74,12 @@
"Custom": "personalizadas",
"Data URL": "URL de dados",
"Data URL:": "URL de dados:",
"Decrease color depth": "Diminuir a profundidade de cor",
"Decrease Color Depth": "Diminuir a profundidade de cor",
"Default": "Padrão",
"Degree:": "Grau:",
"Del": "Del",
"Delete": "Excluir",
"Delete selection": "Eliminar seleção",
"Delete Selection": "Eliminar seleção",
"Denoise": "Denoise",
"Desaturate": "Desaturar",
"Description:": "Descrição:",
@ -119,7 +119,7 @@
"File size:": "Tamanho do arquivo:",
"Fill": "Preencher",
"Fit": "Em forma",
"Fit window": "Janela de ajuste",
"Fit Window": "Janela de ajuste",
"Flatten Image": "Achatar imagem",
"Flip": "Giro",
"FloydSteinberg-serpentine": "FloydSteinberg-serpentine",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, qualidade WEBP:",
"JSON - Full layers data": "JSON - Dados de camadas completas",
"Japanese": "japonês",
"Key-points": "Pontos chave",
"Key-Points": "Pontos chave",
"Keyboard Shortcuts": "Atalhos do teclado",
"Keyword:": "Palavra-chave:",
"Korean": "coreano",
@ -201,7 +201,7 @@
"Negative": "Negativo",
"New": "Novo",
"New file": "Novo arquivo",
"New from selection": "Novo da seleção",
"New from Selection": "Novo da seleção",
"New layer": "Nova camada",
"New width can not be smaller then current width": "A nova largura não pode ser menor do que a largura atual",
"Normal": "Normal",
@ -219,7 +219,7 @@
"Open File": "Abrir arquivo",
"Open URL": "Url aberta",
"Open data URL": "Abrir URL de dados",
"Original size": "Tamanho original",
"Original Size": "Tamanho original",
"PNG - Portable Network Graphics": "PNG - Gráficos de rede portátil",
"Palette": "Paleta",
"Parameter #1:": "Parâmetro # 1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "A camada anterior deve ser imagem, convertê-la em raster para aplicar esta ferramenta.",
"Print": "Impressão",
"Quality:": "Qualidade:",
"Quick load": "Carga rápida",
"Quick save": "Salvamento rapido",
"Quick Load": "Carga rápida",
"Quick Save": "Salvamento rapido",
"Radial": "Radial",
"Radial gradient": "Gradiente radial",
"Radius:": "Raio:",
@ -253,14 +253,14 @@
"Replace Color": "Substituir cor",
"Replace color": "Substitua a cor",
"Replacement:": "Substituição:",
"Report issues": "Relatar problemas",
"Report Issues": "Relatar problemas",
"Resample - Hermite": "Resmplemento - Hermite",
"Reset": "Restabelecer",
"Reset zoom level": "Redefinir o nível de zoom",
"Resize": "Redimensionar",
"Resized as background": "Redimensionado como plano de fundo",
"Resolution:": "Resolução:",
"Restore alpha": "Restaurar alfa",
"Restore Alpha": "Restaurar alfa",
"Right": "Certo",
"Right angle:": "Ângulo certo:",
"Rotate": "Girar",
@ -272,16 +272,16 @@
"Saturate": "Saturar",
"Saturation:": "Saturação:",
"Save": "Salve ",
"Save as": "Salvar como",
"Save as data URL": "Salvar como URL de dados",
"Save As": "Salvar como",
"Save As Data URL": "Salvar como URL de dados",
"Save as type:": "Salvar como tipo:",
"Save layers:": "Salvar camadas:",
"Save resolution:": "Salvar resolução:",
"Scroll down": "Rolar para baixo",
"Scroll up": "Deslize para cima",
"Search": "Pesquisa",
"Search images": "Pesquisar imagens",
"Select all": "Selecionar tudo",
"Search Images": "Pesquisar imagens",
"Select All": "Selecionar tudo",
"Select object tool": "Selecione a ferramenta de objeto",
"Selected": "Selecionado",
"Selection": "Seleção",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Стрела",
"Author:": "Автор:",
"Auto adjust colors": "Автоматическая настройка цветов",
"Auto Adjust Colors": "Автоматическая настройка цветов",
"Average:": "В среднем:",
"BMP - Windows Bitmap": "BMP - битмап Windows",
"Base": "База",
@ -33,7 +33,7 @@
"Brush": "Щетка",
"Bulge\/Pinch tool": "Инструмент для выемки \/ зажима",
"Burn": "жечь",
"CSS filters": "Фильтры CSS",
"CSS Filters": "Фильтры CSS",
"Can not animate 1 layer.": "Невозможно оживить 1 слой.",
"Can not find previous layer.": "Не удается найти предыдущий слой.",
"Cancel": "Отмена",
@ -50,20 +50,20 @@
"Color #": "Цвет #",
"Color Zoom": "Цветное увеличение",
"Color alpha value can not be zero.": "Значение цветной альфа не может быть равно нулю.",
"Color corrections": "Коррекция цвета",
"Color palette": "Цветовая палитра",
"Color to alpha": "Цвет в альфа",
"Color Corrections": "Коррекция цвета",
"Color Palette": "Цветовая палитра",
"Color to Alpha": "Цвет в альфа",
"Color zoom": "Цветное увеличение",
"Color:": "Цвет:",
"Colors": "Цвета",
"Colors:": "Цвета:",
"Composition": "Состав",
"Composition:": "Состав:",
"Content fill": "Контент заполняется",
"Content Fill": "Контент заполняется",
"Contrast": "контрастировать",
"Contrast:": "Контраст:",
"Convert to raster": "Преобразовать в растровый",
"Copy selection": "Выбор копии",
"Convert to Raster": "Преобразовать в растровый",
"Copy Selection": "Выбор копии",
"Copy:": "Копирование:",
"Courier": "курьер",
"Crop": "урожай",
@ -74,12 +74,12 @@
"Custom": "изготовленный на заказ",
"Data URL": "URL-адрес данных",
"Data URL:": "URL-адрес данных:",
"Decrease color depth": "Уменьшить глубину цвета",
"Decrease Color Depth": "Уменьшить глубину цвета",
"Default": "По умолчанию",
"Degree:": "Степень:",
"Del": "Del",
"Delete": "Удалить",
"Delete selection": "Удалить выделение",
"Delete Selection": "Удалить выделение",
"Denoise": "Denoise",
"Desaturate": "Обесцвечивание",
"Description:": "Описание:",
@ -119,7 +119,7 @@
"File size:": "Размер файла:",
"Fill": "заполнить",
"Fit": "Поместиться",
"Fit window": "Окно для установки",
"Fit Window": "Окно для установки",
"Flatten Image": "Свести изображение",
"Flip": "кувырок",
"FloydSteinberg-serpentine": "FloydSteinberg-змеевик",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, WEBP качество:",
"JSON - Full layers data": "JSON - данные с полными слоями",
"Japanese": "Японский",
"Key-points": "Ключевые пункты",
"Key-Points": "Ключевые пункты",
"Keyboard Shortcuts": "Горячие клавиши",
"Keyword:": "Ключевое слово:",
"Korean": "Корейский",
@ -201,7 +201,7 @@
"Negative": "отрицательный",
"New": "новый",
"New file": "Новый файл",
"New from selection": "Новое от выбора",
"New from Selection": "Новое от выбора",
"New layer": "Новый слой",
"New width can not be smaller then current width": "Новая ширина не может быть меньше текущей ширины",
"Normal": "Нормальный",
@ -219,7 +219,7 @@
"Open File": "Открыть файл",
"Open URL": "Открыть URL-адрес",
"Open data URL": "Открыть URL-адрес данных",
"Original size": "Оригинальный размер",
"Original Size": "Оригинальный размер",
"PNG - Portable Network Graphics": "PNG - портативная сетевая графика",
"Palette": "палитра",
"Parameter #1:": "Параметр №1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "Предыдущий слой должен быть изображением, преобразовать его в растр, чтобы применить этот инструмент.",
"Print": "Распечатать",
"Quality:": "Качественный:",
"Quick load": "Быстрая нагрузка",
"Quick save": "Быстрое сохранение",
"Quick Load": "Быстрая нагрузка",
"Quick Save": "Быстрое сохранение",
"Radial": "радиальный",
"Radial gradient": "Радиальный градиент",
"Radius:": "Радиус:",
@ -253,14 +253,14 @@
"Replace Color": "Заменить цвет",
"Replace color": "Заменить цвет",
"Replacement:": "Замена:",
"Report issues": "Проблемы с отчетами",
"Report Issues": "Проблемы с отчетами",
"Resample - Hermite": "Resample - Эрмит",
"Reset": "Сброс",
"Reset zoom level": "Сбросить уровень масштабирования",
"Resize": "Изменение размера",
"Resized as background": "Изменилось в качестве фона",
"Resolution:": "Разрешение:",
"Restore alpha": "Восстановить альфа",
"Restore Alpha": "Восстановить альфа",
"Right": "Правильно",
"Right angle:": "Прямой угол:",
"Rotate": "Поворот",
@ -272,16 +272,16 @@
"Saturate": "насыщать",
"Saturation:": "Насыщенность:",
"Save": "Сохранить",
"Save as": "Сохранить как",
"Save as data URL": "Сохранить как URL-адрес данных",
"Save As": "Сохранить как",
"Save As Data URL": "Сохранить как URL-адрес данных",
"Save as type:": "Сохранить как тип:",
"Save layers:": "Сохранить слои:",
"Save resolution:": "Сохранить разрешение:",
"Scroll down": "Прокрутить вниз",
"Scroll up": "Прокрутка вверх",
"Search": "Поиск",
"Search images": "Поиск изображений",
"Select all": "Выбрать все",
"Search Images": "Поиск изображений",
"Select All": "Выбрать все",
"Select object tool": "Выберите инструмент объекта",
"Selected": "выбранный",
"Selection": "выбор",

View File

@ -11,7 +11,7 @@
"Arial": "Arial",
"Arrow": "Ok",
"Author:": "Yazar:",
"Auto adjust colors": "Renkleri otomatik ayarla",
"Auto Adjust Colors": "Renkleri otomatik ayarla",
"Average:": "Ortalama:",
"BMP - Windows Bitmap": "BMP - Windows Bitmap",
"Base": "baz",
@ -33,7 +33,7 @@
"Brush": "Fırça",
"Bulge\/Pinch tool": "Bulge \/ Sıkma aleti",
"Burn": "Yanmak",
"CSS filters": "CSS filtreleri",
"CSS Filters": "CSS filtreleri",
"Can not animate 1 layer.": "1 katmana canlandırma yapılamıyor.",
"Can not find previous layer.": "Önceki katmanı bulamıyorum.",
"Cancel": "İptal etmek",
@ -50,20 +50,20 @@
"Color #": "Renk #",
"Color Zoom": "Renkli Zoom",
"Color alpha value can not be zero.": "Renkli alfa değeri sıfır olamaz.",
"Color corrections": "Renk düzeltmeleri",
"Color palette": "Renk paleti",
"Color to alpha": "Alfanın renkleri",
"Color Corrections": "Renk düzeltmeleri",
"Color Palette": "Renk paleti",
"Color to Alpha": "Alfanın renkleri",
"Color zoom": "Renkli yakınlaştırma",
"Color:": "Renk:",
"Colors": "Renkler",
"Colors:": "Renkler:",
"Composition": "bileştirme, kompozisyon",
"Composition:": "Bileştirme, kompozisyon:",
"Content fill": "İçerik doldurma",
"Content Fill": "İçerik doldurma",
"Contrast": "Kontrast",
"Contrast:": "Kontrast:",
"Convert to raster": "Rastera dönüştürün",
"Copy selection": "Seçimi kopyala",
"Convert to Raster": "Rastera dönüştürün",
"Copy Selection": "Seçimi kopyala",
"Copy:": "Kopya:",
"Courier": "Kurye",
"Crop": "ekin",
@ -74,12 +74,12 @@
"Custom": "görenek",
"Data URL": "Veri URL'si",
"Data URL:": "Veri URL'si:",
"Decrease color depth": "Renk derinliğini azalt",
"Decrease Color Depth": "Renk derinliğini azalt",
"Default": "Varsayılan",
"Degree:": "Derece:",
"Del": "Del",
"Delete": "silmek",
"Delete selection": "Seçimi sil",
"Delete Selection": "Seçimi sil",
"Denoise": "Denoise",
"Desaturate": "Desaturate",
"Description:": "Açıklama:",
@ -119,7 +119,7 @@
"File size:": "Dosya boyutu:",
"Fill": "doldurmak",
"Fit": "Fit",
"Fit window": "Pencereye sığdır",
"Fit Window": "Pencereye sığdır",
"Flatten Image": "Resmi Düzleştir",
"Flip": "fiske",
"FloydSteinberg-serpentine": "FloydSteinberg-serpantin",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPG, WEBP kalitesi:",
"JSON - Full layers data": "JSON - Tam katmanlı veriler",
"Japanese": "Japonca",
"Key-points": "Anahtar noktaları",
"Key-Points": "Anahtar noktaları",
"Keyboard Shortcuts": "Klavye kısayolları",
"Keyword:": "Anahtar kelime:",
"Korean": "Koreli",
@ -201,7 +201,7 @@
"Negative": "Negatif",
"New": "Yeni",
"New file": "Yeni dosya",
"New from selection": "Seçimden yeni",
"New from Selection": "Seçimden yeni",
"New layer": "Yeni katman",
"New width can not be smaller then current width": "Yeni genişlik o andaki genişlikten daha küçük olamaz",
"Normal": "Normal",
@ -219,7 +219,7 @@
"Open File": "Açık dosya",
"Open URL": "Link aç",
"Open data URL": "Açık veri URL'si",
"Original size": "Orijinal boyut",
"Original Size": "Orijinal boyut",
"PNG - Portable Network Graphics": "PNG - Taşınabilir Ağ Grafikleri",
"Palette": "palet",
"Parameter #1:": "Parametre # 1:",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "Önceki katman resim olmalıdır, bu aracı uygulamak için raster haline getirin.",
"Print": "baskı",
"Quality:": "Kalite:",
"Quick load": "Hızlı yükleme",
"Quick save": "Hızlı kaydet",
"Quick Load": "Hızlı yükleme",
"Quick Save": "Hızlı kaydet",
"Radial": "Radyal",
"Radial gradient": "Radyal degrade",
"Radius:": "radius:",
@ -253,14 +253,14 @@
"Replace Color": "Renk Değiştir",
"Replace color": "Rengi değiştir",
"Replacement:": "Değiştirme:",
"Report issues": "Sorunları bildir",
"Report Issues": "Sorunları bildir",
"Resample - Hermite": "Resample - Hermite",
"Reset": "Reset",
"Reset zoom level": "Zum düzeyini sıfırla",
"Resize": "yeniden boyutlandırma",
"Resized as background": "Arka plan olarak yeniden boyutlandırıldı",
"Resolution:": "Çözüm:",
"Restore alpha": "Alfa geri yükle",
"Restore Alpha": "Alfa geri yükle",
"Right": "Sağ",
"Right angle:": "Doğru açı:",
"Rotate": "Döndürme",
@ -272,16 +272,16 @@
"Saturate": "bombalamak",
"Saturation:": "Doyma:",
"Save": "Kayıt etmek",
"Save as": "Farklı kaydet",
"Save as data URL": "Veri URL'si olarak kaydet",
"Save As": "Farklı kaydet",
"Save As Data URL": "Veri URL'si olarak kaydet",
"Save as type:": "Türünü kaydet:",
"Save layers:": "Katmanları kaydet:",
"Save resolution:": "Çözünürlüğü kaydet:",
"Scroll down": "Aşağı kaydır",
"Scroll up": "Yukarı kaydırmak",
"Search": "Arama",
"Search images": "Resimleri ara",
"Select all": "Hepsini seç",
"Search Images": "Resimleri ara",
"Select All": "Hepsini seç",
"Select object tool": "Nesne aracını seçin",
"Selected": "seçilmiş",
"Selection": "seçim",

View File

@ -11,7 +11,7 @@
"Arial": "宋体",
"Arrow": "箭头",
"Author:": "作者:",
"Auto adjust colors": "自动调整颜色",
"Auto Adjust Colors": "自动调整颜色",
"Average:": "平均:",
"BMP - Windows Bitmap": "BMP - Windows位图",
"Base": "基础",
@ -33,7 +33,7 @@
"Brush": "刷",
"Bulge\/Pinch tool": "凸出\/捏合工具",
"Burn": "烧伤",
"CSS filters": "CSS过滤器",
"CSS Filters": "CSS过滤器",
"Can not animate 1 layer.": "不能动画1层。",
"Can not find previous layer.": "找不到以前的图层。",
"Cancel": "取消",
@ -50,20 +50,20 @@
"Color #": "颜色#",
"Color Zoom": "颜色缩放",
"Color alpha value can not be zero.": "颜色alpha值不能为零。",
"Color corrections": "颜色更正",
"Color palette": "调色板",
"Color to alpha": "颜色到阿尔法",
"Color Corrections": "颜色更正",
"Color Palette": "调色板",
"Color to Alpha": "颜色到阿尔法",
"Color zoom": "彩色变焦",
"Color:": "颜色:",
"Colors": "颜色",
"Colors:": "颜色:",
"Composition": "组成",
"Composition:": "组成:",
"Content fill": "内容填写",
"Content Fill": "内容填写",
"Contrast": "对比",
"Contrast:": "对比:",
"Convert to raster": "转换为光栅",
"Copy selection": "复制选择",
"Convert to Raster": "转换为光栅",
"Copy Selection": "复制选择",
"Copy:": "复制:",
"Courier": "信使",
"Crop": "作物",
@ -74,12 +74,12 @@
"Custom": "习惯",
"Data URL": "数据网址",
"Data URL:": "数据网址:",
"Decrease color depth": "减少颜色深度",
"Decrease Color Depth": "减少颜色深度",
"Default": "默认",
"Degree:": "度:",
"Del": "德尔",
"Delete": "删除",
"Delete selection": "删除选择",
"Delete Selection": "删除选择",
"Denoise": "降噪",
"Desaturate": "去色",
"Description:": "描述:",
@ -119,7 +119,7 @@
"File size:": "文件大小:",
"Fill": "填",
"Fit": "适合",
"Fit window": "适合的窗口",
"Fit Window": "适合的窗口",
"Flatten Image": "拼合图像",
"Flip": "翻动",
"FloydSteinberg-serpentine": "FloydSteinberg蛇形",
@ -167,7 +167,7 @@
"JPG, WEBP quality:": "JPGWEBP质量",
"JSON - Full layers data": "JSON - 全层数据",
"Japanese": "日本",
"Key-points": "关键点",
"Key-Points": "关键点",
"Keyboard Shortcuts": "键盘快捷键",
"Keyword:": "关键词:",
"Korean": "朝鲜的",
@ -201,7 +201,7 @@
"Negative": "负",
"New": "新",
"New file": "新文件",
"New from selection": "新的选择",
"New from Selection": "新的选择",
"New layer": "新的图层",
"New width can not be smaller then current width": "新的宽度不能小于当前的宽度",
"Normal": "正常",
@ -219,7 +219,7 @@
"Open File": "打开文件",
"Open URL": "打开网址",
"Open data URL": "打开数据网址",
"Original size": "原始尺寸",
"Original Size": "原始尺寸",
"PNG - Portable Network Graphics": "PNG - 便携式网络图形",
"Palette": "调色板",
"Parameter #1:": "参数1",
@ -239,8 +239,8 @@
"Previous layer must be image, convert it to raster to apply this tool.": "上一层必须是图像,将其转换为栅格来应用此工具。",
"Print": "打印",
"Quality:": "质量:",
"Quick load": "快速加载",
"Quick save": "快速保存",
"Quick Load": "快速加载",
"Quick Save": "快速保存",
"Radial": "径向",
"Radial gradient": "径向渐变",
"Radius:": "半径:",
@ -253,14 +253,14 @@
"Replace Color": "替换颜色",
"Replace color": "替换颜色",
"Replacement:": "替代:",
"Report issues": "报告问题",
"Report Issues": "报告问题",
"Resample - Hermite": "重新取样 - Hermite",
"Reset": "重启",
"Reset zoom level": "重置缩放级别",
"Resize": "调整",
"Resized as background": "调整为背景",
"Resolution:": "解析度:",
"Restore alpha": "恢复阿尔法",
"Restore Alpha": "恢复阿尔法",
"Right": "对",
"Right angle:": "直角:",
"Rotate": "旋转",
@ -272,16 +272,16 @@
"Saturate": "饱和",
"Saturation:": "饱和:",
"Save": "保存",
"Save as": "另存为",
"Save as data URL": "另存为数据网址",
"Save As": "另存为",
"Save As Data URL": "另存为数据网址",
"Save as type:": "另存为类型:",
"Save layers:": "保存图层:",
"Save resolution:": "保存分辨率:",
"Scroll down": "向下滚动",
"Scroll up": "向上滑动",
"Search": "搜索",
"Search images": "搜索图片",
"Select all": "全选",
"Search Images": "搜索图片",
"Select All": "全选",
"Select object tool": "选择对象工具",
"Selected": "选",
"Selection": "选择",

View File

@ -1,643 +0,0 @@
//http://www.dynamicdrive.com/dynamicindex1/ddsmoothmenu.htm
var ddsmoothmenu = {
arrowimages: {
down: ["rightarrowclass", "", 0],
right: ["rightarrowclass", "", 0]
},
transition: {
overtime: 0,
outtime: 0
}, //duration of slide in/out animation, in milliseconds
shadow: false, //enable shadow?
//showhidedelay:{showdelay:100,hidedelay:200}, //set delay in milliseconds before sub menus appear and disappear, respectively
showhidedelay: {
showdelay: 0,
hidedelay: 0
},
zindexvalue: 1e3, //set z-index value for menus
closeonnonmenuclick: true,
closeonmouseout: false,
overarrowre: /(?=\.(gif|jpg|jpeg|png|bmp))/i,
overarrowaddtofilename: "_over",
detecttouch: !!("ontouchstart" in window) || !!("ontouchstart" in document.documentElement) || !!window.ontouchstart || !!window.Touch && !!window.Touch.length || !!window.onmsgesturechange || window.DocumentTouch && window.document instanceof window.DocumentTouch,
detectwebkit: navigator.userAgent.toLowerCase().indexOf("applewebkit") > -1,
idevice: /ipad|iphone/i.test(navigator.userAgent),
detectie6: function() {
var e;
return (e = /MSIE (\d+)/.exec(navigator.userAgent)) && e[1] < 7
}(),
detectie9: function() {
var e;
return (e = /MSIE (\d+)/.exec(navigator.userAgent)) && e[1] > 8
}(),
ie9shadow: function() {},
css3support: typeof document.documentElement.style.boxShadow === "string" || !document.all && document.querySelector,
prevobjs: [],
menus: null,
executelink: function(e, t, n) {
var r = t.length,
i = n.target;
while (--r > -1) {
if (t[r] === this) {
t.splice(r, 1);
if (i.href !== ddsmoothmenu.emptyhash && i.href && e(i).is("a") && !e(i).children("span." + ddsmoothmenu.arrowimages.down[0] + ", span." + ddsmoothmenu.arrowimages.right[0]).length) {
if (i.target && i.target !== "_self") {
window.open(i.href, i.target)
} else {
window.location.href = i.href
}
n.stopPropagation()
}
}
}
},
repositionv: function(e, t, n, r, i, s, o) {
o = o || 0;
var u = 0,
a = r + i;
e.css({
top: n,
display: "block"
});
while (e.offset().top < i) {
e.css({
top: ++n
});
++u
}
if (!u && t.offset().top + t.outerHeight() < a && e.data("height") + e.offset().top > a) {
e.css({
top: i - t.parents("ul").last().offset().top - t.position().top
})
}
s === "toggle" && e.css({
display: "none"
});
if (n !== o) {
e.addClass("repositionedv")
}
return [u, n]
},
updateprev: function(e, t, n) {
var r = t.length,
i, s = n.parents().add(this);
while (--r > -1) {
if (s.index(i = t[r]) < 0) {
e(i).trigger("click", [1]);
t.splice(r, 1)
}
}
t.push(this)
},
subulpreventemptyclose: function(e) {
var t = e.target;
if (t.href === ddsmoothmenu.emptyhash && $(t).parent("li").find("ul").length < 1) {
e.preventDefault();
e.stopPropagation()
}
},
getajaxmenu: function(e, t, n) {
var r = e("#" + t.contentsource[0]);
r.html("Loading Menu...");
e.ajax({
url: t.contentsource[1],
async: true,
error: function(e) {
r.html("Error fetching content. Server Response: " + e.responseText)
},
success: function(i) {
r.html(i);
!!!n && ddsmoothmenu.buildmenu(e, t)
}
})
},
closeall: function(e) {
var t = ddsmoothmenu,
n;
if (!t.globaltrackopen) {
return
}
if (e.type === "mouseleave" || (e.type === "click" || e.type === "touchstart") && t.menus.index(e.target) < 0) {
n = t.prevobjs.length;
while (--n > -1) {
$(t.prevobjs[n]).trigger("click");
t.prevobjs.splice(n, 1)
}
}
},
emptyhash: $('<a href="#"></a>').get(0).href,
buildmenu: function(e, t) {
var n = ddsmoothmenu;
n.globaltrackopen = n.closeonnonmenuclick || n.closeonmouseout;
var r = 0;
var i = n.globaltrackopen ? n.prevobjs : [];
var s = e("#" + t.mainmenuid).removeClass("ddsmoothmenu ddsmoothmenu-v").addClass(t.classname || "ddsmoothmenu");
t.repositionv = t.repositionv !== false;
var o = s.find(">ul");
var u = n.detecttouch ? "toggle" : t.method === "toggle" ? "toggle" : "hover";
var a = o.find(">li>ul").parent();
var f = t.orientation != "v" ? "down" : "right",
l = e(document.body);
o.click(function(e) {
e.target.href === n.emptyhash && e.preventDefault()
});
if (u === "toggle") {
if (n.globaltrackopen) {
n.menus = n.menus ? n.menus.add(o.add(o.find("*"))) : o.add(o.find("*"))
}
if (n.closeonnonmenuclick) {
if (f === "down") {
s.click(function(e) {
e.stopPropagation()
})
}
e(document).unbind("click.smoothmenu").bind("click.smoothmenu", n.closeall);
if (n.idevice) {
document.removeEventListener("touchstart", n.closeall, false);
document.addEventListener("touchstart", n.closeall, false)
}
} else if (t.closeonnonmenuclick) {
if (f === "down") {
s.click(function(e) {
e.stopPropagation()
})
}
e(document).bind("click." + t.mainmenuid, function(e) {
o.find("li>a.selected").parent().trigger("click")
});
if (n.idevice) {
document.addEventListener("touchstart", function(e) {
o.find("li>a.selected").parent().trigger("click")
}, false)
}
}
if (n.closeonmouseout) {
var c = f === "down" ? s : o;
c.bind("mouseleave.smoothmenu", n.closeall)
} else if (t.closeonmouseout) {
var c = f === "down" ? s : o;
c.bind("mouseleave.smoothmenu", function() {
o.find("li>a.selected").parent().trigger("click")
})
}
if (!e('style[title="ddsmoothmenushadowsnone"]').length) {
e("head").append('<style title="ddsmoothmenushadowsnone" type="text/css">.ddsmoothmenushadowsnone{display:none!important;}</style>')
}
var h;
e(window).bind("resize scroll", function() {
clearTimeout(h);
var t = o.find("li>a.selected").parent(),
n = e(".ddshadow").addClass("ddsmoothmenushadowsnone");
t.eq(0).trigger("click");
t.trigger("click");
h = setTimeout(function() {
n.removeClass("ddsmoothmenushadowsnone")
}, 100)
})
}
a.each(function() {
function p() {
a.removeClass("selected")
}
var s = e(this).css({
zIndex: (t.zindexvalue || n.zindexvalue) + r--
});
var o = s.children("ul:eq(0)").css({
display: "block"
}).data("timers", {});
var a = s.children("a:eq(0)").css({
paddingRight: n.arrowimages[f][2]
}).append('<span style="display: block;" class="' + n.arrowimages[f][0] + '"></span>');
var c = {
w: a.outerWidth(),
h: s.innerHeight(),
subulw: o.outerWidth(),
subulh: o.outerHeight()
};
var h = f === "down" ? c.h : 0;
o.css({
top: h
});
u === "toggle" && o.click(n.subulpreventemptyclose);
s[u](function(r) {
if (!s.data("headers")) {
n.buildsubheaders(e, o.find(">li>ul").parent(), t, u, i);
s.data("headers", true).find(">ul").each(function(t, n) {
var r = e(n);
r.data("height", r.outerHeight())
}).css({
display: "none",
visibility: "visible"
})
}
u === "toggle" && n.updateprev.call(this, e, i, s);
clearTimeout(o.data("timers").hidetimer);
a.addClass("selected");
o.data("timers").showtimer = setTimeout(function() {
var r = f === "down" ? 0 : c.w;
var i = r,
p, d, v, m = 0;
r = s.offset().left + r + c.subulw > e(window).width() ? f === "down" ? -c.subulw + c.w : -c.w : r;
i = i !== r;
o.css({
top: h
}).removeClass("repositionedv");
if (t.repositionv && a.offset().top + h + o.data("height") > (v = e(window).height()) + (d = e(document).scrollTop())) {
p = (f === "down" ? 0 : a.outerHeight()) - o.data("height");
m = n.repositionv(o, a, p, v, d, u, h)[0]
}
o.css({
left: r,
width: c.subulw
}).stop(true, true).animate({
height: "show",
opacity: "show"
}, n.transition.overtime, function() {
this.style.removeAttribute && this.style.removeAttribute("filter")
});
if (i) {
o.addClass("repositioned")
} else {
o.removeClass("repositioned")
}
if (t.shadow) {
if (!s.data("$shadow")) {
s.data("$shadow", e("<div></div>").addClass("ddshadow toplevelshadow").prependTo(l).css({
zIndex: s.css("zIndex")
}))
}
n.ie9shadow(s.data("$shadow"));
var g = o.offset();
var y = g.left;
var b = g.top;
s.data("$shadow").css({
overflow: "visible",
width: c.subulw,
left: y,
top: b
}).stop(true, true).animate({
height: c.subulh
}, n.transition.overtime)
}
}, n.showhidedelay.showdelay)
}, function(t, r) {
var a = s.data("$shadow");
if (u === "hover") {
p()
} else {
n.executelink.call(this, e, i, t)
}
clearTimeout(o.data("timers").showtimer);
o.data("timers").hidetimer = setTimeout(function() {
o.stop(true, true).animate({
height: "hide",
opacity: "hide"
}, r || n.transition.outtime, function() {
u === "toggle" && p()
});
if (a) {
if (!n.css3support && n.detectwebkit) {
a.children("div:eq(0)").css({
opacity: 0
})
}
a.stop(true, true).animate({
height: 0
}, r || n.transition.outtime, function() {
if (u === "toggle") {
this.style.overflow = "hidden"
}
})
}
}, n.showhidedelay.hidedelay)
})
})
},
buildsubheaders: function(e, t, n, r, i) {
t.each(function() {
function l() {
a.removeClass("selected")
}
var t = ddsmoothmenu;
var s = e(this).css({
zIndex: e(this).parent("ul").css("z-index")
});
var o = s.children("ul:eq(0)").css({
display: "block"
}).data("timers", {}),
u;
r === "toggle" && o.click(t.subulpreventemptyclose);
var a = s.children("a:eq(0)").append('<span style="display: block;" class="' + t.arrowimages["right"][0] + '"></span>');
var f = {
w: a.outerWidth(),
subulw: o.outerWidth(),
subulh: o.outerHeight()
};
o.css({
top: 0
});
s[r](function(l) {
if (!s.data("headers")) {
t.buildsubheaders(e, o.find(">li>ul").parent(), n, r, i);
s.data("headers", true).find(">ul").each(function(t, n) {
var r = e(n);
r.data("height", r.height())
}).css({
display: "none",
visibility: "visible"
})
}
r === "toggle" && t.updateprev.call(this, e, i, s);
clearTimeout(o.data("timers").hidetimer);
a.addClass("selected");
o.data("timers").showtimer = setTimeout(function() {
var i = f.w;
var l = i,
c, h, p, d = 0;
i = s.offset().left + i + f.subulw > e(window).width() ? -f.w : i;
l = l !== i;
o.css({
top: 0
}).removeClass("repositionedv");
if (n.repositionv && a.offset().top + o.data("height") > (p = e(window).height()) + (h = e(document).scrollTop())) {
c = a.outerHeight() - o.data("height");
d = t.repositionv(o, a, c, p, h, r);
c = d[1];
d = d[0]
}
o.css({
left: i,
width: f.subulw
}).stop(true, true).animate({
height: "show",
opacity: "show"
}, t.transition.overtime, function() {
this.style.removeAttribute && this.style.removeAttribute("filter")
});
if (l) {
o.addClass("repositioned")
} else {
o.removeClass("repositioned")
}
if (n.shadow) {
if (!s.data("$shadow")) {
u = s.parents("li:eq(0)").data("$shadow");
s.data("$shadow", e("<div></div>").addClass("ddshadow").prependTo(u).css({
zIndex: u.css("z-index")
}))
}
var v = o.offset();
var m = i;
var g = s.position().top - (c ? o.data("height") - a.outerHeight() - d : 0);
if (t.detectwebkit && !t.css3support) {
s.data("$shadow").css({
opacity: 1
})
}
s.data("$shadow").css({
overflow: "visible",
width: f.subulw,
left: m,
top: g
}).stop(true, true).animate({
height: f.subulh
}, t.transition.overtime)
}
}, t.showhidedelay.showdelay)
}, function(n, u) {
var a = s.data("$shadow");
if (r === "hover") {
l()
} else {
t.executelink.call(this, e, i, n)
}
clearTimeout(o.data("timers").showtimer);
o.data("timers").hidetimer = setTimeout(function() {
o.stop(true, true).animate({
height: "hide",
opacity: "hide"
}, u || t.transition.outtime, function() {
r === "toggle" && l()
});
if (a) {
if (!t.css3support && t.detectwebkit) {
a.children("div:eq(0)").css({
opacity: 0
})
}
a.stop(true, true).animate({
height: 0
}, u || t.transition.outtime, function() {
if (r === "toggle") {
this.style.overflow = "hidden"
}
})
}
}, t.showhidedelay.hidedelay)
})
})
},
init: function(e) {
function o() {
if (s) {
return
}
if (typeof e.customtheme == "object" && e.customtheme.length == 2) {
var n = e.orientation == "v" ? t : t + ", " + t;
i.push([n, " ul li a {background:", e.customtheme[0], ";}\n", t, " ul li a:hover {background:", e.customtheme[1], ";}"].join(""))
}
i.push('\n<style type="text/css">');
i.reverse();
jQuery("head").append(i.join("\n"))
}
if (this.detectie6 && parseFloat(jQuery.fn.jquery) > 1.3) {
this.init = function(e) {
if (typeof e.contentsource == "object") {
jQuery(function(t) {
ddsmoothmenu.getajaxmenu(t, e, "nobuild")
})
}
return false
};
jQuery('link[href*="ddsmoothmenu"]').attr("disabled", true);
jQuery(function(e) {
alert("You Seriously Need to Update Your Browser!\n\nDynamic Drive Smooth Navigational Menu Showing Text Only Menu(s)\n\nDEVELOPER's NOTE: This script will run in IE 6 when using jQuery 1.3.2 or less,\nbut not real well.");
e('link[href*="ddsmoothmenu"]').attr("disabled", true)
});
return this.init(e)
}
var t = "#" + e.mainmenuid,
n, r, i = ["</style>\n"],
s = e.arrowswap ? 4 : 2;
if (e.arrowswap) {
n = ddsmoothmenu.arrowimages.right[1].replace(ddsmoothmenu.overarrowre, ddsmoothmenu.overarrowaddtofilename);
r = ddsmoothmenu.arrowimages.down[1].replace(ddsmoothmenu.overarrowre, ddsmoothmenu.overarrowaddtofilename);
jQuery(new Image).bind("load error", function(n) {
e.rightswap = n.type === "load";
if (e.rightswap) {
i.push([t, " ul li a:hover .", ddsmoothmenu.arrowimages.right[0], ", ", t, " ul li a.selected .", ddsmoothmenu.arrowimages.right[0], " { background-image: url(", this.src, ");}"].join(""))
}--s;
o()
}).attr("src", n);
jQuery(new Image).bind("load error", function(n) {
e.downswap = n.type === "load";
if (e.downswap) {
i.push([t, " ul li a:hover .", ddsmoothmenu.arrowimages.down[0], ", ", t, " ul li a.selected .", ddsmoothmenu.arrowimages.down[0], " { background-image: url(", this.src, ");}"].join(""))
}--s;
o()
}).attr("src", r)
}
jQuery(new Image).bind("load error", function(e) {
if (e.type === "load") {
i.push([t + " ul li a .", ddsmoothmenu.arrowimages.right[0], " { background: url(", this.src, ") no-repeat;width:", this.width, "px;height:", this.height, "px;}"].join(""))
}--s;
o()
}).attr("src", ddsmoothmenu.arrowimages.right[1]);
jQuery(new Image).bind("load error", function(e) {
if (e.type === "load") {
i.push([t + " ul li a .", ddsmoothmenu.arrowimages.down[0], " { background: url(", this.src, ") no-repeat;width:", this.width, "px;height:", this.height, "px;}"].join(""))
}--s;
o()
}).attr("src", ddsmoothmenu.arrowimages.down[1]);
e.shadow = this.detectie6 && (e.method === "hover" || e.orientation === "v") ? false : e.shadow || this.shadow;
jQuery(document).ready(function(t) {
if (e.shadow && ddsmoothmenu.css3support) {
t("body").addClass("ddcss3support")
}
if (typeof e.contentsource == "object") {
ddsmoothmenu.getajaxmenu(t, e)
} else {
ddsmoothmenu.buildmenu(t, e)
}
})
}
};
if (function(e) {
var t = false;
try {
e('<a href="#"></a>').toggle(function() {}, function() {
t = true
}).trigger("click").trigger("click")
} catch (n) {}
return !t
}(jQuery)) {
(function() {
var e = jQuery.fn.toggle;
jQuery.extend(jQuery.fn, {
toggle: function(t, n) {
if (!jQuery.isFunction(t) || !jQuery.isFunction(n)) {
return e.apply(this, arguments)
}
var r = arguments,
i = t.guid || jQuery.guid++,
s = 0,
o = function(e) {
var n = (jQuery._data(this, "lastToggle" + t.guid) || 0) % s;
jQuery._data(this, "lastToggle" + t.guid, n + 1);
e.preventDefault();
return r[n].apply(this, arguments) || false
};
o.guid = i;
while (s < r.length) {
r[s++].guid = i
}
return this.click(o)
}
})
})()
}
if (ddsmoothmenu.detectie9) {
(function(e) {
function t(e, t) {
return parseInt(e) + t + "px"
}
ddsmoothmenu.ie9shadow = function(n) {
var r = document.defaultView.getComputedStyle(n.get(0), null),
i = r.getPropertyValue("box-shadow").split(" "),
s = {
top: r.getPropertyValue("margin-top"),
left: r.getPropertyValue("margin-left")
};
e("head").append(['\n<style title="ie9shadow" type="text/css">', ".ddcss3support .ddshadow {", " box-shadow: " + t(i[0], 1) + " " + t(i[1], 1) + " " + i[2] + " " + i[3] + ";", "}", ".ddcss3support .ddshadow.toplevelshadow {", " opacity: " + (e(".ddcss3support .ddshadow").css("opacity") - .1) + ";", " margin-top: " + t(s.top, -1) + ";", " margin-left: " + t(s.left, -1) + ";", "}", "</style>\n"].join("\n"));
ddsmoothmenu.ie9shadow = function() {}
};
var n = e.fn.height,
r = e.fn.width;
e.extend(e.fn, {
height: function() {
var e = this.get(0);
if (this.length < 1 || arguments.length || e === window || e === document) {
return n.apply(this, arguments)
}
return parseFloat(document.defaultView.getComputedStyle(e, null).getPropertyValue("height"))
},
innerHeight: function() {
if (this.length < 1) {
return null
}
var e = this.height(),
t = this.get(0),
n = document.defaultView.getComputedStyle(t, null);
e += parseInt(n.getPropertyValue("padding-top"));
e += parseInt(n.getPropertyValue("padding-bottom"));
return e
},
outerHeight: function(e) {
if (this.length < 1) {
return null
}
var t = this.innerHeight(),
n = this.get(0),
r = document.defaultView.getComputedStyle(n, null);
t += parseInt(r.getPropertyValue("border-top-width"));
t += parseInt(r.getPropertyValue("border-bottom-width"));
if (e) {
t += parseInt(r.getPropertyValue("margin-top"));
t += parseInt(r.getPropertyValue("margin-bottom"))
}
return t
},
width: function() {
var e = this.get(0);
if (this.length < 1 || arguments.length || e === window || e === document) {
return r.apply(this, arguments)
}
return parseFloat(document.defaultView.getComputedStyle(e, null).getPropertyValue("width"))
},
innerWidth: function() {
if (this.length < 1) {
return null
}
var e = this.width(),
t = this.get(0),
n = document.defaultView.getComputedStyle(t, null);
e += parseInt(n.getPropertyValue("padding-right"));
e += parseInt(n.getPropertyValue("padding-left"));
return e
},
outerWidth: function(e) {
if (this.length < 1) {
return null
}
var t = this.innerWidth(),
n = this.get(0),
r = document.defaultView.getComputedStyle(n, null);
t += parseInt(r.getPropertyValue("border-right-width"));
t += parseInt(r.getPropertyValue("border-left-width"));
if (e) {
t += parseInt(r.getPropertyValue("margin-right"));
t += parseInt(r.getPropertyValue("margin-left"))
}
return t
}
})
})(jQuery)
};
//ddsmoothmenu.init({
// mainmenuid: "main_menu",
// method: 'toggle', //'hover' (default) or 'toggle'
// contentsource: "markup",
//});
export default ddsmoothmenu;

View File

@ -11,11 +11,11 @@ class Help_shortcuts_class {
var settings = {
title: 'Keyboard Shortcuts',
params: [
{title: "F9", value: 'Quick save'},
{title: "F10", value: 'Quick load'},
{title: "F9", value: 'Quick Save'},
{title: "F10", value: 'Quick Load'},
{title: "S", value: 'Save'},
{title: "T", value: 'Trim'},
{title: "F", value: 'Auto adjust colors'},
{title: "F", value: 'Auto Adjust Colors'},
{title: "G", value: 'Grid on/off'},
{title: "L", value: 'Rotate left'},
{title: "N", value: 'New layer'},
@ -23,7 +23,7 @@ class Help_shortcuts_class {
{title: "Scroll up", value: 'Zoom in'},
{title: "Scroll down", value: 'Zoom out'},
{title: "CTRL + Z", value: 'Undo'},
{title: "CTRL + A", value: 'Select all'},
{title: "CTRL + A", value: 'Select All'},
{title: "CTRL + V", value: 'Paste'},
],
};

View File

@ -21,7 +21,7 @@ class Help_translate_class {
}
//change language
translate(lang_code) {
translate(lang_code, element) {
if (lang_code == undefined) {
lang_code = this.Helper.getCookie('language');
if (!lang_code) {
@ -38,7 +38,7 @@ class Help_translate_class {
if (first[lang_code] != undefined || lang_code == 'en') {
//translate
$('body').translate({lang: lang_code, t: this.translations});
$(element || 'body').translate({lang: lang_code, t: this.translations});
config.LANG = lang_code;
}
else {

View File

@ -23,7 +23,7 @@ class Image_colorCorrections_class {
}
var settings = {
title: 'Color corrections',
title: 'Color Corrections',
preview: true,
on_change: function (params, canvas_preview, w, h) {
var img = canvas_preview.getImageData(0, 0, w, h);

View File

@ -23,7 +23,7 @@ class Image_decreaseColors_class {
}
var settings = {
title: 'Decrease color depth',
title: 'Decrease Color Depth',
preview: true,
on_change: function (params, canvas_preview, w, h) {
var img = canvas_preview.getImageData(0, 0, w, h);

View File

@ -21,7 +21,7 @@ class Tools_colorToAlpha_class {
}
var settings = {
title: 'Color to alpha',
title: 'Color to Alpha',
preview: true,
on_change: function (params, canvas_preview, w, h) {
var img = canvas_preview.getImageData(0, 0, w, h);

View File

@ -22,7 +22,7 @@ class Tools_contentFill_class {
}
var settings = {
title: 'Content fill',
title: 'Content Fill',
preview: true,
on_change: function (params, canvas_preview, w, h, canvasElement) {
canvas_preview.clearRect(0, 0, w, h);

View File

@ -19,7 +19,7 @@ class Tools_restoreAlpha_class {
}
var settings = {
title: 'Restore alpha',
title: 'Restore Alpha',
preview: true,
on_change: function (params, canvas_preview, w, h) {
var img = canvas_preview.getImageData(0, 0, w, h);