1
0
Fork 0

chore: Linter run

This commit is contained in:
Joost De Cock 2021-08-30 11:40:16 +02:00
parent e693c7712e
commit ef3bd03e2c
183 changed files with 919 additions and 1838 deletions

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { options, Point, points, Path, paths, complete, macro, sa, store, paperless } =
options, part.shorthand()
Point,
points,
Path,
paths,
complete,
macro,
sa,
store,
paperless,
} = part.shorthand()
if (!options.adjustmentRibbon) { if (!options.adjustmentRibbon) {
part.render = false part.render = false

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { options, Point, points, Path, paths, complete, macro, sa, store, paperless } =
options, part.shorthand()
Point,
points,
Path,
paths,
complete,
macro,
sa,
store,
paperless,
} = part.shorthand()
if (!options.adjustmentRibbon) { if (!options.adjustmentRibbon) {
part.render = false part.render = false

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { Point, Path, measurements, store, options, complete, macro, points, paths, sa, paperless } =
Point, part.shorthand()
Path,
measurements,
store,
options,
complete,
macro,
points,
paths,
sa,
paperless,
} = part.shorthand()
if (options.adjustmentRibbon) { if (options.adjustmentRibbon) {
part.render = false part.render = false

View file

@ -19,7 +19,7 @@ export default {
'sleeveLengthBonus', 'sleeveLengthBonus',
'sleeveBend', 'sleeveBend',
], ],
style: [ 's3Collar', 's3Armhole' ], style: ['s3Collar', 's3Armhole'],
advanced: [ advanced: [
'acrossBackFactor', 'acrossBackFactor',
'armholeDepthFactor', 'armholeDepthFactor',

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -18,7 +18,7 @@ export default {
'lengthBonus', 'lengthBonus',
'sleeveLengthBonus', 'sleeveLengthBonus',
], ],
style: [ 's3Collar', 's3Armhole' ], style: ['s3Collar', 's3Armhole'],
advanced: [ advanced: [
'acrossBackFactor', 'acrossBackFactor',
'armholeDepthFactor', 'armholeDepthFactor',

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -14,7 +14,7 @@ export default (part) => {
macro, macro,
options, options,
Point, Point,
utils utils,
} = part.shorthand() } = part.shorthand()
points.anchor = points.hps.clone() points.anchor = points.hps.clone()
@ -27,8 +27,7 @@ export default (part) => {
.move(points.hps) .move(points.hps)
.curve_(points.neckCp2, points.cbNeck) .curve_(points.neckCp2, points.cbNeck)
.setRender(false) .setRender(false)
} } else if (options.s3Collar > 0) {
else if (options.s3Collar > 0) {
// Shift shoulder seam forward on the collar side // Shift shoulder seam forward on the collar side
points.s3CollarSplit = utils.curveIntersectsY( points.s3CollarSplit = utils.curveIntersectsY(
points.hps, points.hps,
@ -42,16 +41,15 @@ export default (part) => {
._curve(points.mirroredNeckCp2Front, points.mirroredCfNeckCp1, points.mirroredCfNeck) ._curve(points.mirroredNeckCp2Front, points.mirroredCfNeckCp1, points.mirroredCfNeck)
.split(points.s3CollarSplit)[0] .split(points.s3CollarSplit)[0]
.reverse() .reverse()
.join(new Path() .join(new Path().move(points.hps).curve_(points.neckCp2, points.cbNeck))
.move(points.hps)
.curve_(points.neckCp2, points.cbNeck)
)
.setRender(false) .setRender(false)
} } else if (options.s3Collar < 0) {
else if (options.s3Collar < 0) {
// Shift shoulder seam backward on the collar side // Shift shoulder seam backward on the collar side
points.s3CollarSplit = utils.curveIntersectsY( points.s3CollarSplit = utils.curveIntersectsY(
points.hps, points.neckCp2, points.cbNeck, points.cbNeck, points.hps,
points.neckCp2,
points.cbNeck,
points.cbNeck,
store.get('s3CollarMaxBack') * -1 * options.s3Collar store.get('s3CollarMaxBack') * -1 * options.s3Collar
) )
paths.backCollar = new Path() paths.backCollar = new Path()
@ -67,8 +65,7 @@ export default (part) => {
.move(points.armholePitch) .move(points.armholePitch)
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder)
.setRender(false) .setRender(false)
} } else if (options.s3Armhole > 0) {
else if (options.s3Armhole > 0) {
// Shift shoulder seam forward on the armhole side // Shift shoulder seam forward on the armhole side
points.s3ArmholeSplit = utils.curveIntersectsY( points.s3ArmholeSplit = utils.curveIntersectsY(
points.shoulder, points.shoulder,
@ -80,14 +77,18 @@ export default (part) => {
paths.backArmhole = new Path() paths.backArmhole = new Path()
.move(points.armholePitch) .move(points.armholePitch)
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder)
.join(new Path() .join(
.move(points.shoulder) new Path()
.curve(points.mirroredShoulderCp1, points.mirroredFrontArmholePitchCp2, points.mirroredFrontArmholePitch) .move(points.shoulder)
.split(points.s3ArmholeSplit)[0] .curve(
points.mirroredShoulderCp1,
points.mirroredFrontArmholePitchCp2,
points.mirroredFrontArmholePitch
)
.split(points.s3ArmholeSplit)[0]
) )
.setRender(false) .setRender(false)
} } else if (options.s3Armhole < 0) {
else if (options.s3Armhole < 0) {
// Shift shoulder seam backward on the armhole side // Shift shoulder seam backward on the armhole side
points.s3ArmholeSplit = utils.curveIntersectsY( points.s3ArmholeSplit = utils.curveIntersectsY(
points.shoulder, points.shoulder,

View file

@ -13,7 +13,7 @@ export default (part) => {
paths, paths,
utils, utils,
complete, complete,
macro macro,
} = part.shorthand() } = part.shorthand()
store.set('shoulderEase', (measurements.shoulderToShoulder * options.shoulderEase) / 2) store.set('shoulderEase', (measurements.shoulderToShoulder * options.shoulderEase) / 2)
@ -129,7 +129,7 @@ export default (part) => {
*/ */
// Front armhole is a bit deeper, add those points // Front armhole is a bit deeper, add those points
let deeper = measurements.chest * options.frontArmholeDeeper let deeper = measurements.chest * options.frontArmholeDeeper
for (const p of ['','Cp1','Cp2']) { for (const p of ['', 'Cp1', 'Cp2']) {
points[`frontArmholePitch${p}`] = points[`armholePitch${p}`].shift(180, deeper) points[`frontArmholePitch${p}`] = points[`armholePitch${p}`].shift(180, deeper)
} }
// Add points needed for the mirrored front&back neck/armhole path // Add points needed for the mirrored front&back neck/armhole path
@ -145,14 +145,14 @@ export default (part) => {
points.frontArmholePitchCp2, points.frontArmholePitchCp2,
points.shoulderCp1, points.shoulderCp1,
], ],
clone: true clone: true,
}) })
// How much space do we have to work with here? // How much space do we have to work with here?
// s3 = ShoulderSeamShift // s3 = ShoulderSeamShift
store.set('s3CollarMaxFront', points.hps.dy(points.cfNeck)/2) store.set('s3CollarMaxFront', points.hps.dy(points.cfNeck) / 2)
store.set('s3CollarMaxBack', points.hps.dy(points.cbNeck)/2) store.set('s3CollarMaxBack', points.hps.dy(points.cbNeck) / 2)
store.set('s3ArmholeMax', points.shoulder.dy(points.frontArmholePitch)/4) store.set('s3ArmholeMax', points.shoulder.dy(points.frontArmholePitch) / 4)
// Let's leave the actual splitting the curves for the front/back parts // Let's leave the actual splitting the curves for the front/back parts
// Complete pattern? // Complete pattern?

View file

@ -15,7 +15,7 @@ export default (part) => {
complete, complete,
paperless, paperless,
macro, macro,
utils utils,
} = part.shorthand() } = part.shorthand()
// Re-use points for deeper armhole at the front // Re-use points for deeper armhole at the front
@ -31,11 +31,13 @@ export default (part) => {
.move(points.hps) .move(points.hps)
.curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck) .curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck)
.setRender(false) .setRender(false)
} } else if (options.s3Collar > 0) {
else if (options.s3Collar > 0) {
// Shift shoulder seam forward on the collar side // Shift shoulder seam forward on the collar side
points.s3CollarSplit = utils.curveIntersectsY( points.s3CollarSplit = utils.curveIntersectsY(
points.hps, points.neckCp2Front, points.cfNeckCp1, points.cfNeck, points.hps,
points.neckCp2Front,
points.cfNeckCp1,
points.cfNeck,
store.get('s3CollarMaxFront') * options.s3Collar store.get('s3CollarMaxFront') * options.s3Collar
) )
paths.frontCollar = new Path() paths.frontCollar = new Path()
@ -43,11 +45,13 @@ export default (part) => {
.curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck) .curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck)
.split(points.s3CollarSplit)[1] .split(points.s3CollarSplit)[1]
.setRender(false) .setRender(false)
} } else if (options.s3Collar < 0) {
else if (options.s3Collar < 0) {
// Shift shoulder seam backward on the collar side // Shift shoulder seam backward on the collar side
points.s3CollarSplit = utils.curveIntersectsY( points.s3CollarSplit = utils.curveIntersectsY(
points.mirroredCbNeck, points.mirroredCbNeck, points.mirroredNeckCp2, points.hps, points.mirroredCbNeck,
points.mirroredCbNeck,
points.mirroredNeckCp2,
points.hps,
store.get('s3CollarMaxBack') * options.s3Collar store.get('s3CollarMaxBack') * options.s3Collar
) )
paths.frontCollar = new Path() paths.frontCollar = new Path()
@ -55,10 +59,7 @@ export default (part) => {
.curve_(points.mirroredNeckCp2, points.mirroredCbNeck) .curve_(points.mirroredNeckCp2, points.mirroredCbNeck)
.split(points.s3CollarSplit)[0] .split(points.s3CollarSplit)[0]
.reverse() .reverse()
.join(new Path() .join(new Path().move(points.hps).curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck))
.move(points.hps)
.curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck)
)
.setRender(false) .setRender(false)
} }
if (options.s3Armhole === 0) { if (options.s3Armhole === 0) {
@ -67,8 +68,7 @@ export default (part) => {
.move(points.armholePitch) .move(points.armholePitch)
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder)
.setRender(false) .setRender(false)
} } else if (options.s3Armhole > 0) {
else if (options.s3Armhole > 0) {
// Shift shoulder seam forward on the armhole side // Shift shoulder seam forward on the armhole side
points.s3ArmholeSplit = utils.curveIntersectsY( points.s3ArmholeSplit = utils.curveIntersectsY(
points.shoulder, points.shoulder,
@ -82,8 +82,7 @@ export default (part) => {
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder)
.split(points.s3ArmholeSplit)[0] .split(points.s3ArmholeSplit)[0]
.setRender(false) .setRender(false)
} } else if (options.s3Armhole < 0) {
else if (options.s3Armhole < 0) {
// Shift shoulder seam forward on the armhole side // Shift shoulder seam forward on the armhole side
points.s3ArmholeSplit = utils.curveIntersectsY( points.s3ArmholeSplit = utils.curveIntersectsY(
points.shoulder, points.shoulder,
@ -95,10 +94,15 @@ export default (part) => {
paths.frontArmhole = new Path() paths.frontArmhole = new Path()
.move(points.armholePitch) .move(points.armholePitch)
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder)
.join(new Path() .join(
.move(points.shoulder) new Path()
.curve(points.mirroredShoulderCp1, points.mirroredFrontArmholePitchCp2, points.mirroredFrontArmholePitch) .move(points.shoulder)
.split(points.s3ArmholeSplit)[0] .curve(
points.mirroredShoulderCp1,
points.mirroredFrontArmholePitchCp2,
points.mirroredFrontArmholePitch
)
.split(points.s3ArmholeSplit)[0]
) )
.setRender(false) .setRender(false)
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,19 +1,8 @@
import init from './init' import init from './init'
export default function (part) { export default function (part) {
let { let { store, sa, Point, points, Path, paths, complete, paperless, macro, Snippet, snippets } =
store, part.shorthand()
sa,
Point,
points,
Path,
paths,
complete,
paperless,
macro,
Snippet,
snippets,
} = part.shorthand()
// Initialize // Initialize
init(part) init(part)

View file

@ -47,7 +47,14 @@ export default {
'innerPocketDepth', 'innerPocketDepth',
'innerPocketWeltHeight', 'innerPocketWeltHeight',
], ],
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length', 's3Collar', 's3Armhole'], style: [
'beltWidth',
'buttonSpacingHorizontal',
'cuffLength',
'length',
's3Collar',
's3Armhole',
],
collar: ['collarHeight', 'collarSpread', 'collarFlare'], collar: ['collarHeight', 'collarSpread', 'collarFlare'],
}, },
measurements: [ measurements: [

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -241,7 +241,7 @@ export default function (part) {
// Clean up // Clean up
for (let i in paths) { for (let i in paths) {
if (['frontArmhole','frontCollar'].indexOf(i) === -1) delete paths[i] if (['frontArmhole', 'frontCollar'].indexOf(i) === -1) delete paths[i]
} }
for (let i in snippets) delete snippets[i] for (let i in snippets) delete snippets[i]

View file

@ -1,24 +1,13 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, snippets, Snippet, store, complete, points, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
snippets,
Snippet,
store,
complete,
points,
macro,
Point,
paths,
Path,
} = part.shorthand()
// Give points their original names // Give points their original names
for (let i of store.get('side')) points[i] = points[i + 'Rot2'].clone() for (let i of store.get('side')) points[i] = points[i + 'Rot2'].clone()
// Clean up // Clean up
for (let i in paths) { for (let i in paths) {
if (['frontArmhole','frontCollar'].indexOf(i) === -1) delete paths[i] if (['frontArmhole', 'frontCollar'].indexOf(i) === -1) delete paths[i]
} }
for (let i in snippets) delete snippets[i] for (let i in snippets) delete snippets[i]

View file

@ -46,7 +46,14 @@ export default {
'innerPocketDepth', 'innerPocketDepth',
'innerPocketWeltHeight', 'innerPocketWeltHeight',
], ],
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length', 's3Collar', 's3Armhole'], style: [
'beltWidth',
'buttonSpacingHorizontal',
'cuffLength',
'length',
's3Collar',
's3Armhole',
],
collar: ['collarHeight', 'collarSpread', 'collarFlare'], collar: ['collarHeight', 'collarSpread', 'collarFlare'],
}, },
measurements: [ measurements: [

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -60,7 +60,7 @@ export default function (part) {
// Clean up // Clean up
for (let i in paths) { for (let i in paths) {
if (['backArmhole','backCollar'].indexOf(i) === -1) delete paths[i] if (['backArmhole', 'backCollar'].indexOf(i) === -1) delete paths[i]
} }
for (let i in snippets) delete snippets[i] for (let i in snippets) delete snippets[i]

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, snippets, Snippet, store, complete, points, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
snippets,
Snippet,
store,
complete,
points,
macro,
Point,
paths,
Path,
} = part.shorthand()
let length = 1.6 * (store.get('cbToDart') + store.get('dartToSide')) let length = 1.6 * (store.get('cbToDart') + store.get('dartToSide'))
let width = store.get('beltWidth') let width = store.get('beltWidth')

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { units, paperless, sa, store, complete, points, macro, Point, paths, Path } =
units, part.shorthand()
paperless,
sa,
store,
complete,
points,
macro,
Point,
paths,
Path,
} = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
points.bottomRight = new Point( points.bottomRight = new Point(

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, measurements, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
measurements,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
let height = measurements.chest * options.collarHeight let height = measurements.chest * options.collarHeight
let length = store.get('frontCollarLength') + store.get('backCollarLength') let length = store.get('frontCollarLength') + store.get('backCollarLength')

View file

@ -202,7 +202,7 @@ export default function (part) {
// Clean up // Clean up
for (let i in paths) { for (let i in paths) {
if (['frontArmhole','frontCollar'].indexOf(i) === -1) delete paths[i] if (['frontArmhole', 'frontCollar'].indexOf(i) === -1) delete paths[i]
} }
for (let i in snippets) delete snippets[i] for (let i in snippets) delete snippets[i]

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { units, paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
units, part.shorthand()
paperless,
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
points.bottomRight = new Point( points.bottomRight = new Point(

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
points.bottomRight = new Point(store.get('pocketWidth'), store.get('pocketHeight')) points.bottomRight = new Point(store.get('pocketWidth'), store.get('pocketHeight'))

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
points.bottomRight = new Point(store.get('pocketWidth'), store.get('pocketFlapHeight')) points.bottomRight = new Point(store.get('pocketWidth'), store.get('pocketFlapHeight'))

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
points.topLeft = points.bottomLeft.shiftFractionTowards(points.topLeft, 0.75) points.topLeft = points.bottomLeft.shiftFractionTowards(points.topLeft, 0.75)
points.topRight = new Point(points.bottomRight.x, points.topLeft.y) points.topRight = new Point(points.bottomRight.x, points.topLeft.y)

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { units, paperless, sa, store, complete, points, macro, Point, paths, Path } =
units, part.shorthand()
paperless,
sa,
store,
complete,
points,
macro,
Point,
paths,
Path,
} = part.shorthand()
let length = store.get('waistToHem') - store.get('beltWidth') / 2 let length = store.get('waistToHem') - store.get('beltWidth') / 2

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, measurements, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
measurements,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
// Add cuff // Add cuff
let length = measurements.shoulderToWrist * options.cuffLength let length = measurements.shoulderToWrist * options.cuffLength

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -111,9 +111,7 @@ export default function (part) {
.curve(points.underbustGap3RightCp, points.waistGap3RightCp1, points.waistGap3Right) .curve(points.underbustGap3RightCp, points.waistGap3RightCp1, points.waistGap3Right)
.curve(points.waistGap3RightCp2, points.hipsGap3Cp, points.hipsGap3) .curve(points.waistGap3RightCp2, points.hipsGap3Cp, points.hipsGap3)
if (options.panels === '11') paths.panel4.line(points.hipRise) if (options.panels === '11') paths.panel4.line(points.hipRise)
paths.panel4 paths.panel4.close().attr('class', 'fabric')
.close()
.attr('class', 'fabric')
points.underbustGap4Right = topBack.intersectsX(points.underbustGap4Right.x).pop() points.underbustGap4Right = topBack.intersectsX(points.underbustGap4Right.x).pop()
points.underbustGap5Left = topBack.intersectsX(points.underbustGap5Left.x).pop() points.underbustGap5Left = topBack.intersectsX(points.underbustGap5Left.x).pop()
let top5 = topBack.split(points.underbustGap5Left)[1].split(points.underbustGap4Right)[0] let top5 = topBack.split(points.underbustGap5Left)[1].split(points.underbustGap4Right)[0]

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,18 +1,7 @@
export default (part) => { export default (part) => {
// Shorthand // Shorthand
let { let { points, Point, paths, Path, complete, paperless, store, macro, snippets, Snippet, sa } =
points, part.shorthand()
Point,
paths,
Path,
complete,
paperless,
store,
macro,
snippets,
Snippet,
sa,
} = part.shorthand()
points.leftNotch = new Point(store.get('backPocketWidth') / -2, 0) points.leftNotch = new Point(store.get('backPocketWidth') / -2, 0)
points.rightNotch = points.leftNotch.flipX() points.rightNotch = points.leftNotch.flipX()

View file

@ -429,7 +429,7 @@ Path.prototype.shiftAlong = function (distance, stepsPerMm = 25) {
let op = this.ops[i] let op = this.ops[i]
if (op.type === 'line') { if (op.type === 'line') {
let thisLen = op.to.dist(current) let thisLen = op.to.dist(current)
if (Math.abs((len + thisLen) - distance) < 0.1) return op.to if (Math.abs(len + thisLen - distance) < 0.1) return op.to
if (len + thisLen > distance) return current.shiftTowards(op.to, distance - len) if (len + thisLen > distance) return current.shiftTowards(op.to, distance - len)
len += thisLen len += thisLen
} else if (op.type === 'curve') { } else if (op.type === 'curve') {
@ -440,8 +440,9 @@ Path.prototype.shiftAlong = function (distance, stepsPerMm = 25) {
{ x: op.to.x, y: op.to.y } { x: op.to.x, y: op.to.y }
) )
let thisLen = bezier.length() let thisLen = bezier.length()
if (Math.abs((len + thisLen) - distance) < 0.1) return op.to if (Math.abs(len + thisLen - distance) < 0.1) return op.to
if (len + thisLen > distance) return shiftAlongBezier(distance - len, bezier, thisLen * stepsPerMm) if (len + thisLen > distance)
return shiftAlongBezier(distance - len, bezier, thisLen * stepsPerMm)
len += thisLen len += thisLen
} }
current = op.to current = op.to

View file

@ -25,10 +25,10 @@ export function beamsIntersect(a1, a2, b1, b2) {
if (slopeA === slopeB) return false // Parallel lines if (slopeA === slopeB) return false // Parallel lines
// Check for vertical line A // Check for vertical line A
if (Math.round(a1.x*10000) === Math.round(a2.x*10000)) if (Math.round(a1.x * 10000) === Math.round(a2.x * 10000))
return new Point(a1.x, slopeB * a1.x + (b1.y - slopeB * b1.x)) return new Point(a1.x, slopeB * a1.x + (b1.y - slopeB * b1.x))
// Check for vertical line B // Check for vertical line B
else if (Math.round(b1.x*10000) === Math.round(b2.x*10000)) else if (Math.round(b1.x * 10000) === Math.round(b2.x * 10000))
return new Point(b1.x, slopeA * b1.x + (a1.y - slopeA * a1.x)) return new Point(b1.x, slopeA * b1.x + (a1.y - slopeA * a1.x))
else { else {
// Swap points if line A or B goes from right to left // Swap points if line A or B goes from right to left

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -173,19 +173,8 @@ function rotateDistanceForP4(part, point, distance, center, origin) {
} }
export default function (part) { export default function (part) {
let { let { options, Path, points, paths, Snippet, snippets, complete, sa, store, paperless, macro } =
options, part.shorthand()
Path,
points,
paths,
Snippet,
snippets,
complete,
sa,
store,
paperless,
macro,
} = part.shorthand()
let tempP = null let tempP = null

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { options, Path, points, paths, Snippet, snippets, complete, sa, store, paperless, macro } =
options, part.shorthand()
Path,
points,
paths,
Snippet,
snippets,
complete,
sa,
store,
paperless,
macro,
} = part.shorthand()
const cc = 0.551915024494 // circle constant const cc = 0.551915024494 // circle constant

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { Path, points, paths, Snippet, snippets, complete, sa, store, paperless, macro } =
Path, part.shorthand()
points,
paths,
Snippet,
snippets,
complete,
sa,
store,
paperless,
macro,
} = part.shorthand()
let halfInch = store.get('halfInch') let halfInch = store.get('halfInch')

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { Path, Point, points, paths, Snippet, snippets, complete, sa, store, paperless, macro } =
Path, part.shorthand()
Point,
points,
paths,
Snippet,
snippets,
complete,
sa,
store,
paperless,
macro,
} = part.shorthand()
let halfInch = store.get('halfInch') let halfInch = store.get('halfInch')
let waist = store.get('waist') let waist = store.get('waist')

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { Point, Path, points, paths, Snippet, snippets, complete, sa, store, paperless, macro } =
Point, part.shorthand()
Path,
points,
paths,
Snippet,
snippets,
complete,
sa,
store,
paperless,
macro,
} = part.shorthand()
let halfInch = store.get('halfInch') let halfInch = store.get('halfInch')
let waistLength = store.get('frontWaistLength') + store.get('backWaistLength') let waistLength = store.get('frontWaistLength') + store.get('backWaistLength')

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -19,10 +19,10 @@ export default {
'parametric design', 'parametric design',
'{{type}}', '{{type}}',
'sewing', 'sewing',
'sewing pattern' 'sewing pattern',
], ],
optionGroups: { optionGroups: {
fit: ['size'] fit: ['size'],
}, },
measurements: [], measurements: [],
dependencies: {}, dependencies: {},
@ -30,6 +30,6 @@ export default {
hide: [], hide: [],
parts: ['box'], parts: ['box'],
options: { options: {
size: { pct: 50, min: 10, max: 100 } size: { pct: 50, min: 10, max: 100 },
} },
} }

View file

@ -9,81 +9,104 @@ div.layout-wrapper {
margin: 0; margin: 0;
padding: 0; padding: 0;
background: #f8f9fa; background: #f8f9fa;
background: linear-gradient(90deg, #f1f3f5 0%, #f1f3f5 25%, #f8f9fa 26%, #f8f9fa 100%); } background: linear-gradient(90deg, #f1f3f5 0%, #f1f3f5 25%, #f8f9fa 26%, #f8f9fa 100%);
div.layout-wrapper div.layout { }
display: flex; div.layout-wrapper div.layout {
max-width: 1600px; display: flex;
margin: auto; max-width: 1600px;
padding: 0; margin: auto;
flex-direction: row; padding: 0;
flex-wrap: nowrap; flex-direction: row;
justify-content: space-between; flex-wrap: nowrap;
background-color: #f8f9fa; justify-content: space-between;
min-height: calc(100vh - 64px); } background-color: #f8f9fa;
div.layout-wrapper div.layout > aside { min-height: calc(100vh - 64px);
width: 33%; }
background: #f1f3f5; div.layout-wrapper div.layout > aside {
border-right: 2px solid #dee2e6; } width: 33%;
div.layout-wrapper div.layout > section { background: #f1f3f5;
margin: 0; border-right: 2px solid #dee2e6;
padding: 1rem; } }
div.layout-wrapper div.layout > section > div.content { div.layout-wrapper div.layout > section {
max-width: 66ch; margin: 0;
min-width: 340px; } padding: 1rem;
div.layout-wrapper div.layout > section > div.content.wide { }
max-width: 100%; div.layout-wrapper div.layout > section > div.content {
margin: auto; } max-width: 66ch;
min-width: 340px;
}
div.layout-wrapper div.layout > section > div.content.wide {
max-width: 100%;
margin: auto;
}
.theme-wrapper.dark header { .theme-wrapper.dark header {
background-color: #1a1d21; } background-color: #1a1d21;
}
.theme-wrapper.dark div.layout-wrapper { .theme-wrapper.dark div.layout-wrapper {
background: #f8f9fa; background: #f8f9fa;
background: linear-gradient(90deg, #1a1d21 0%, #1a1d21 25%, #212529 26%, #212529 100%); } background: linear-gradient(90deg, #1a1d21 0%, #1a1d21 25%, #212529 26%, #212529 100%);
.theme-wrapper.dark div.layout-wrapper div.layout { }
background-color: #212529; } .theme-wrapper.dark div.layout-wrapper div.layout {
.theme-wrapper.dark div.layout-wrapper div.layout > aside { background-color: #212529;
background-color: #1a1d21; }
border-right: 2px solid #343a40; } .theme-wrapper.dark div.layout-wrapper div.layout > aside {
background-color: #1a1d21;
border-right: 2px solid #343a40;
}
/* monitor */ /* monitor */
@media (min-width: 1200px) { @media (min-width: 1200px) {
div.layout > section { div.layout > section {
width: 63%; } } width: 63%;
}
}
/* slate */ /* slate */
@media (max-width: 1199px) and (min-width: 960px) { @media (max-width: 1199px) and (min-width: 960px) {
div.layout > aside { div.layout > aside {
width: 298px; } width: 298px;
}
div.layout > section { div.layout > section {
width: calc(100% - 300px - 4rem); width: calc(100% - 300px - 4rem);
max-width: none; max-width: none;
margin: 0 1rem 0 3rem; } } margin: 0 1rem 0 3rem;
}
}
/* tablet */ /* tablet */
@media (max-width: 959px) { @media (max-width: 959px) {
div.layout > aside { div.layout > aside {
width: 218px; } width: 218px;
}
div.layout > section { div.layout > section {
width: calc(100% - 220px - 4rem); width: calc(100% - 220px - 4rem);
max-width: none; max-width: none;
margin: 0; margin: 0;
padding: 0 2rem; } padding: 0 2rem;
div.layout > section div.content { }
min-width: inherit; } } div.layout > section div.content {
min-width: inherit;
}
}
/* mobile */ /* mobile */
@media (max-width: 599px) { @media (max-width: 599px) {
div.layout > aside { div.layout > aside {
display: none; } display: none;
}
div.layout > section { div.layout > section {
width: calc(100%); width: calc(100%);
margin: 0 auto; margin: 0 auto;
padding: 0 1.5rem; padding: 0 1.5rem;
max-width: none; } } max-width: none;
}
}
div.gatsby-highlight { div.gatsby-highlight {
margin-bottom: 1rem; } margin-bottom: 1rem;
}
@media (max-width: 599px) { @media (max-width: 599px) {
#mobile-menu { #mobile-menu {
@ -97,117 +120,154 @@ div.gatsby-highlight {
z-index: -10; z-index: -10;
transition: opacity 0.25s ease 0s; transition: opacity 0.25s ease 0s;
opacity: 0; opacity: 0;
overflow: scroll; } overflow: scroll;
#mobile-menu > ul, }
#mobile-menu > div { #mobile-menu > ul,
transform: translate(0px, 10px); #mobile-menu > div {
transition: transform 0.25s ease 0s; } transform: translate(0px, 10px);
transition: transform 0.25s ease 0s;
}
.theme-wrapper.show-menu #mobile-menu { .theme-wrapper.show-menu #mobile-menu {
opacity: 1; opacity: 1;
z-index: 10; } z-index: 10;
.theme-wrapper.show-menu #mobile-menu > div { }
transform: translate(0px, 0px); } } .theme-wrapper.show-menu #mobile-menu > div {
transform: translate(0px, 0px);
}
}
.theme-wrapper.light div.draft-ui-menu, .theme-wrapper.light div.draft-ui-menu,
.theme-wrapper.light div.menu { .theme-wrapper.light div.menu {
background: #f1f3f5; } background: #f1f3f5;
}
.theme-wrapper.dark div.draft-ui-menu, .theme-wrapper.dark div.draft-ui-menu,
.theme-wrapper.dark div.menu { .theme-wrapper.dark div.menu {
background: #343a40; } background: #343a40;
}
.theme-wrapper.show-menu div.menu { .theme-wrapper.show-menu div.menu {
opacity: 1; opacity: 1;
z-index: 10; } z-index: 10;
.theme-wrapper.show-menu div.menu > div { }
transform: translate(0px, 0px); } .theme-wrapper.show-menu div.menu > div {
transform: translate(0px, 0px);
}
div.spaced-buttons > button { div.spaced-buttons > button {
margin: 0 0.5rem 0.5rem 0; } margin: 0 0.5rem 0.5rem 0;
}
div.spaced > * { div.spaced > * {
margin: 0 0.5rem 0.5rem 0; } margin: 0 0.5rem 0.5rem 0;
}
ul#pre-main-menu { ul#pre-main-menu {
margin: 0; margin: 0;
padding: 0; } padding: 0;
}
.boldish { .boldish {
font-weight: 500; } font-weight: 500;
}
.freesewing.draft { .freesewing.draft {
padding: 1rem; } padding: 1rem;
}
li.action { li.action {
clear: both; } clear: both;
}
li.action span.MuiSwitch-root { li.action span.MuiSwitch-root {
float: right; } float: right;
}
.theme-wrapper.light ul#draft-config li.action.toggle.off, .theme-wrapper.light ul#draft-config li.action.toggle.off,
.theme-wrapper.dark ul#draft-config li.action.toggle.off { .theme-wrapper.dark ul#draft-config li.action.toggle.off {
color: #868e96; } color: #868e96;
.theme-wrapper.light ul#draft-config li.action.toggle.off > span svg, }
.theme-wrapper.dark ul#draft-config li.action.toggle.off > span svg { .theme-wrapper.light ul#draft-config li.action.toggle.off > span svg,
color: #868e96; } .theme-wrapper.dark ul#draft-config li.action.toggle.off > span svg {
color: #868e96;
}
footer { footer {
background-color: #1a1d21; background-color: #1a1d21;
color: #adb5bd; color: #adb5bd;
padding: 3rem 0 6rem; } padding: 3rem 0 6rem;
footer a { }
color: #dee2e6 !important; footer a {
font-weight: 400; } color: #dee2e6 !important;
footer a:hover { font-weight: 400;
color: #d0bfff !important; } }
footer div.cols { footer a:hover {
display: flex; color: #d0bfff !important;
flex-direction: row; }
justify-content: space-between; footer div.cols {
max-width: 1600px; display: flex;
margin: auto; flex-direction: row;
padding: 0 1.5rem; } justify-content: space-between;
footer div.cols > div { max-width: 1600px;
min-width: 150px; margin: auto;
max-width: calc(20% - 4rem); padding: 0 1.5rem;
padding: 0 2rem 0 0; }
width: 100%; } footer div.cols > div {
footer ul { min-width: 150px;
text-align: left; max-width: calc(20% - 4rem);
font-size: 1.1rem; padding: 0 2rem 0 0;
margin: 0; width: 100%;
padding: 0; }
width: 100%; } footer ul {
footer ul li:first-of-type { text-align: left;
padding: 0.35rem 0.75rem; } font-size: 1.1rem;
footer ul li { margin: 0;
display: block; } padding: 0;
footer ul li a:hover { width: 100%;
text-decoration: none !important; } }
footer ul li.heading { footer ul li:first-of-type {
font-weight: bold; padding: 0.35rem 0.75rem;
border-bottom: 3px solid #adb5bd; }
margin-bottom: 0.5rem; } footer ul li {
display: block;
}
footer ul li a:hover {
text-decoration: none !important;
}
footer ul li.heading {
font-weight: bold;
border-bottom: 3px solid #adb5bd;
margin-bottom: 0.5rem;
}
/* XL screens */ /* XL screens */
@media (min-width: 1200px) { @media (min-width: 1200px) {
footer div.cols > div:last-of-type { footer div.cols > div:last-of-type {
min-width: 350px; } } min-width: 350px;
}
}
/* SM screens */ /* SM screens */
@media (min-width: 600px) and (max-width: 959px) { @media (min-width: 600px) and (max-width: 959px) {
footer div.cols { footer div.cols {
flex-wrap: wrap; } flex-wrap: wrap;
footer div.cols > div { }
width: calc(30% - 4rem); footer div.cols > div {
padding: 0 1rem; } } width: calc(30% - 4rem);
padding: 0 1rem;
}
}
/* XS screens */ /* XS screens */
@media (max-width: 599px) { @media (max-width: 599px) {
footer div.cols { footer div.cols {
display: block; } display: block;
footer div.cols > div { }
margin: 2rem auto 0; footer div.cols > div {
max-width: calc(100% - 4rem); } margin: 2rem auto 0;
footer div.cols > div:first-of-type { max-width: calc(100% - 4rem);
margin-top: 0; } } }
footer div.cols > div:first-of-type {
margin-top: 0;
}
}

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
const { const { options, Point, Path, points, paths, Snippet, snippets, complete, sa, paperless, macro } =
options, part.shorthand()
Point,
Path,
points,
paths,
Snippet,
snippets,
complete,
sa,
paperless,
macro
} = part.shorthand()
const w = 500 * options.size const w = 500 * options.size
points.topLeft = new Point(0, 0) points.topLeft = new Point(0, 0)
@ -47,12 +36,12 @@ export default function (part) {
macro('hd', { macro('hd', {
from: points.bottomLeft, from: points.bottomLeft,
to: points.bottomRight, to: points.bottomRight,
y: points.bottomLeft.y + sa + 15 y: points.bottomLeft.y + sa + 15,
}) })
macro('vd', { macro('vd', {
from: points.bottomRight, from: points.bottomRight,
to: points.topRight, to: points.topRight,
x: points.topRight.x + sa + 15 x: points.topRight.x + sa + 15,
}) })
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,19 +1,15 @@
export default (part) => { export default (part) => {
let { Point, points, Path, paths } = part.shorthand()
let { Point, points, Path, paths } = part.shorthand() points.from = new Point(10, 10)
points.to = new Point(80, 70)
points.from = new Point(10, 10) points.text = points.from
points.to = new Point(80, 70) .shiftFractionTowards(points.to, 0.6)
.attr('data-text', points.from.dist(points.to) + 'mm')
.attr('data-text-class', 'text-sm fill-note center')
points.text = points.from paths.line = new Path().move(points.from).line(points.to).attr('class', 'dashed')
.shiftFractionTowards(points.to, 0.6)
.attr("data-text", points.from.dist(points.to)+"mm")
.attr("data-text-class", "text-sm fill-note center")
paths.line = new Path()
.move(points.from)
.line(points.to)
.attr("class", "dashed")
return part return part
} }

View file

@ -1,32 +1,22 @@
export default (part) => { export default (part) => {
let { Point, points, Path, paths } = part.shorthand()
let { Point, points, Path, paths } = part.shorthand() points.from = new Point(10, 10)
points.to = new Point(80, 70)
points.from = new Point(10, 10) paths.line = new Path().move(points.from).line(points.to).attr('class', 'dashed')
points.to = new Point(80, 70)
paths.line = new Path()
.move(points.from)
.line(points.to)
.attr("class", "dashed")
points.totop = points.from.shift(0,points.from.dx(points.to)) points.totop = points.from.shift(0, points.from.dx(points.to))
points.text_dx = points.from points.text_dx = points.from
.shiftFractionTowards(points.totop, 0.6) .shiftFractionTowards(points.totop, 0.6)
.shiftFractionTowards(points.to,0.1) .shiftFractionTowards(points.to, 0.1)
.attr("data-text", points.from.dx(points.to)+"mm") .attr('data-text', points.from.dx(points.to) + 'mm')
.attr("data-text-class", "text-sm fill-note center") .attr('data-text-class', 'text-sm fill-note center')
paths.line_dx = new Path() paths.line_dx = new Path().move(points.from).line(points.totop).attr('class', 'dashed')
.move(points.from)
.line(points.totop) paths.line_dy = new Path().move(points.to).line(points.totop).attr('class', 'dashed')
.attr("class", "dashed")
return part
paths.line_dy = new Path()
.move(points.to)
.line(points.totop)
.attr("class", "dashed")
return part
} }

View file

@ -1,31 +1,21 @@
export default (part) => { export default (part) => {
let { Point, points, Path, paths } = part.shorthand()
let { Point, points, Path, paths } = part.shorthand() points.from = new Point(10, 10)
points.to = new Point(80, 70)
points.from = new Point(10, 10) paths.line = new Path().move(points.from).line(points.to).attr('class', 'dashed')
points.to = new Point(80, 70)
paths.line = new Path()
.move(points.from)
.line(points.to)
.attr("class", "dashed")
points.totop = points.from.shift(0,points.from.dx(points.to)) points.totop = points.from.shift(0, points.from.dx(points.to))
paths.line_dx = new Path() paths.line_dx = new Path().move(points.from).line(points.totop).attr('class', 'dashed')
.move(points.from)
.line(points.totop)
.attr("class", "dashed")
points.text_dy = points.totop points.text_dy = points.totop
.shiftFractionTowards(points.to, 0.4) .shiftFractionTowards(points.to, 0.4)
.attr("data-text", points.from.dy(points.to)+"mm") .attr('data-text', points.from.dy(points.to) + 'mm')
.attr("data-text-class", "text-sm fill-note right") .attr('data-text-class', 'text-sm fill-note right')
paths.line_dy = new Path() paths.line_dy = new Path().move(points.to).line(points.totop).attr('class', 'dashed')
.move(points.to)
.line(points.totop) return part
.attr("class", "dashed")
return part
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path, measurements } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
measurements,
} = part.shorthand()
let scale = 1 let scale = 1
let base = scale * measurements.head * (1 + options.headEase) let base = scale * measurements.head * (1 + options.headEase)
@ -60,7 +49,7 @@ export default function (part) {
}) })
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: [ 'innerMid', 'outerMid' ] on: ['innerMid', 'outerMid'],
}) })
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')

View file

@ -1,5 +1,6 @@
export default function (part) { export default function (part) {
let { store, paperless, sa, complete, points, macro, paths, Path, snippets, Snippet } = part.shorthand() let { store, paperless, sa, complete, points, macro, paths, Path, snippets, Snippet } =
part.shorthand()
// Clean up // Clean up
for (let i of Object.keys(paths)) { for (let i of Object.keys(paths)) {
@ -38,7 +39,7 @@ export default function (part) {
.shiftAlong(store.get('topDistanceToSecondNotch')) .shiftAlong(store.get('topDistanceToSecondNotch'))
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: [ 'notch1', 'notch2' ] on: ['notch1', 'notch2'],
}) })
if (sa) { if (sa) {

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, points, macro, Point, Path, paths, snippets, Snippet, complete, store } =
paperless, part.shorthand()
sa,
points,
macro,
Point,
Path,
paths,
snippets,
Snippet,
complete,
store
} = part.shorthand()
const fitCap = (part, scale) => { const fitCap = (part, scale) => {
let { points, options, Point, Path, measurements } = part.shorthand() let { points, options, Point, Path, measurements } = part.shorthand()
@ -154,21 +143,24 @@ export default function (part) {
macro('miniscale', { at: new Point(points.title.x * 0.75, points.title.y) }) macro('miniscale', { at: new Point(points.title.x * 0.75, points.title.y) })
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: [ 'midMid', 'backHollow', 'midSide' ] on: ['midMid', 'backHollow', 'midSide'],
}) })
store.set('topDistanceToFirstNotch', new Path() store.set(
.move(points.backEdge) 'topDistanceToFirstNotch',
.line(points.backSide) new Path()
.curve(points.backSideCp1, points.backHollowCp2, points.backHollow) .move(points.backEdge)
.length() .line(points.backSide)
.curve(points.backSideCp1, points.backHollowCp2, points.backHollow)
.length()
) )
store.set('topDistanceToSecondNotch', new Path() store.set(
.move(points.backHollow) 'topDistanceToSecondNotch',
.curve(points.backHollowCp1, points.midSideCp2, points.midSide) new Path()
.length() + store.get('topDistanceToFirstNotch') .move(points.backHollow)
.curve(points.backHollowCp1, points.midSideCp2, points.midSide)
.length() + store.get('topDistanceToFirstNotch')
) )
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
if (paperless) { if (paperless) {

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { Point, points, Path, paths, measurements, options, complete, sa, paperless, macro } =
Point, part.shorthand()
points,
Path,
paths,
measurements,
options,
complete,
sa,
paperless,
macro,
} = part.shorthand()
let headRadius = measurements.head / 2 / Math.PI let headRadius = measurements.head / 2 / Math.PI
let brimRadius = headRadius / Math.sin((options.brimAngle * Math.PI) / 180) let brimRadius = headRadius / Math.sin((options.brimAngle * Math.PI) / 180)

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { Point, points, Path, paths, measurements, options, macro, complete, sa, paperless } =
Point, part.shorthand()
points,
Path,
paths,
measurements,
options,
macro,
complete,
sa,
paperless,
} = part.shorthand()
// Design pattern here // Design pattern here

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { store, options, Point, Path, points, paths, complete, sa, paperless, macro } =
store, part.shorthand()
options,
Point,
Path,
points,
paths,
complete,
sa,
paperless,
macro,
} = part.shorthand()
let w = options.handleWidth let w = options.handleWidth
let h = store.get('depth') * options.strapLength let h = store.get('depth') * options.strapLength

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,23 +1,12 @@
import { sharedDimensions } from './shared' import { sharedDimensions } from './shared'
export default function (part) { export default function (part) {
let { let { store, macro, Path, Point, points, paths, complete, paperless, sa, options, measurements } =
store, part.shorthand()
macro,
Path,
Point,
points,
paths,
complete,
paperless,
sa,
options,
measurements,
} = part.shorthand()
// Clear paths from Brian // Clear paths from Brian
for (let i in paths) { for (let i in paths) {
if (['backArmhole','backCollar'].indexOf(i) === -1) delete paths[i] if (['backArmhole', 'backCollar'].indexOf(i) === -1) delete paths[i]
} }
// Shorten body to take ribbing into account // Shorten body to take ribbing into account

View file

@ -1,23 +1,12 @@
import { sharedDimensions } from './shared' import { sharedDimensions } from './shared'
export default function (part) { export default function (part) {
let { let { utils, store, Point, Path, points, paths, complete, paperless, sa, options, measurements } =
utils, part.shorthand()
store,
Point,
Path,
points,
paths,
complete,
paperless,
sa,
options,
measurements,
} = part.shorthand()
// Clear paths from Brian // Clear paths from Brian
for (let i in paths) { for (let i in paths) {
if (['frontArmhole','frontCollar'].indexOf(i) === -1) delete paths[i] if (['frontArmhole', 'frontCollar'].indexOf(i) === -1) delete paths[i]
} }
// Shorten body to take ribbing into account // Shorten body to take ribbing into account

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { macro, Path, points, paths, complete, paperless, snippets, Snippet, sa, options } =
macro, part.shorthand()
Path,
points,
paths,
complete,
paperless,
snippets,
Snippet,
sa,
options,
} = part.shorthand()
if (!options.pocket) return part if (!options.pocket) return part

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { Point, Path, points, paths, store, options, complete, sa, paperless, macro } =
Point, part.shorthand()
Path,
points,
paths,
store,
options,
complete,
sa,
paperless,
macro,
} = part.shorthand()
// Clear paths from Brian, but keep sleevecap // Clear paths from Brian, but keep sleevecap
for (let p of Object.keys(paths)) { for (let p of Object.keys(paths)) {

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { measurements, options, sa, Point, points, Path, paths, complete, paperless, macro } =
measurements, part.shorthand()
options,
sa,
Point,
points,
Path,
paths,
complete,
paperless,
macro,
} = part.shorthand()
let width = (measurements.hpsToWaistBack + measurements.waistToHips) * options.ribbingHeight * 2 let width = (measurements.hpsToWaistBack + measurements.waistToHips) * options.ribbingHeight * 2
let length = measurements.wrist * (1 + options.cuffEase) * (1 - options.ribbingStretch) let length = measurements.wrist * (1 + options.cuffEase) * (1 - options.ribbingStretch)

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { store, sa, Point, points, Path, paths, complete, paperless, macro, units } =
store, part.shorthand()
sa,
Point,
points,
Path,
paths,
complete,
paperless,
macro,
units,
} = part.shorthand()
let width = store.get('hoodCenterWidth') let width = store.get('hoodCenterWidth')
let length = complete ? width * 2.5 : store.get('hoodCenterLength') let length = complete ? width * 2.5 : store.get('hoodCenterLength')

View file

@ -1,17 +1,6 @@
export default function (part) { export default function (part) {
let { let { measurements, options, sa, Point, points, Path, paths, complete, paperless, macro, units } =
measurements, part.shorthand()
options,
sa,
Point,
points,
Path,
paths,
complete,
paperless,
macro,
units,
} = part.shorthand()
let width = (measurements.hpsToWaistBack + measurements.waistToHips) * options.ribbingHeight * 2 let width = (measurements.hpsToWaistBack + measurements.waistToHips) * options.ribbingHeight * 2
let length = complete let length = complete

View file

@ -12,7 +12,7 @@ applyThisLayout: Dieses Layout anwenden
areYouSureYouWantToContinue: Bist du sicher, dass du fortfahren möchtest? areYouSureYouWantToContinue: Bist du sicher, dass du fortfahren möchtest?
askForHelp: Nach Hilfe fragen askForHelp: Nach Hilfe fragen
automatic: Automatisch automatic: Automatisch
averagePeopleDoNotExist: "Durchschnittliche Menschen existieren nicht" averagePeopleDoNotExist: 'Durchschnittliche Menschen existieren nicht'
awesome: Großartig awesome: Großartig
back: Rückseite back: Rückseite
becauseThatWouldBeReallyHelpful: Weil das wirklich hilfreich wäre. becauseThatWouldBeReallyHelpful: Weil das wirklich hilfreich wäre.
@ -72,7 +72,7 @@ drafts: Entwürfe
draftSettings: Entwurfseinstellungen draftSettings: Entwurfseinstellungen
dragAndDropImageHere: Du kannst das Bild hier per Drag-and-Drop ablegen oder es unten manuell auswählen dragAndDropImageHere: Du kannst das Bild hier per Drag-and-Drop ablegen oder es unten manuell auswählen
emailAddress: E-Mail-Adresse emailAddress: E-Mail-Adresse
emailWorksToo: "Falls du deinen Benutzername nicht weißt: deine E-Mail-Adresse funktioniert auch" emailWorksToo: 'Falls du deinen Benutzername nicht weißt: deine E-Mail-Adresse funktioniert auch'
enterEmailPickPassword: Gib deine E-Mail Adresse ein und wähle ein Passwort enterEmailPickPassword: Gib deine E-Mail Adresse ein und wähle ein Passwort
export: Exportieren export: Exportieren
exportTiledPDF: Exportieren als paginiertes PDF exportTiledPDF: Exportieren als paginiertes PDF
@ -81,7 +81,7 @@ fieldRemoved: '{field} entfernt'
fieldSaved: '{field} gespeichert' fieldSaved: '{field} gespeichert'
filterByPattern: Filtern nach Schnittmuster filterByPattern: Filtern nach Schnittmuster
filterPatterns: Schnittmuster filtern filterPatterns: Schnittmuster filtern
forgotLoginInstructions: "Wenn du dein Passwort nicht mehr weißt: Benutzername oder E-Mail-Adresse eingeben und den <b>Passwort zurücksetzen</b> Knopf drücken" forgotLoginInstructions: 'Wenn du dein Passwort nicht mehr weißt: Benutzername oder E-Mail-Adresse eingeben und den <b>Passwort zurücksetzen</b> Knopf drücken'
freesewing: Freesewing freesewing: Freesewing
freesewingOnGithub: Freesewing auf GitHub freesewingOnGithub: Freesewing auf GitHub
github: GitHub github: GitHub
@ -156,7 +156,7 @@ remove: Entfernen
removeThing: '{thing} entfernen' removeThing: '{thing} entfernen'
reportThisOnGithub: Melde dies auf GitHub reportThisOnGithub: Melde dies auf GitHub
requiredMeasurements: Erforderliche Maße requiredMeasurements: Erforderliche Maße
resendActivationEmailMessage: "Trage die E-Mail-Adresse ein, mit der du dich angemeldet hast, und wir senden dir eine neue Bestätigungsnachricht." resendActivationEmailMessage: 'Trage die E-Mail-Adresse ein, mit der du dich angemeldet hast, und wir senden dir eine neue Bestätigungsnachricht.'
resendActivationEmail: Aktivierungs-E-Mail erneut senden resendActivationEmail: Aktivierungs-E-Mail erneut senden
resetPassword: Passwort zurücksetzen resetPassword: Passwort zurücksetzen
reset: Zurücksetzen reset: Zurücksetzen
@ -198,7 +198,7 @@ twitter: Twitter
txt-footer: Freesewing wird erstellt von einer Gemeinschaft von Mitwirkenden<br />mit der finanziellen Unterstützung unserer Förderer txt-footer: Freesewing wird erstellt von einer Gemeinschaft von Mitwirkenden<br />mit der finanziellen Unterstützung unserer Förderer
txt-tier2: Unsere Kategorie mit dem demokratischsten Preis. Es ist vielleicht weniger als der Preis eines Lattes, aber deine Unterstützung bedeutet uns sehr viel. txt-tier2: Unsere Kategorie mit dem demokratischsten Preis. Es ist vielleicht weniger als der Preis eines Lattes, aber deine Unterstützung bedeutet uns sehr viel.
txt-tier4: Wähle diese Stufe, und wir senden dir etwas von unserem heiß begehrten Freesewing-Swag nach Hause. Egal, wo in der Welt das auch sein mag. txt-tier4: Wähle diese Stufe, und wir senden dir etwas von unserem heiß begehrten Freesewing-Swag nach Hause. Egal, wo in der Welt das auch sein mag.
txt-tier8: "Wenn du uns nicht nur unterstützen möchtest, sondern Freesewing zum Gedeihen bringen willst, ist das die Stufe für dich. Außerdem: extra Swag!" txt-tier8: 'Wenn du uns nicht nur unterstützen möchtest, sondern Freesewing zum Gedeihen bringen willst, ist das die Stufe für dich. Außerdem: extra Swag!'
txt-tiers: 'FreeSewing wird durch ein freiwilliges Abonnement-Modell unterstützt' txt-tiers: 'FreeSewing wird durch ein freiwilliges Abonnement-Modell unterstützt'
unitsInfo: Freesewing unterstützt sowohl das metrische System als auch imperiale Einheiten. Wähle einfach aus, was von beiden du hier verwenden möchtest. (Standardmäßig werden die in deinem Account konfigurierten Einheiten verwendet). unitsInfo: Freesewing unterstützt sowohl das metrische System als auch imperiale Einheiten. Wähle einfach aus, was von beiden du hier verwenden möchtest. (Standardmäßig werden die in deinem Account konfigurierten Einheiten verwendet).
updated: Aktualisiert updated: Aktualisiert
@ -240,8 +240,8 @@ noPattern: Du hast (noch) keine Schnittmuster. Erstelle ein neues Schnittmuster
modelFirst: Beginne damit, Maße hinzuzufügen modelFirst: Beginne damit, Maße hinzuzufügen
noModel: Du hast (noch) keine Maße hinzugefügt. FreeSewing kann maßgeschneiderte Schnittmuster erzeugen. Dafür benötigen wir jedoch Maße. noModel: Du hast (noch) keine Maße hinzugefügt. FreeSewing kann maßgeschneiderte Schnittmuster erzeugen. Dafür benötigen wir jedoch Maße.
noModel2: Das erste, was du tun solltest, ist, eine Person hinzuzufügen und das Maßband auszupacken. noModel2: Das erste, was du tun solltest, ist, eine Person hinzuzufügen und das Maßband auszupacken.
noUserBrowsingTitle: "Du kannst nicht einfach alle Benutzer durchsuchen" noUserBrowsingTitle: 'Du kannst nicht einfach alle Benutzer durchsuchen'
noUserBrowsingText: "Wir haben Tausende von ihnen. Sicher gibt es Interessanteres auf unserer Seite zu tun?" noUserBrowsingText: 'Wir haben Tausende von ihnen. Sicher gibt es Interessanteres auf unserer Seite zu tun?'
usePatternMeasurements: 'Verwende die Maße des Originalschnittmusters' usePatternMeasurements: 'Verwende die Maße des Originalschnittmusters'
createReplica: Duplikat erstellen createReplica: Duplikat erstellen
showDetails: Details anzeigen showDetails: Details anzeigen

View file

@ -3,32 +3,32 @@ chatWithUs: 'Chatte mit uns'
emailchangeActionText: 'Bestätige deine neue E-Mail-Adresse' emailchangeActionText: 'Bestätige deine neue E-Mail-Adresse'
emailchangeCopy1: 'Du hast um die Änderung der E-Mail-Adresse gebeten, die mit deinem Account unter <b>freesewing.org</b> verknüpft ist.<br><br>Bevor du dies tust, musst du deine neue E-Mail-Adresse bestätigen. Bitte klicke auf den folgenden Link, um dies zu tun:' emailchangeCopy1: 'Du hast um die Änderung der E-Mail-Adresse gebeten, die mit deinem Account unter <b>freesewing.org</b> verknüpft ist.<br><br>Bevor du dies tust, musst du deine neue E-Mail-Adresse bestätigen. Bitte klicke auf den folgenden Link, um dies zu tun:'
emailchangeHeaderOpeningLine: 'Wir stellen nur sicher, dass wir dich bei Bedarf erreichen können' emailchangeHeaderOpeningLine: 'Wir stellen nur sicher, dass wir dich bei Bedarf erreichen können'
emailchangeHiddenIntro: "Lass uns deine neue E-Mail-Adresse bestätigen" emailchangeHiddenIntro: 'Lass uns deine neue E-Mail-Adresse bestätigen'
emailchangeSubject: 'Bitte bestätige deine neue E-Mail-Adresse' emailchangeSubject: 'Bitte bestätige deine neue E-Mail-Adresse'
emailchangeTitle: 'Bitte bestätige deine neue E-Mail-Adresse' emailchangeTitle: 'Bitte bestätige deine neue E-Mail-Adresse'
emailchangeWhy: 'Du hast diese E-Mail erhalten, weil du die mit deinem Konto auf freesewing.org verknüpfte E-Mail-Adresse geändert hast' emailchangeWhy: 'Du hast diese E-Mail erhalten, weil du die mit deinem Konto auf freesewing.org verknüpfte E-Mail-Adresse geändert hast'
footerCredits: 'Kreiert von Joost & Mitwirkenden, mit der finanziellen Unterstützung unserer Förderer ❤️ ' footerCredits: 'Kreiert von Joost & Mitwirkenden, mit der finanziellen Unterstützung unserer Förderer ❤️ '
footerSlogan: 'Freesewing ist eine Open-Source Plattform für Schnittmuster nach Maß' footerSlogan: 'Freesewing ist eine Open-Source Plattform für Schnittmuster nach Maß'
goodbyeCopy1: "Wenn du uns mitteilen möchtest, warum du uns verlässt, kannst du gerne auf diese Nachricht antworten. <br>Von unserer Seite aus werden wir dich nicht weiter stören." goodbyeCopy1: 'Wenn du uns mitteilen möchtest, warum du uns verlässt, kannst du gerne auf diese Nachricht antworten. <br>Von unserer Seite aus werden wir dich nicht weiter stören.'
goodbyeHeaderOpeningLine: 'Sei dir nur bewusst, dass du jederzeit wiederkommen kannst' goodbyeHeaderOpeningLine: 'Sei dir nur bewusst, dass du jederzeit wiederkommen kannst'
goodbyeHiddenIntro: 'Vielen Dank, dass du Freesewing eine Chance gegeben hast' goodbyeHiddenIntro: 'Vielen Dank, dass du Freesewing eine Chance gegeben hast'
goodbyeSubject: 'Mach''s gut! 👋' goodbyeSubject: "Mach's gut! 👋"
goodbyeTitle: 'Vielen Dank, dass du Freesewing eine Chance gegeben hast' goodbyeTitle: 'Vielen Dank, dass du Freesewing eine Chance gegeben hast'
goodbyeWhy: 'Du hast diese E-Mail als endgültiges Lebewohl erhalten, nachdem du deinen Account auf freesewing.org entfernt hast' goodbyeWhy: 'Du hast diese E-Mail als endgültiges Lebewohl erhalten, nachdem du deinen Account auf freesewing.org entfernt hast'
joostFromFreesewing: 'Joost von Freesewing' joostFromFreesewing: 'Joost von Freesewing'
passwordresetActionText: 'Erhalte erneut Zugang zu deinem Account' passwordresetActionText: 'Erhalte erneut Zugang zu deinem Account'
passwordresetCopy1: 'Du hast dein Passwort für deinen Account bei <b>freesewing.org</b> vergessen.<br><br>Klicke auf den folgenden Link, um dein Passwort zurückzusetzen:' passwordresetCopy1: 'Du hast dein Passwort für deinen Account bei <b>freesewing.org</b> vergessen.<br><br>Klicke auf den folgenden Link, um dein Passwort zurückzusetzen:'
passwordresetHeaderOpeningLine: "Keine Sorge, solche Dinge passieren uns allen" passwordresetHeaderOpeningLine: 'Keine Sorge, solche Dinge passieren uns allen'
passwordresetHiddenIntro: 'Erhalte erneut Zugang zu deinem Account' passwordresetHiddenIntro: 'Erhalte erneut Zugang zu deinem Account'
passwordresetSubject: 'Erhalte erneut Zugang zu deinem Account auf freesewing.org' passwordresetSubject: 'Erhalte erneut Zugang zu deinem Account auf freesewing.org'
passwordresetTitle: 'Setze dein Passwort zurück und erhalte erneut Zugang zu deinem Account' passwordresetTitle: 'Setze dein Passwort zurück und erhalte erneut Zugang zu deinem Account'
passwordresetWhy: 'Du hast diese E-Mail erhalten, weil du die Anfrage gestellt hast, dein Passwort von freesewing.org zurückzusetzen' passwordresetWhy: 'Du hast diese E-Mail erhalten, weil du die Anfrage gestellt hast, dein Passwort von freesewing.org zurückzusetzen'
questionsJustReply: "Wenn du Fragen hast, antworte einfach auf diese E-Mail. Ich bin immer gerne bereit zu helfen. 🙂" questionsJustReply: 'Wenn du Fragen hast, antworte einfach auf diese E-Mail. Ich bin immer gerne bereit zu helfen. 🙂'
signature: 'Liebe Grüße' signature: 'Liebe Grüße'
signupActionText: 'Bestätige deine E-Mail-Adresse' signupActionText: 'Bestätige deine E-Mail-Adresse'
signupCopy1: 'Danke, dass du dich bei <b>freesewing.org</b> angemeldet hast.<br><br>Bevor wir beginnen, musst du deine E-Mail-Adresse bestätigen. Bitte klicke auf den folgenden Link, um das zu tun:' signupCopy1: 'Danke, dass du dich bei <b>freesewing.org</b> angemeldet hast.<br><br>Bevor wir beginnen, musst du deine E-Mail-Adresse bestätigen. Bitte klicke auf den folgenden Link, um das zu tun:'
signupHeaderOpeningLine: "Wir freuen uns sehr darüber, dass du ein Teil der Freesewing-Community wirst." signupHeaderOpeningLine: 'Wir freuen uns sehr darüber, dass du ein Teil der Freesewing-Community wirst.'
signupHiddenIntro: "Lass uns deine E-Mail-Adresse bestätigen" signupHiddenIntro: 'Lass uns deine E-Mail-Adresse bestätigen'
signupSubject: 'Willkommen bei freesewing.org' signupSubject: 'Willkommen bei freesewing.org'
signupTitle: 'Willkommen an Bord' signupTitle: 'Willkommen an Bord'
signupWhy: 'Du hast diese E-Mail erhalten, weil du dich gerade auf freesewing.org angemeldet hast' signupWhy: 'Du hast diese E-Mail erhalten, weil du dich gerade auf freesewing.org angemeldet hast'

View file

@ -2,11 +2,11 @@
txt-blog: Neuigkeiten, Updates und Ankündigungen des Freesewing-Teams txt-blog: Neuigkeiten, Updates und Ankündigungen des Freesewing-Teams
txt-community: 'Alles wird von freiwilligen Mitwirkenden am Leben erhalten. Es existieren keine kommerziellen Absichten im Zusammenhang mit diesem Projekt.' txt-community: 'Alles wird von freiwilligen Mitwirkenden am Leben erhalten. Es existieren keine kommerziellen Absichten im Zusammenhang mit diesem Projekt.'
txt-different: Was uns von anderen unterscheidet txt-different: Was uns von anderen unterscheidet
txt-draft: "Wähle eines deiner Schnittmuster, wähle ein Modell und lege die Optionen fest. Den Rest erledigen wir." txt-draft: 'Wähle eines deiner Schnittmuster, wähle ein Modell und lege die Optionen fest. Den Rest erledigen wir.'
txt-how: So funktioniert es txt-how: So funktioniert es
txt-join: Schließe dich Tausenden anderer an und erstelle einen kostenlosen Account auf freesewing.org. txt-join: Schließe dich Tausenden anderer an und erstelle einen kostenlosen Account auf freesewing.org.
txt-model: Alle unsere Schnittmuster werden nach individuellen Maßen gefertigt. Nimm daher zuallererst das Maßband zur Hand. txt-model: Alle unsere Schnittmuster werden nach individuellen Maßen gefertigt. Nimm daher zuallererst das Maßband zur Hand.
txt-newHere: "Wenn du hier neu bist, ist unsere Demo der beste Startpunkt:" txt-newHere: 'Wenn du hier neu bist, ist unsere Demo der beste Startpunkt:'
txt-opensource: 'Unsere Plattform, unsere Schnittmuster und sogar diese Website: Unser gesamter Code ist auf GitHub zugänglich. Pull-Requests sind jederzeit herzlich willkommen!' txt-opensource: 'Unsere Plattform, unsere Schnittmuster und sogar diese Website: Unser gesamter Code ist auf GitHub zugänglich. Pull-Requests sind jederzeit herzlich willkommen!'
txt-patrons: Freesewing wird durch die finanzielle Unterstützung unserer Förderer überhaupt erst ermöglicht. Scrolle nach unten, um mehr über unser Abonnementmodell zu erfahren. txt-patrons: Freesewing wird durch die finanzielle Unterstützung unserer Förderer überhaupt erst ermöglicht. Scrolle nach unten, um mehr über unser Abonnementmodell zu erfahren.
txt-showcase: Abgeschlossene Projekte aus der Freesewing-Community txt-showcase: Abgeschlossene Projekte aus der Freesewing-Community

View file

@ -6,5 +6,5 @@ bio: Erzähle uns ein wenig über dich
social: Lass uns wissen, wo wir dir folgen können social: Lass uns wissen, wo wir dir folgen können
newsletter: Teile uns deine Newsletter-Präferenz mit newsletter: Teile uns deine Newsletter-Präferenz mit
letUsSetupYourAccount: Lassen Sie uns Ihr Konto einrichten. letUsSetupYourAccount: Lassen Sie uns Ihr Konto einrichten.
walkYouThrough: "Wir führen dich durch die folgenden Schritte:" walkYouThrough: 'Wir führen dich durch die folgenden Schritte:'
someOptional: Obwohl alle diese Schritte optional sind, empfehlen wir dir sie durchzugehen, um das Beste aus FreeSewing herauszuholen. someOptional: Obwohl alle diese Schritte optional sind, empfehlen wir dir sie durchzugehen, um das Beste aus FreeSewing herauszuholen.

View file

@ -12,7 +12,7 @@ applyThisLayout: Aplicar este diseño
areYouSureYouWantToContinue: Estás seguro de que quieres continuar? areYouSureYouWantToContinue: Estás seguro de que quieres continuar?
askForHelp: Pide ayuda askForHelp: Pide ayuda
automatic: Automático automatic: Automático
averagePeopleDoNotExist: "La gente promedio no existe" averagePeopleDoNotExist: 'La gente promedio no existe'
awesome: Genial awesome: Genial
back: Atrás back: Atrás
becauseThatWouldBeReallyHelpful: Porque eso sería realmente útil. becauseThatWouldBeReallyHelpful: Porque eso sería realmente útil.
@ -72,7 +72,7 @@ drafts: Bocetos
draftSettings: Ajustes del boceto draftSettings: Ajustes del boceto
dragAndDropImageHere: Drag and drop an image here, or select one manually with the button below dragAndDropImageHere: Drag and drop an image here, or select one manually with the button below
emailAddress: Dirección de correo electrónico emailAddress: Dirección de correo electrónico
emailWorksToo: "Si no conoces tu nombre de usuario, tu dirección de correo electrónico también funcionará" emailWorksToo: 'Si no conoces tu nombre de usuario, tu dirección de correo electrónico también funcionará'
enterEmailPickPassword: Introduce tu dirección de email y elige una contraseña enterEmailPickPassword: Introduce tu dirección de email y elige una contraseña
export: Exportar export: Exportar
exportTiledPDF: Exportar PDF paginado exportTiledPDF: Exportar PDF paginado
@ -81,7 +81,7 @@ fieldRemoved: '{field} eliminado'
fieldSaved: '{field} guardado' fieldSaved: '{field} guardado'
filterByPattern: Filtrar por patrón filterByPattern: Filtrar por patrón
filterPatterns: Filtrar los patrones filterPatterns: Filtrar los patrones
forgotLoginInstructions: "Entra tu nombre de usuario o correo electrónico debajo y pulsa el botón de Restablecer contraseña" forgotLoginInstructions: 'Entra tu nombre de usuario o correo electrónico debajo y pulsa el botón de Restablecer contraseña'
freesewing: Freesewing freesewing: Freesewing
freesewingOnGithub: Freesewing en GitHub freesewingOnGithub: Freesewing en GitHub
github: GitHub github: GitHub
@ -198,7 +198,7 @@ twitter: Twitter
txt-footer: Freesewing is made by a community of contributors<br />with the financial support of our Patrons txt-footer: Freesewing is made by a community of contributors<br />with the financial support of our Patrons
txt-tier2: Nuestro nivel más democrático de precios. Puede ser menor que el precio de un café con leche, pero su apoyo significa mucho para nosotros. txt-tier2: Nuestro nivel más democrático de precios. Puede ser menor que el precio de un café con leche, pero su apoyo significa mucho para nosotros.
txt-tier4: Suscríbase a este nivel y le enviaremos parte de nuestro codiciado botín de diseño gratuito a su hogar en cualquier parte del mundo. txt-tier4: Suscríbase a este nivel y le enviaremos parte de nuestro codiciado botín de diseño gratuito a su hogar en cualquier parte del mundo.
txt-tier8: "Si no solo desea apoyarnos, sino que quiere ver prosperar en la libertad, este es el nivel para usted. También: botín extra!" txt-tier8: 'Si no solo desea apoyarnos, sino que quiere ver prosperar en la libertad, este es el nivel para usted. También: botín extra!'
txt-tiers: 'FreeSewing is fuelled by a voluntary subscription model' txt-tiers: 'FreeSewing is fuelled by a voluntary subscription model'
unitsInfo: La liberación es compatible con el sistema métrico y las unidades imperiales. Simplemente elige el que te gustaría usar aquí. (El valor predeterminado es utilizar las unidades configuradas en su cuenta). unitsInfo: La liberación es compatible con el sistema métrico y las unidades imperiales. Simplemente elige el que te gustaría usar aquí. (El valor predeterminado es utilizar las unidades configuradas en su cuenta).
updated: Actualizado updated: Actualizado

View file

@ -3,13 +3,13 @@ chatWithUs: 'Habla con nosotros'
emailchangeActionText: 'Confirme su nueva dirección de correo electrónico' emailchangeActionText: 'Confirme su nueva dirección de correo electrónico'
emailchangeCopy1: 'Solicitó cambiar la dirección de correo electrónico vinculada a su cuenta en <b> freesewing.org </b>.<br><br>Antes de hacerlo, debe confirmar su nueva dirección de correo electrónico. Por favor haga clic en el enlace de abajo para hacer eso:' emailchangeCopy1: 'Solicitó cambiar la dirección de correo electrónico vinculada a su cuenta en <b> freesewing.org </b>.<br><br>Antes de hacerlo, debe confirmar su nueva dirección de correo electrónico. Por favor haga clic en el enlace de abajo para hacer eso:'
emailchangeHeaderOpeningLine: 'Solo asegurándonos de que podamos contactarlo cuando sea necesario' emailchangeHeaderOpeningLine: 'Solo asegurándonos de que podamos contactarlo cuando sea necesario'
emailchangeHiddenIntro: "Confirmemos tu nueva dirección de correo electrónico" emailchangeHiddenIntro: 'Confirmemos tu nueva dirección de correo electrónico'
emailchangeSubject: 'Por favor confirme su nueva dirección de correo electrónico' emailchangeSubject: 'Por favor confirme su nueva dirección de correo electrónico'
emailchangeTitle: 'Por favor confirme su nueva dirección de correo electrónico' emailchangeTitle: 'Por favor confirme su nueva dirección de correo electrónico'
emailchangeWhy: 'You received this E-mail because you changed the E-mail address linked to your account on freesewing.org' emailchangeWhy: 'You received this E-mail because you changed the E-mail address linked to your account on freesewing.org'
footerCredits: 'Made by joost & contributors with the financial support of our patrons ❤️ ' footerCredits: 'Made by joost & contributors with the financial support of our patrons ❤️ '
footerSlogan: 'Freesewing es una plataforma open source para patrones de costura a medida' footerSlogan: 'Freesewing es una plataforma open source para patrones de costura a medida'
goodbyeCopy1: "Si desea compartir por qué se va, puede responder a este mensaje. <br> Por nuestra parte, no volveremos a molestarlo." goodbyeCopy1: 'Si desea compartir por qué se va, puede responder a este mensaje. <br> Por nuestra parte, no volveremos a molestarlo.'
goodbyeHeaderOpeningLine: 'Solo se sabe que siempre se puede volver.' goodbyeHeaderOpeningLine: 'Solo se sabe que siempre se puede volver.'
goodbyeHiddenIntro: 'Gracias por darle una oportunidad a freesewing' goodbyeHiddenIntro: 'Gracias por darle una oportunidad a freesewing'
goodbyeSubject: 'Despedida 👋' goodbyeSubject: 'Despedida 👋'
@ -18,17 +18,17 @@ goodbyeWhy: 'Recibió este correo electrónico como último adiós después de e
joostFromFreesewing: 'Joost de Freesewing' joostFromFreesewing: 'Joost de Freesewing'
passwordresetActionText: 'Recupere el acceso a su cuenta' passwordresetActionText: 'Recupere el acceso a su cuenta'
passwordresetCopy1: 'Olvidó su contraseña para su cuenta en <b> freesewing.org </b>. <br> <br> Haga clic en el enlace de abajo para restablecer su contraseña:' passwordresetCopy1: 'Olvidó su contraseña para su cuenta en <b> freesewing.org </b>. <br> <br> Haga clic en el enlace de abajo para restablecer su contraseña:'
passwordresetHeaderOpeningLine: "No te preocupes, estas cosas nos pasan a todos." passwordresetHeaderOpeningLine: 'No te preocupes, estas cosas nos pasan a todos.'
passwordresetHiddenIntro: 'Recupere el acceso a su cuenta' passwordresetHiddenIntro: 'Recupere el acceso a su cuenta'
passwordresetSubject: 'Recupere el acceso a su cuenta en freesewing.org' passwordresetSubject: 'Recupere el acceso a su cuenta en freesewing.org'
passwordresetTitle: 'Restablece tu contraseña y vuelve a obtener acceso a tu cuenta' passwordresetTitle: 'Restablece tu contraseña y vuelve a obtener acceso a tu cuenta'
passwordresetWhy: 'Recibió este correo electrónico porque solicitó restablecer su contraseña en freesewing.org' passwordresetWhy: 'Recibió este correo electrónico porque solicitó restablecer su contraseña en freesewing.org'
questionsJustReply: "Si tiene alguna pregunta, simplemente responda a este correo electrónico. Siempre feliz de ayudar. 🙂" questionsJustReply: 'Si tiene alguna pregunta, simplemente responda a este correo electrónico. Siempre feliz de ayudar. 🙂'
signature: 'Con amor,' signature: 'Con amor,'
signupActionText: 'Confirme su dirección de correo electrónico' signupActionText: 'Confirme su dirección de correo electrónico'
signupCopy1: 'Gracias por registrarse en <b>freesewing.org</b>.<br><br>Antes de comenzar, debe confirmar su dirección de correo electrónico. Por favor haga clic en el enlace de abajo para hacer eso:' signupCopy1: 'Gracias por registrarse en <b>freesewing.org</b>.<br><br>Antes de comenzar, debe confirmar su dirección de correo electrónico. Por favor haga clic en el enlace de abajo para hacer eso:'
signupHeaderOpeningLine: "Estamos muy contentos de que te unas a la comunidad de freesewing." signupHeaderOpeningLine: 'Estamos muy contentos de que te unas a la comunidad de freesewing.'
signupHiddenIntro: "Confirmemos tu dirección de correo electrónico" signupHiddenIntro: 'Confirmemos tu dirección de correo electrónico'
signupSubject: 'Bienvenido a freesewing.org' signupSubject: 'Bienvenido a freesewing.org'
signupTitle: 'Bienvenido a bordo' signupTitle: 'Bienvenido a bordo'
signupWhy: 'Recibió este correo electrónico porque acaba de registrarse para una cuenta en freesewing.org' signupWhy: 'Recibió este correo electrónico porque acaba de registrarse para una cuenta en freesewing.org'

View file

@ -2,11 +2,11 @@
txt-blog: Noticias, actualizaciones y anuncios del equipo de freesewing. txt-blog: Noticias, actualizaciones y anuncios del equipo de freesewing.
txt-community: 'Todo es llevado por colaboradores voluntarios. TNo hay ninguna entidad comercial detrás de, o vinculada a, este proyecto.' txt-community: 'Todo es llevado por colaboradores voluntarios. TNo hay ninguna entidad comercial detrás de, o vinculada a, este proyecto.'
txt-different: En qué somos diferentes txt-different: En qué somos diferentes
txt-draft: "Elige uno de los patrones, elige un model y elige tus opciones. Nosotros hacemos el resto" txt-draft: 'Elige uno de los patrones, elige un model y elige tus opciones. Nosotros hacemos el resto'
txt-how: Cómo funciona txt-how: Cómo funciona
txt-join: Únete a miles de personas y regístrate en freesewing.org. txt-join: Únete a miles de personas y regístrate en freesewing.org.
txt-model: Todos nuestros patrones son a medida. Así que lo primero que necesitas es un metro. txt-model: Todos nuestros patrones son a medida. Así que lo primero que necesitas es un metro.
txt-newHere: "Si eres nuevo aquí, el mejor lugar para comenzar es nuestra demostración:" txt-newHere: 'Si eres nuevo aquí, el mejor lugar para comenzar es nuestra demostración:'
txt-opensource: 'Nuestra plataforma, nuestros patrones e incluso este sitio web. Todo nuestro código está disponible en GitHub. Modificaciones son bienvenidas!' txt-opensource: 'Nuestra plataforma, nuestros patrones e incluso este sitio web. Todo nuestro código está disponible en GitHub. Modificaciones son bienvenidas!'
txt-patrons: Freesewing es posible por el apoyo económico de nuestros patrocinadores. Desplácese hacia abajo para conocer nuestro modelo de suscripción. txt-patrons: Freesewing es posible por el apoyo económico de nuestros patrocinadores. Desplácese hacia abajo para conocer nuestro modelo de suscripción.
txt-showcase: Proyectos terminados de la comunidad de freesewing txt-showcase: Proyectos terminados de la comunidad de freesewing

View file

@ -6,5 +6,5 @@ bio: Cuéntanos un poco acerca de ti
social: Háganos saber dónde podemos seguirle social: Háganos saber dónde podemos seguirle
newsletter: Give us your newsletter preference newsletter: Give us your newsletter preference
letUsSetupYourAccount: Permítanos configurar su cuenta. letUsSetupYourAccount: Permítanos configurar su cuenta.
walkYouThrough: "Te guiaremos a través de los siguientes pasos:" walkYouThrough: 'Te guiaremos a través de los siguientes pasos:'
someOptional: Aunque todos estos pasos son opcionales, te recomendamos que los recorras para sacar el máximo provecho de FreeSewing. someOptional: Aunque todos estos pasos son opcionales, te recomendamos que los recorras para sacar el máximo provecho de FreeSewing.

View file

@ -96,7 +96,7 @@ howToTakeMeasurements: Comment prendre les mesures
i18n: Internationalisation i18n: Internationalisation
imperialUnits: Unités impériales (pouces) imperialUnits: Unités impériales (pouces)
instagram: Instagram instagram: Instagram
invalidTldMessage: '.{tld} n''est pas un TLD valide' invalidTldMessage: ".{tld} n'est pas un TLD valide"
joinTheChatMsg: Nous avons une communauté sur Discord avec des amis avec lesquels vous pouvez discuter. joinTheChatMsg: Nous avons une communauté sur Discord avec des amis avec lesquels vous pouvez discuter.
justAMoment: Juste un instant justAMoment: Juste un instant
layout: Mis en page layout: Mis en page
@ -179,11 +179,11 @@ shareFreesewing: Partager FreeSewing
showcase: Galerie showcase: Galerie
signUpForAFreeAccount: Créer un compte gratuit signUpForAFreeAccount: Créer un compte gratuit
signUp: S'inscrire signUp: S'inscrire
signupWithProvider: 'S''inscrire avec {provider}' signupWithProvider: "S'inscrire avec {provider}"
sortByField: Trier par {field} sortByField: Trier par {field}
standardSeamAllowance: Marge de couture standard standardSeamAllowance: Marge de couture standard
startOver: Recommencer startOver: Recommencer
startTranslatingNowOrRead: '{startTranslatingNow}, ou lisez d''abord la {documentationForTranslators}.' startTranslatingNowOrRead: "{startTranslatingNow}, ou lisez d'abord la {documentationForTranslators}."
startTranslatingNow: Commencez à traduire maintenant startTranslatingNow: Commencez à traduire maintenant
subscribe: Souscrire subscribe: Souscrire
support: Support support: Support
@ -240,9 +240,9 @@ noPattern: Vous n'avez pas (encore) de patrons. Créez un nouveau patron, puis s
modelFirst: Commencez par ajouter des mensurations modelFirst: Commencez par ajouter des mensurations
noModel: Vous n'avez pas (encore) ajouté de mesure. FreeSewing peut générer des patrons de couture sur mesure. Mais pour cela, nous avons besoin de mensurations. noModel: Vous n'avez pas (encore) ajouté de mesure. FreeSewing peut générer des patrons de couture sur mesure. Mais pour cela, nous avons besoin de mensurations.
noModel2: La première chose à faire est donc d'ajouter une personne et de sortir votre mètre-ruban. noModel2: La première chose à faire est donc d'ajouter une personne et de sortir votre mètre-ruban.
noUserBrowsingTitle: "Vous ne pouvez pas simplement parcourir tous les utilisateurs" noUserBrowsingTitle: 'Vous ne pouvez pas simplement parcourir tous les utilisateurs'
noUserBrowsingText: "Nous en avons des milliers. Vous avez certainement autre chose à faire ?" noUserBrowsingText: 'Nous en avons des milliers. Vous avez certainement autre chose à faire ?'
usePatternMeasurements: 'Utiliser les mesures du patron d''origine' usePatternMeasurements: "Utiliser les mesures du patron d'origine"
createReplica: Créer une réplique createReplica: Créer une réplique
showDetails: Voir les détails showDetails: Voir les détails
hideDetails: Masquer les détails hideDetails: Masquer les détails

View file

@ -1,24 +1,24 @@
--- ---
chatWithUs: 'Discutez avec nous' chatWithUs: 'Discutez avec nous'
emailchangeActionText: 'Confirmez votre nouvelle adresse mail' emailchangeActionText: 'Confirmez votre nouvelle adresse mail'
emailchangeCopy1: 'Vous avez demandé de modifier l''adresse e-mail associée à votre compte sur <b>freesewing.org</b>.<br><br>Avant de procéder, vous devez confirmer votre nouvelle adresse e-mail. S''il vous plaît cliquez sur le lien ci-dessous pour le faire :' emailchangeCopy1: "Vous avez demandé de modifier l'adresse e-mail associée à votre compte sur <b>freesewing.org</b>.<br><br>Avant de procéder, vous devez confirmer votre nouvelle adresse e-mail. S'il vous plaît cliquez sur le lien ci-dessous pour le faire :"
emailchangeHeaderOpeningLine: 'Assurez-vous simplement que nous pouvons vous joindre en cas de besoin' emailchangeHeaderOpeningLine: 'Assurez-vous simplement que nous pouvons vous joindre en cas de besoin'
emailchangeHiddenIntro: "Confirmons votre nouvelle adresse e-mail" emailchangeHiddenIntro: 'Confirmons votre nouvelle adresse e-mail'
emailchangeSubject: 'Merci de confirmer votre nouvelle adresse e-mail' emailchangeSubject: 'Merci de confirmer votre nouvelle adresse e-mail'
emailchangeTitle: 'Merci de confirmer votre nouvelle adresse e-mail' emailchangeTitle: 'Merci de confirmer votre nouvelle adresse e-mail'
emailchangeWhy: 'You received this E-mail because you changed the E-mail address linked to your account on freesewing.org' emailchangeWhy: 'You received this E-mail because you changed the E-mail address linked to your account on freesewing.org'
footerCredits: 'Réalisé par Joost De Cock et ses contributeurs avec le soutien financier de mécènes ❤️ ' footerCredits: 'Réalisé par Joost De Cock et ses contributeurs avec le soutien financier de mécènes ❤️ '
footerSlogan: 'Freesewing est une plate-forme open source pour des patrons de couture sur mesure' footerSlogan: 'Freesewing est une plate-forme open source pour des patrons de couture sur mesure'
goodbyeCopy1: "Si vous souhaitez expliquer pourquoi vous partez, vous pouvez répondre à ce message.<br>De notre côté, nous ne vous dérangerons plus." goodbyeCopy1: 'Si vous souhaitez expliquer pourquoi vous partez, vous pouvez répondre à ce message.<br>De notre côté, nous ne vous dérangerons plus.'
goodbyeHeaderOpeningLine: 'Sachez simplement que vous pouvez toujours revenir' goodbyeHeaderOpeningLine: 'Sachez simplement que vous pouvez toujours revenir'
goodbyeHiddenIntro: 'Merci d''avoir donné une chance à freesewing' goodbyeHiddenIntro: "Merci d'avoir donné une chance à freesewing"
goodbyeSubject: 'Adieu 👋' goodbyeSubject: 'Adieu 👋'
goodbyeTitle: 'Merci d''avoir donné une chance à freesewing' goodbyeTitle: "Merci d'avoir donné une chance à freesewing"
goodbyeWhy: 'Vous avez reçu cet e-mail en guise d''adieu final après la suppression de votre compte sur freesewing.org' goodbyeWhy: "Vous avez reçu cet e-mail en guise d'adieu final après la suppression de votre compte sur freesewing.org"
joostFromFreesewing: 'Joost de Freesewing' joostFromFreesewing: 'Joost de Freesewing'
passwordresetActionText: 'Re-accéder à votre compte' passwordresetActionText: 'Re-accéder à votre compte'
passwordresetCopy1: 'Vous avez oublié votre mot de passe pour votre compte sur <b>freesewing.org</b>.<br><br>Cliquez sur le lien ci-dessous pour réinitialiser votre mot de passe:' passwordresetCopy1: 'Vous avez oublié votre mot de passe pour votre compte sur <b>freesewing.org</b>.<br><br>Cliquez sur le lien ci-dessous pour réinitialiser votre mot de passe:'
passwordresetHeaderOpeningLine: "Ne vous inquiétez pas, ce genre de choses nous arrive à tous" passwordresetHeaderOpeningLine: 'Ne vous inquiétez pas, ce genre de choses nous arrive à tous'
passwordresetHiddenIntro: 'Re-accéder à votre compte' passwordresetHiddenIntro: 'Re-accéder à votre compte'
passwordresetSubject: 'Re-accéder à votre compte sur freesewing.org' passwordresetSubject: 'Re-accéder à votre compte sur freesewing.org'
passwordresetTitle: 'Réinitialisez votre mot de passe et accédez à nouveau à votre compte.' passwordresetTitle: 'Réinitialisez votre mot de passe et accédez à nouveau à votre compte.'
@ -27,8 +27,8 @@ questionsJustReply: "Si vous avez des questions, répondez simplement à cet e-m
signature: 'Bise,' signature: 'Bise,'
signupActionText: 'Confirmez votre adresse mail' signupActionText: 'Confirmez votre adresse mail'
signupCopy1: 'Merci de votre inscription sur <b>freesewing.org</b>.<br><br>Avant de commencer, vous devez confirmer votre adresse e-mail. Pour cela veuillez cliquer sur le lien ci-dessous :' signupCopy1: 'Merci de votre inscription sur <b>freesewing.org</b>.<br><br>Avant de commencer, vous devez confirmer votre adresse e-mail. Pour cela veuillez cliquer sur le lien ci-dessous :'
signupHeaderOpeningLine: "Nous sommes vraiment heureux que vous rejoigniez la communauté freesewing." signupHeaderOpeningLine: 'Nous sommes vraiment heureux que vous rejoigniez la communauté freesewing.'
signupHiddenIntro: "Confirmons votre adresse mail" signupHiddenIntro: 'Confirmons votre adresse mail'
signupSubject: 'Bienvenue sur freesewing.org' signupSubject: 'Bienvenue sur freesewing.org'
signupTitle: 'Bienvenue à bord' signupTitle: 'Bienvenue à bord'
signupWhy: 'Vous avez reçu cet e-mail parce que vous venez de créer un compte sur freesewing.org' signupWhy: 'Vous avez reçu cet e-mail parce que vous venez de créer un compte sur freesewing.org'

View file

@ -21,10 +21,10 @@ openDataInfo: Ces données sont utilisées pour étudier et comprendre la forme
openDataQuestion: Partager des mesures anonymisées sous forme de données ouvertes openDataQuestion: Partager des mesures anonymisées sous forme de données ouvertes
profileQuestion: Donnez-vous votre consentement pour traiter vos données de profil ? profileQuestion: Donnez-vous votre consentement pour traiter vos données de profil ?
profileShareAnswer: '<b>Non</ b>, jamais.' profileShareAnswer: '<b>Non</ b>, jamais.'
profileTimingAnswer: '<b>12 mois</b> après votre dernière connexion ou jusqu''à ce que vous <b>supprimiez</b> votre compte ou <b>révoquiez</b> ce consentement.' profileTimingAnswer: "<b>12 mois</b> après votre dernière connexion ou jusqu'à ce que vous <b>supprimiez</b> votre compte ou <b>révoquiez</b> ce consentement."
profileWarning: Révoquer ce consentement entraînera la suppression de toutes vos données. Cela a exactement le même effet que de supprimer votre compte. profileWarning: Révoquer ce consentement entraînera la suppression de toutes vos données. Cela a exactement le même effet que de supprimer votre compte.
profileWhatAnswerOptional: 'Optionnel : une <b>photo de profil</b>, <b>biographie</b>, et <b>comptes de réseaux sociaux</b>' profileWhatAnswerOptional: 'Optionnel : une <b>photo de profil</b>, <b>biographie</b>, et <b>comptes de réseaux sociaux</b>'
profileWhatAnswer: 'Votre <b>adresse e-mail</b>, <b>nom d''utilisateur</b>et <b>mot de passe</b>.' profileWhatAnswer: "Votre <b>adresse e-mail</b>, <b>nom d'utilisateur</b>et <b>mot de passe</b>."
profileWhatQuestion: Que sont les données de profil ? profileWhatQuestion: Que sont les données de profil ?
profileWhyAnswer: 'Pour <b>vous authentifier</b> , <b>vous contacter</b> lorsque nécessaire, et construire une <b>communauté</b>.' profileWhyAnswer: 'Pour <b>vous authentifier</b> , <b>vous contacter</b> lorsque nécessaire, et construire une <b>communauté</b>.'
readMore: Pour plus d'informations, veuillez lire notre politique de confidentialité. readMore: Pour plus d'informations, veuillez lire notre politique de confidentialité.
@ -34,6 +34,6 @@ shareQuestion: La partageons-nous avec les autres ?
timingQuestion: Combien de temps les gardons-nous ? timingQuestion: Combien de temps les gardons-nous ?
whatYouNeedToKnow: Ce que vous devez savoir whatYouNeedToKnow: Ce que vous devez savoir
whyQuestion: Pourquoi en avons-nous besoin ? whyQuestion: Pourquoi en avons-nous besoin ?
yesIDoObject: 'Oui, je m''y oppose' yesIDoObject: "Oui, je m'y oppose"
yesIDo: 'Oui, je le veux' yesIDo: 'Oui, je le veux'
openData: 'Note : Freesewing publie des mesures rendues anonymes en tant que données libres pour la recherche scientifique. Vous avez le droit de vous y opposer' openData: 'Note : Freesewing publie des mesures rendues anonymes en tant que données libres pour la recherche scientifique. Vous avez le droit de vous y opposer'

View file

@ -1,12 +1,12 @@
--- ---
txt-blog: Nouvelles, mises à jour et annonces de l'équipe freesewing txt-blog: Nouvelles, mises à jour et annonces de l'équipe freesewing
txt-community: 'Tout est géré par des contributeurs bénévoles. Il n''y a pas d''entité commerciale, ou assimilée, derrière ce projet.' txt-community: "Tout est géré par des contributeurs bénévoles. Il n'y a pas d'entité commerciale, ou assimilée, derrière ce projet."
txt-different: Ce en quoi nous sommes différents txt-different: Ce en quoi nous sommes différents
txt-draft: "Choisissez parmi l'un de vos patrons, choisissez un modèle, et sélectionnez vos options. Nous ferons le reste." txt-draft: "Choisissez parmi l'un de vos patrons, choisissez un modèle, et sélectionnez vos options. Nous ferons le reste."
txt-how: Comment ça marche txt-how: Comment ça marche
txt-join: Rejoignez des milliers d'autres personnes en vous inscrivant gratuitement sur freesewing.org. txt-join: Rejoignez des milliers d'autres personnes en vous inscrivant gratuitement sur freesewing.org.
txt-model: Tous nos patrons sont faits sur mesure, donc la première chose à faire est de vous munir de votre mètre-ruban. txt-model: Tous nos patrons sont faits sur mesure, donc la première chose à faire est de vous munir de votre mètre-ruban.
txt-newHere: "Si vous êtes nouveau ici, le meilleur endroit pour commencer est notre démo :" txt-newHere: 'Si vous êtes nouveau ici, le meilleur endroit pour commencer est notre démo :'
txt-opensource: 'Notre plateforme, nos patrons, et même ce site web. Tout notre code est disponible sur GitHub. Les "Pull requests" sont les bienvenues !' txt-opensource: 'Notre plateforme, nos patrons, et même ce site web. Tout notre code est disponible sur GitHub. Les "Pull requests" sont les bienvenues !'
txt-patrons: Freesewing existe grâce au soutien financier de nos Mécènes. Faites défiler vers le bas pour en savoir plus sur nos modes de souscription. txt-patrons: Freesewing existe grâce au soutien financier de nos Mécènes. Faites défiler vers le bas pour en savoir plus sur nos modes de souscription.
txt-showcase: Projets terminés de la communauté freesewing txt-showcase: Projets terminés de la communauté freesewing

View file

@ -6,5 +6,5 @@ bio: Parlez-nous un peu de vous
social: Dites-nous où nous pouvons vous suivre social: Dites-nous où nous pouvons vous suivre
newsletter: Donnez-nous votre préférence pour la newsletter newsletter: Donnez-nous votre préférence pour la newsletter
letUsSetupYourAccount: Laissez-nous configurer votre compte. letUsSetupYourAccount: Laissez-nous configurer votre compte.
walkYouThrough: "Nous vous guiderons à travers les étapes suivantes :" walkYouThrough: 'Nous vous guiderons à travers les étapes suivantes :'
someOptional: Bien que toutes ces étapes soient facultatives, nous vous recommandons de les passer en revue pour tirer le meilleur parti de FreeSewing. someOptional: Bien que toutes ces étapes soient facultatives, nous vous recommandons de les passer en revue pour tirer le meilleur parti de FreeSewing.

View file

@ -12,7 +12,7 @@ applyThisLayout: Pas deze layout toe
areYouSureYouWantToContinue: Weet je zeker dat je door wilt gaan? areYouSureYouWantToContinue: Weet je zeker dat je door wilt gaan?
askForHelp: Vraag om hulp askForHelp: Vraag om hulp
automatic: Automatisch automatic: Automatisch
averagePeopleDoNotExist: "Gemiddelde mensen bestaan niet" averagePeopleDoNotExist: 'Gemiddelde mensen bestaan niet'
awesome: Super awesome: Super
back: Achterzijde back: Achterzijde
becauseThatWouldBeReallyHelpful: Want dat zou ons echt vooruit helpen. becauseThatWouldBeReallyHelpful: Want dat zou ons echt vooruit helpen.
@ -72,7 +72,7 @@ drafts: Patroontekeningen
draftSettings: Instellingen patroontekening draftSettings: Instellingen patroontekening
dragAndDropImageHere: Drag and drop an image here, or select one manually with the button below dragAndDropImageHere: Drag and drop an image here, or select one manually with the button below
emailAddress: Email adres emailAddress: Email adres
emailWorksToo: "Als je je gebruikersnaam niet meer weet, vul dan je email adres in, dat werkt ook" emailWorksToo: 'Als je je gebruikersnaam niet meer weet, vul dan je email adres in, dat werkt ook'
enterEmailPickPassword: Voer je email adres in, en kies een wachtwoord enterEmailPickPassword: Voer je email adres in, en kies een wachtwoord
export: Exporteren export: Exporteren
exportTiledPDF: Gepagineerde PDF exporteren exportTiledPDF: Gepagineerde PDF exporteren
@ -81,7 +81,7 @@ fieldRemoved: '{field} verwijderd'
fieldSaved: '{field} opgeslagen' fieldSaved: '{field} opgeslagen'
filterByPattern: Filter op patroon filterByPattern: Filter op patroon
filterPatterns: Patronen filteren filterPatterns: Patronen filteren
forgotLoginInstructions: "Als je je wachtwoord niet meer weet, vul dan hieronder je gebruikersnaam of email adres in, en klik op de <b>Herstel wachtwoord</b> knop" forgotLoginInstructions: 'Als je je wachtwoord niet meer weet, vul dan hieronder je gebruikersnaam of email adres in, en klik op de <b>Herstel wachtwoord</b> knop'
freesewing: Freesewing freesewing: Freesewing
freesewingOnGithub: FreeSewing op GitHub freesewingOnGithub: FreeSewing op GitHub
github: GitHub github: GitHub
@ -156,7 +156,7 @@ remove: Verwijderen
removeThing: '{thing} verwijderen' removeThing: '{thing} verwijderen'
reportThisOnGithub: Melden via GitHub reportThisOnGithub: Melden via GitHub
requiredMeasurements: Vereiste maten requiredMeasurements: Vereiste maten
resendActivationEmailMessage: "Vul het e-mailadres waarmee je je account aangemaakt hebt in en we zullen je een nieuwe bevestigingsmail sturen." resendActivationEmailMessage: 'Vul het e-mailadres waarmee je je account aangemaakt hebt in en we zullen je een nieuwe bevestigingsmail sturen.'
resendActivationEmail: Stuur een nieuwe activatie email resendActivationEmail: Stuur een nieuwe activatie email
resetPassword: Wachtwoord opnieuw instellen resetPassword: Wachtwoord opnieuw instellen
reset: Reset reset: Reset
@ -198,7 +198,7 @@ twitter: Twitter
txt-footer: Freesewing is made by a community of contributors<br />with the financial support of our Patrons txt-footer: Freesewing is made by a community of contributors<br />with the financial support of our Patrons
txt-tier2: Onze meest democratisch geprijsde optie. Het is minder dan de prijs van een latte, maar jouw steun betekent alles voor ons. txt-tier2: Onze meest democratisch geprijsde optie. Het is minder dan de prijs van een latte, maar jouw steun betekent alles voor ons.
txt-tier4: Abonneer je op deze optie en we sturen wat van onze erg gegeerde FreeSewing swag naar je thuis. Waar ook ter wereld dat mag zijn. txt-tier4: Abonneer je op deze optie en we sturen wat van onze erg gegeerde FreeSewing swag naar je thuis. Waar ook ter wereld dat mag zijn.
txt-tier8: "Als je ons niet louter wil steunen, maar FreeSewing wil zien groeien, dan is dit de optie voor jou. Ook: extra swag!" txt-tier8: 'Als je ons niet louter wil steunen, maar FreeSewing wil zien groeien, dan is dit de optie voor jou. Ook: extra swag!'
txt-tiers: 'FreeSewing draait op een vrijwillig subscriptiemodel' txt-tiers: 'FreeSewing draait op een vrijwillig subscriptiemodel'
unitsInfo: FreeSewing ondersteunt zowel het metrieke stelsel als de imperiale eenheden. Kies eenvoudig welke u hier wilt gebruiken. (de standaard is om de eenheden te gebruiken die in uw account zijn geconfigureerd). unitsInfo: FreeSewing ondersteunt zowel het metrieke stelsel als de imperiale eenheden. Kies eenvoudig welke u hier wilt gebruiken. (de standaard is om de eenheden te gebruiken die in uw account zijn geconfigureerd).
updated: Bijgewerkt updated: Bijgewerkt
@ -240,8 +240,8 @@ noPattern: Je hebt (nog) geen patronen. Maak een nieuw patroon, en sla het op in
modelFirst: Begin met maten toe te voegen modelFirst: Begin met maten toe te voegen
noModel: Je hebt (nog) geen maten toegevoegd. FreeSewing can naaipatronen op maat genereren. Maar daarvoor hebben we maten nodig. noModel: Je hebt (nog) geen maten toegevoegd. FreeSewing can naaipatronen op maat genereren. Maar daarvoor hebben we maten nodig.
noModel2: Dus het eerste dat je zou moeten doen is een persoon toevoegen, en je lintmeter bovenhalen. noModel2: Dus het eerste dat je zou moeten doen is een persoon toevoegen, en je lintmeter bovenhalen.
noUserBrowsingTitle: "Je kan niet zomaar door alle gebruikers grasduinen" noUserBrowsingTitle: 'Je kan niet zomaar door alle gebruikers grasduinen'
noUserBrowsingText: "We hebben er duizenden. Je hebt toch wel wat beters te doen?" noUserBrowsingText: 'We hebben er duizenden. Je hebt toch wel wat beters te doen?'
usePatternMeasurements: 'Gebruik de maten van het originele patroon' usePatternMeasurements: 'Gebruik de maten van het originele patroon'
createReplica: Creëer een replica createReplica: Creëer een replica
showDetails: Toon details showDetails: Toon details

View file

@ -3,13 +3,13 @@ chatWithUs: 'Chat met ons'
emailchangeActionText: 'Bevestig uw nieuwe e-mailadres' emailchangeActionText: 'Bevestig uw nieuwe e-mailadres'
emailchangeCopy1: 'U heeft verzocht het e-mailadres dat aan uw account is gekoppeld te wijzigen op <b> freesewing.org </b>.<br><br>Voordat we dat doen, moet u uw nieuwe e-mailadres bevestigen. Klik op de onderstaande link om dat te doen:' emailchangeCopy1: 'U heeft verzocht het e-mailadres dat aan uw account is gekoppeld te wijzigen op <b> freesewing.org </b>.<br><br>Voordat we dat doen, moet u uw nieuwe e-mailadres bevestigen. Klik op de onderstaande link om dat te doen:'
emailchangeHeaderOpeningLine: 'We zorgen ervoor dat we u kunnen bereiken wanneer dat nodig is' emailchangeHeaderOpeningLine: 'We zorgen ervoor dat we u kunnen bereiken wanneer dat nodig is'
emailchangeHiddenIntro: "Laten we uw nieuwe e-mailadres bevestigen" emailchangeHiddenIntro: 'Laten we uw nieuwe e-mailadres bevestigen'
emailchangeSubject: 'Bevestig uw nieuwe e-mailadres' emailchangeSubject: 'Bevestig uw nieuwe e-mailadres'
emailchangeTitle: 'Bevestig uw nieuwe e-mailadres' emailchangeTitle: 'Bevestig uw nieuwe e-mailadres'
emailchangeWhy: 'You received this E-mail because you changed the E-mail address linked to your account on freesewing.org' emailchangeWhy: 'You received this E-mail because you changed the E-mail address linked to your account on freesewing.org'
footerCredits: 'Gemaakt door joost & vrijwilligers met de financiële steun van onze Patrons ❤️ ' footerCredits: 'Gemaakt door joost & vrijwilligers met de financiële steun van onze Patrons ❤️ '
footerSlogan: 'FreeSewing is een open source platform voor naaipatronen op maat' footerSlogan: 'FreeSewing is een open source platform voor naaipatronen op maat'
goodbyeCopy1: "Als je wilt delen waarom je vertrekt, kun je dit bericht beantwoorden. <br> Van onze kant zullen we je niet opnieuw lastig vallen." goodbyeCopy1: 'Als je wilt delen waarom je vertrekt, kun je dit bericht beantwoorden. <br> Van onze kant zullen we je niet opnieuw lastig vallen.'
goodbyeHeaderOpeningLine: 'Weet gewoon dat je altijd terug kunt komen' goodbyeHeaderOpeningLine: 'Weet gewoon dat je altijd terug kunt komen'
goodbyeHiddenIntro: 'Bedankt dat je freesewing.org een kans hebt gegeven' goodbyeHiddenIntro: 'Bedankt dat je freesewing.org een kans hebt gegeven'
goodbyeSubject: 'Vaarwel 👋' goodbyeSubject: 'Vaarwel 👋'
@ -18,17 +18,17 @@ goodbyeWhy: 'U ontving deze e-mail als een laatste adieu na het verwijderen van
joostFromFreesewing: 'Joost van FreeSewing' joostFromFreesewing: 'Joost van FreeSewing'
passwordresetActionText: 'Krijg toegang tot uw account' passwordresetActionText: 'Krijg toegang tot uw account'
passwordresetCopy1: 'U bent uw wachtwoord voor uw account vergeten op <b>freesewing.org</b>.<br><br>Klik op de onderstaande link om uw wachtwoord opnieuw in te stellen:' passwordresetCopy1: 'U bent uw wachtwoord voor uw account vergeten op <b>freesewing.org</b>.<br><br>Klik op de onderstaande link om uw wachtwoord opnieuw in te stellen:'
passwordresetHeaderOpeningLine: "Maak je geen zorgen, deze dingen gebeuren met ons allemaal" passwordresetHeaderOpeningLine: 'Maak je geen zorgen, deze dingen gebeuren met ons allemaal'
passwordresetHiddenIntro: 'Krijg toegang tot uw account' passwordresetHiddenIntro: 'Krijg toegang tot uw account'
passwordresetSubject: 'Krijg toegang tot uw account op freesewing.org' passwordresetSubject: 'Krijg toegang tot uw account op freesewing.org'
passwordresetTitle: 'Stel uw wachtwoord opnieuw in en verkrijg opnieuw toegang tot uw account' passwordresetTitle: 'Stel uw wachtwoord opnieuw in en verkrijg opnieuw toegang tot uw account'
passwordresetWhy: 'U hebt deze e-mail ontvangen omdat u heeft gevraagd om uw wachtwoord opnieuw in te stellen op freesewing.org' passwordresetWhy: 'U hebt deze e-mail ontvangen omdat u heeft gevraagd om uw wachtwoord opnieuw in te stellen op freesewing.org'
questionsJustReply: "Zit je met vragen? Stuur ze dan als antwoord op deze E-mail. Ik ben steeds bereid om een handje te helpen. 🙂" questionsJustReply: 'Zit je met vragen? Stuur ze dan als antwoord op deze E-mail. Ik ben steeds bereid om een handje te helpen. 🙂'
signature: 'Liefs,' signature: 'Liefs,'
signupActionText: 'Bevestig je E-mail adres' signupActionText: 'Bevestig je E-mail adres'
signupCopy1: 'Leuk dat je je hebt ingeschreven op <b>freesewing.org</b>.<br><br>Vooraleer we aan de slag kunnen, moeten we eerst je E-mail adres bevestigen. Klik op onderstaande link om dat te doen:' signupCopy1: 'Leuk dat je je hebt ingeschreven op <b>freesewing.org</b>.<br><br>Vooraleer we aan de slag kunnen, moeten we eerst je E-mail adres bevestigen. Klik op onderstaande link om dat te doen:'
signupHeaderOpeningLine: "We zijn verheugd dat je deel wil uitmaken van de freesewing gemeenschap." signupHeaderOpeningLine: 'We zijn verheugd dat je deel wil uitmaken van de freesewing gemeenschap.'
signupHiddenIntro: "Nu gewoon nog even je E-mail adres bevestigen" signupHiddenIntro: 'Nu gewoon nog even je E-mail adres bevestigen'
signupSubject: 'Welkom bij freesewing.org' signupSubject: 'Welkom bij freesewing.org'
signupTitle: 'Welkom aan boord' signupTitle: 'Welkom aan boord'
signupWhy: 'Je ontving deze E-mail omdat je je zonet ingeschreven hebt op freesewing.org' signupWhy: 'Je ontving deze E-mail omdat je je zonet ingeschreven hebt op freesewing.org'

View file

@ -2,11 +2,11 @@
txt-blog: Nieuws, updates, and mededelingen door het freesewing team txt-blog: Nieuws, updates, and mededelingen door het freesewing team
txt-community: 'Al het werk word gedaan door vrijwillige medewerkers. Er zijn geen commerciële belangen verbonden aan het project.' txt-community: 'Al het werk word gedaan door vrijwillige medewerkers. Er zijn geen commerciële belangen verbonden aan het project.'
txt-different: Hoe we anders zijn txt-different: Hoe we anders zijn
txt-draft: "Kies één van onze patronen, één van jouw modellen, en kies je opties. Wij doen de rest." txt-draft: 'Kies één van onze patronen, één van jouw modellen, en kies je opties. Wij doen de rest.'
txt-how: Hoe het werkt txt-how: Hoe het werkt
txt-join: Sluit je aan bij duizenden anderen, en schrijf je gratis in op freesewing.org. txt-join: Sluit je aan bij duizenden anderen, en schrijf je gratis in op freesewing.org.
txt-model: Al onze patronen zijn op maat gemaakt. Het eerste wat je dus moet doen is je lintmeter bij de hand nemen. txt-model: Al onze patronen zijn op maat gemaakt. Het eerste wat je dus moet doen is je lintmeter bij de hand nemen.
txt-newHere: "Ben je hier nieuw? Dan is onze demo de beste plaats om van start te gaan:" txt-newHere: 'Ben je hier nieuw? Dan is onze demo de beste plaats om van start te gaan:'
txt-opensource: 'Ons platform, al onze patronen, en zelfs deze website. Al onze broncode is beschikbaar op GitHub. Pull requests welkom!' txt-opensource: 'Ons platform, al onze patronen, en zelfs deze website. Al onze broncode is beschikbaar op GitHub. Pull requests welkom!'
txt-patrons: Freesewing wordt mogelijk gemaakt door de financiële steun van onze mecenassen. Onderaan deze pagina kan je meer lezen over hoe we dit schip drijvende houden. txt-patrons: Freesewing wordt mogelijk gemaakt door de financiële steun van onze mecenassen. Onderaan deze pagina kan je meer lezen over hoe we dit schip drijvende houden.
txt-showcase: Bekijk de projecten gemaakt door de freesewing gemeenschap txt-showcase: Bekijk de projecten gemaakt door de freesewing gemeenschap

View file

@ -6,5 +6,5 @@ bio: Vertel ons een beetje over jezelf
social: Laat ons weten waar we je kunnen volgen social: Laat ons weten waar we je kunnen volgen
newsletter: Geef ons je voorkeur met betrekking tot de nieuwsbrief newsletter: Geef ons je voorkeur met betrekking tot de nieuwsbrief
letUsSetupYourAccount: Laten we je account instellen. letUsSetupYourAccount: Laten we je account instellen.
walkYouThrough: "We zullen je door de volgende stappen begeleiden:" walkYouThrough: 'We zullen je door de volgende stappen begeleiden:'
someOptional: Hoewel al deze stappen optioneel zijn, raden we je toch aan alles te doen om het meeste uit FreeSewing te halen. someOptional: Hoewel al deze stappen optioneel zijn, raden we je toch aan alles te doen om het meeste uit FreeSewing te halen.

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
let width = store.get('chestPocketWidth') let width = store.get('chestPocketWidth')
let welt = store.get('chestPocketWeltHeight') let welt = store.get('chestPocketWeltHeight')

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
let width = store.get('chestPocketWidth') let width = store.get('chestPocketWidth')
let height = store.get('chestPocketWeltHeight') let height = store.get('chestPocketWeltHeight')

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
let width = store.get('innerPocketWidth') let width = store.get('innerPocketWidth')
let welt = store.get('innerPocketWeltHeight') let welt = store.get('innerPocketWeltHeight')

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, store, complete, points, options, macro, Point, paths, Path } =
paperless, part.shorthand()
sa,
store,
complete,
points,
options,
macro,
Point,
paths,
Path,
} = part.shorthand()
let width = store.get('pocketWidth') let width = store.get('pocketWidth')
let depth = store.get('pocketDepth') let depth = store.get('pocketDepth')

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, utils, complete, points, measurements, options, macro, paths, Path } =
paperless, part.shorthand()
sa,
utils,
complete,
points,
measurements,
options,
macro,
paths,
Path,
} = part.shorthand()
// Vent // Vent
let slope = 15 let slope = 15

View file

@ -1,16 +1,6 @@
export default function (part) { export default function (part) {
let { let { paperless, sa, utils, complete, points, measurements, options, macro, paths, Path } =
paperless, part.shorthand()
sa,
utils,
complete,
points,
measurements,
options,
macro,
paths,
Path,
} = part.shorthand()
// Vent // Vent
let slope = 15 let slope = 15

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

View file

@ -12,23 +12,18 @@ const output = [
format: 'cjs', format: 'cjs',
sourcemap: true, sourcemap: true,
exports: rollup.exports, exports: rollup.exports,
} },
] ]
if (typeof module !== 'undefined') if (typeof module !== 'undefined')
output.push({ output.push({
banner, banner,
file: module, file: module,
format: 'es', format: 'es',
sourcemap: true sourcemap: true,
}) })
export default { export default {
input: 'src/index.js', input: 'src/index.js',
output, output,
plugins: [ plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
peerDepsExternal(),
resolve({ modulesOnly: true }),
commonjs(),
json(),
]
} }

Some files were not shown because too many files have changed in this diff Show more