chore: Prettier run
This commit is contained in:
parent
ef5e792d6b
commit
a953f1692b
86 changed files with 284 additions and 397 deletions
|
@ -18,7 +18,7 @@
|
||||||
"kickstart": "npx lerna bootstrap && yarn buildall && yarn tips",
|
"kickstart": "npx lerna bootstrap && yarn buildall && yarn tips",
|
||||||
"cleanall": "lerna run clean",
|
"cleanall": "lerna run clean",
|
||||||
"test": "lerna run test",
|
"test": "lerna run test",
|
||||||
"prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/i18n/src/locales/**/*.*' 'packages/**/tests/*.mjs'",
|
"prettier": "npx prettier --write 'packages/**/src/*.mjs' 'packages/**/src/*.js' 'packages/i18n/src/locales/**/*.*' 'packages/**/tests/*.mjs'",
|
||||||
"reconfigure": "all-contributors generate && node --experimental-json-modules --no-warnings scripts/reconfigure.mjs",
|
"reconfigure": "all-contributors generate && node --experimental-json-modules --no-warnings scripts/reconfigure.mjs",
|
||||||
"prerelease": "lerna version --no-git-tag-version --no-push && yarn reconfigure && yarn buildall",
|
"prerelease": "lerna version --no-git-tag-version --no-push && yarn reconfigure && yarn buildall",
|
||||||
"buildall": "lerna run cibuild_step0 && lerna run cibuild_step1 && lerna run cibuild_step2 && lerna run cibuild_step3 && lerna run cibuild_step4 && lerna run cibuild_step5 && lerna run cibuild_step6 && lerna run cibuild_step7",
|
"buildall": "lerna run cibuild_step0 && lerna run cibuild_step1 && lerna run cibuild_step2 && lerna run cibuild_step3 && lerna run cibuild_step4 && lerna run cibuild_step5 && lerna run cibuild_step6 && lerna run cibuild_step7",
|
||||||
|
|
|
@ -560,9 +560,8 @@ Pattern.prototype.pack = function () {
|
||||||
// First, create all stacks
|
// First, create all stacks
|
||||||
this.stacks = {}
|
this.stacks = {}
|
||||||
for (const [name, part] of Object.entries(this.parts)) {
|
for (const [name, part] of Object.entries(this.parts)) {
|
||||||
const stackName = (typeof part.stack === 'function')
|
const stackName =
|
||||||
? part.stack(this.settings, name)
|
typeof part.stack === 'function' ? part.stack(this.settings, name) : part.stack
|
||||||
: part.stack
|
|
||||||
if (typeof this.stacks[stackName] === 'undefined')
|
if (typeof this.stacks[stackName] === 'undefined')
|
||||||
this.stacks[stackName] = this.__createStackWithContext(stackName)
|
this.stacks[stackName] = this.__createStackWithContext(stackName)
|
||||||
this.stacks[stackName].addPart(part)
|
this.stacks[stackName].addPart(part)
|
||||||
|
|
|
@ -94,7 +94,10 @@ Stack.prototype.home = function () {
|
||||||
|
|
||||||
if (this.topLeft.x === this.anchor.x && this.topLeft.y === this.anchor.y) return this
|
if (this.topLeft.x === this.anchor.x && this.topLeft.y === this.anchor.y) return this
|
||||||
else {
|
else {
|
||||||
this.attr('transform', `translate(${this.anchor.x - this.topLeft.x}, ${this.anchor.y - this.topLeft.y})`)
|
this.attr(
|
||||||
|
'transform',
|
||||||
|
`translate(${this.anchor.x - this.topLeft.x}, ${this.anchor.y - this.topLeft.y})`
|
||||||
|
)
|
||||||
this.layout.move.x = this.anchor.x - this.topLeft.x
|
this.layout.move.x = this.anchor.x - this.topLeft.x
|
||||||
this.layout.move.y = this.anchor.y - this.topLeft.y
|
this.layout.move.y = this.anchor.y - this.topLeft.y
|
||||||
}
|
}
|
||||||
|
@ -103,7 +106,7 @@ Stack.prototype.home = function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Finds the anchor to align parts in this stack */
|
/** Finds the anchor to align parts in this stack */
|
||||||
Stack.prototype.getAnchor = function() {
|
Stack.prototype.getAnchor = function () {
|
||||||
let anchorPoint = true
|
let anchorPoint = true
|
||||||
let gridAnchorPoint = true
|
let gridAnchorPoint = true
|
||||||
const parts = this.getPartList()
|
const parts = this.getPartList()
|
||||||
|
@ -115,7 +118,7 @@ Stack.prototype.getAnchor = function() {
|
||||||
if (anchorPoint) return parts[0].points.anchor
|
if (anchorPoint) return parts[0].points.anchor
|
||||||
if (gridAnchorPoint) return parts[0].points.gridAnchor
|
if (gridAnchorPoint) return parts[0].points.gridAnchor
|
||||||
|
|
||||||
return new Point(0,0)
|
return new Point(0, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Adds an attribute. This is here to make this call chainable in assignment */
|
/** Adds an attribute. This is here to make this call chainable in assignment */
|
||||||
|
@ -136,5 +139,4 @@ Stack.prototype.generateTransform = function (transforms) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export default Stack
|
export default Stack
|
||||||
|
|
|
@ -88,91 +88,89 @@ describe('Stacks', () => {
|
||||||
).to.equal(true)
|
).to.equal(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('Should calculate the part boundary', () => {
|
||||||
|
const part = {
|
||||||
|
name: 'test',
|
||||||
|
draft: ({ points, Point, paths, Path, part }) => {
|
||||||
|
points.from = new Point(123, 456)
|
||||||
|
points.to = new Point(19, 76)
|
||||||
|
paths.test = new Path().move(points.from).line(points.to)
|
||||||
|
|
||||||
it('Should calculate the part boundary', () => {
|
return part
|
||||||
const part = {
|
},
|
||||||
name: 'test',
|
|
||||||
draft: ({points, Point, paths, Path, part }) => {
|
|
||||||
points.from = new Point(123, 456)
|
|
||||||
points.to = new Point(19, 76)
|
|
||||||
paths.test = new Path().move(points.from).line(points.to)
|
|
||||||
|
|
||||||
return part
|
|
||||||
}
|
}
|
||||||
}
|
const design = new Design({ parts: [part] })
|
||||||
const design = new Design({ parts: [ part ]})
|
const pattern = new design()
|
||||||
const pattern = new design()
|
pattern.draft().render()
|
||||||
pattern.draft().render()
|
expect(pattern.stacks.test.topLeft.x).to.equal(17)
|
||||||
expect(pattern.stacks.test.topLeft.x).to.equal(17)
|
expect(pattern.stacks.test.topLeft.y).to.equal(74)
|
||||||
expect(pattern.stacks.test.topLeft.y).to.equal(74)
|
expect(pattern.stacks.test.bottomRight.x).to.equal(125)
|
||||||
expect(pattern.stacks.test.bottomRight.x).to.equal(125)
|
expect(pattern.stacks.test.bottomRight.y).to.equal(458)
|
||||||
expect(pattern.stacks.test.bottomRight.y).to.equal(458)
|
expect(pattern.stacks.test.width).to.equal(108)
|
||||||
expect(pattern.stacks.test.width).to.equal(108)
|
expect(pattern.stacks.test.height).to.equal(384)
|
||||||
expect(pattern.stacks.test.height).to.equal(384)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Should calculate the part boundary with custom margin', () => {
|
|
||||||
const part = {
|
|
||||||
name: 'test',
|
|
||||||
draft: ({points, Point, paths, Path, part }) => {
|
|
||||||
points.from = new Point(123, 456)
|
|
||||||
points.to = new Point(19, 76)
|
|
||||||
paths.test = new Path().move(points.from).line(points.to)
|
|
||||||
|
|
||||||
return part
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const design = new Design({ parts: [ part ]})
|
|
||||||
const pattern = new design({ margin: 5 })
|
|
||||||
pattern.draft().render()
|
|
||||||
expect(pattern.stacks.test.topLeft.x).to.equal(14)
|
|
||||||
expect(pattern.stacks.test.topLeft.y).to.equal(71)
|
|
||||||
expect(pattern.stacks.test.bottomRight.x).to.equal(128)
|
|
||||||
expect(pattern.stacks.test.bottomRight.y).to.equal(461)
|
|
||||||
expect(pattern.stacks.test.width).to.equal(114)
|
|
||||||
expect(pattern.stacks.test.height).to.equal(390)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Should calculate the part boundary for paperless', () => {
|
|
||||||
const part = {
|
|
||||||
name: 'test',
|
|
||||||
draft: ({points, Point, paths, Path, part }) => {
|
|
||||||
points.from = new Point(123, 456)
|
|
||||||
points.to = new Point(19, 76)
|
|
||||||
paths.test = new Path().move(points.from).line(points.to)
|
|
||||||
|
|
||||||
return part
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const design = new Design({ parts: [ part ]})
|
|
||||||
const pattern = new design({ paperless: true })
|
|
||||||
pattern.draft().render()
|
|
||||||
expect(pattern.stacks.test.topLeft.x).to.equal(9)
|
|
||||||
expect(pattern.stacks.test.topLeft.y).to.equal(66)
|
|
||||||
})
|
|
||||||
it('Should generate the part transforms', () => {
|
|
||||||
const part = {
|
|
||||||
name: 'test',
|
|
||||||
draft: ({points, Point, paths, Path, part }) => {
|
|
||||||
points.from = new Point(2, 2)
|
|
||||||
points.to = new Point(19, 76)
|
|
||||||
paths.test = new Path().move(points.from).line(points.to)
|
|
||||||
|
|
||||||
return part
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const design = new Design({ parts: [ part ] })
|
|
||||||
const pattern = new design()
|
|
||||||
pattern.draft().render()
|
|
||||||
pattern.stacks.test.generateTransform({
|
|
||||||
move: {
|
|
||||||
x: 10,
|
|
||||||
y: 20,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
expect(pattern.stacks.test.attributes.list.transform.length).to.equal(1)
|
|
||||||
expect(pattern.stacks.test.attributes.list.transform[0]).to.equal('translate(10 20)')
|
|
||||||
})
|
|
||||||
|
|
||||||
|
it('Should calculate the part boundary with custom margin', () => {
|
||||||
|
const part = {
|
||||||
|
name: 'test',
|
||||||
|
draft: ({ points, Point, paths, Path, part }) => {
|
||||||
|
points.from = new Point(123, 456)
|
||||||
|
points.to = new Point(19, 76)
|
||||||
|
paths.test = new Path().move(points.from).line(points.to)
|
||||||
|
|
||||||
|
return part
|
||||||
|
},
|
||||||
|
}
|
||||||
|
const design = new Design({ parts: [part] })
|
||||||
|
const pattern = new design({ margin: 5 })
|
||||||
|
pattern.draft().render()
|
||||||
|
expect(pattern.stacks.test.topLeft.x).to.equal(14)
|
||||||
|
expect(pattern.stacks.test.topLeft.y).to.equal(71)
|
||||||
|
expect(pattern.stacks.test.bottomRight.x).to.equal(128)
|
||||||
|
expect(pattern.stacks.test.bottomRight.y).to.equal(461)
|
||||||
|
expect(pattern.stacks.test.width).to.equal(114)
|
||||||
|
expect(pattern.stacks.test.height).to.equal(390)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Should calculate the part boundary for paperless', () => {
|
||||||
|
const part = {
|
||||||
|
name: 'test',
|
||||||
|
draft: ({ points, Point, paths, Path, part }) => {
|
||||||
|
points.from = new Point(123, 456)
|
||||||
|
points.to = new Point(19, 76)
|
||||||
|
paths.test = new Path().move(points.from).line(points.to)
|
||||||
|
|
||||||
|
return part
|
||||||
|
},
|
||||||
|
}
|
||||||
|
const design = new Design({ parts: [part] })
|
||||||
|
const pattern = new design({ paperless: true })
|
||||||
|
pattern.draft().render()
|
||||||
|
expect(pattern.stacks.test.topLeft.x).to.equal(9)
|
||||||
|
expect(pattern.stacks.test.topLeft.y).to.equal(66)
|
||||||
|
})
|
||||||
|
it('Should generate the part transforms', () => {
|
||||||
|
const part = {
|
||||||
|
name: 'test',
|
||||||
|
draft: ({ points, Point, paths, Path, part }) => {
|
||||||
|
points.from = new Point(2, 2)
|
||||||
|
points.to = new Point(19, 76)
|
||||||
|
paths.test = new Path().move(points.from).line(points.to)
|
||||||
|
|
||||||
|
return part
|
||||||
|
},
|
||||||
|
}
|
||||||
|
const design = new Design({ parts: [part] })
|
||||||
|
const pattern = new design()
|
||||||
|
pattern.draft().render()
|
||||||
|
pattern.stacks.test.generateTransform({
|
||||||
|
move: {
|
||||||
|
x: 10,
|
||||||
|
y: 20,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
expect(pattern.stacks.test.attributes.list.transform.length).to.equal(1)
|
||||||
|
expect(pattern.stacks.test.attributes.list.transform[0]).to.equal('translate(10 20)')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -13,7 +13,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: Zurück
|
back: Zurück
|
||||||
becauseThatWouldBeReallyHelpful: Weil das wirklich hilfreich wäre.
|
becauseThatWouldBeReallyHelpful: Weil das wirklich hilfreich wäre.
|
||||||
|
@ -76,7 +76,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
|
||||||
|
@ -85,7 +85,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
|
||||||
garmentPatterns: Bekleidungsschnittmuster
|
garmentPatterns: Bekleidungsschnittmuster
|
||||||
|
@ -163,7 +163,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
|
||||||
|
@ -205,7 +205,7 @@ twitter: Twitter
|
||||||
txt-footer: Freesewing wird erstellt von einer Gemeinschaft von Mitwirkenden<br />mit der finanziellen Unterstützung unserer Förderer/-innen
|
txt-footer: Freesewing wird erstellt von einer Gemeinschaft von Mitwirkenden<br />mit der finanziellen Unterstützung unserer Förderer/-innen
|
||||||
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
|
||||||
|
@ -248,8 +248,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
|
||||||
|
|
|
@ -11,4 +11,3 @@ showcase: Showcase
|
||||||
sloganCome: Komm für die Schnittmuster
|
sloganCome: Komm für die Schnittmuster
|
||||||
sloganStay: Bleib für die Community
|
sloganStay: Bleib für die Community
|
||||||
support: Support
|
support: Support
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org
|
||||||
devTitle: Welcome to FreeSewing.dev
|
devTitle: Welcome to FreeSewing.dev
|
||||||
labTitle: Welcome to lab.FreeSewing.lab
|
labTitle: Welcome to lab.FreeSewing.lab
|
||||||
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ becomeAPatron: Become a patron
|
||||||
supportFreesewing: Support FreeSewing
|
supportFreesewing: Support FreeSewing
|
||||||
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
||||||
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
xMadeThis: "<strong>{x}</strong> made this"
|
xMadeThis: '<strong>{x}</strong> made this'
|
||||||
xWroteThis: "<strong>{x}</strong> wrote this"
|
xWroteThis: '<strong>{x}</strong> wrote this'
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
thingIsDeprecated: "{thing} is deprecated"
|
thingIsDeprecated: '{thing} is deprecated'
|
||||||
weRecommendThingInstead: "We recommend {thing} instead"
|
weRecommendThingInstead: 'We recommend {thing} instead'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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/-innen ü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/-innen ü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
|
||||||
|
|
|
@ -4,4 +4,3 @@ devTitle: Welcome to FreeSewing.dev
|
||||||
labTitle: Welcome to lab.FreeSewing.lab
|
labTitle: Welcome to lab.FreeSewing.lab
|
||||||
orgDescription: Come for the sewing patterns<br />Stay for the community
|
orgDescription: Come for the sewing patterns<br />Stay for the community
|
||||||
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
||||||
|
|
||||||
|
|
|
@ -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: Lass uns deinen Account einrichten.
|
letUsSetupYourAccount: Lass uns deinen Account 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.
|
||||||
|
|
|
@ -10,4 +10,3 @@ showcase: Showcase
|
||||||
sloganCome: Come for the sewing patterns
|
sloganCome: Come for the sewing patterns
|
||||||
sloganStay: Stay for the community
|
sloganStay: Stay for the community
|
||||||
support: Support
|
support: Support
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,3 @@ orgTitle: Welcome to FreeSewing.org
|
||||||
devTitle: Welcome to FreeSewing.dev
|
devTitle: Welcome to FreeSewing.dev
|
||||||
labTitle: Welcome to lab.FreeSewing.lab
|
labTitle: Welcome to lab.FreeSewing.lab
|
||||||
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,3 @@ becomeAPatron: Become a patron
|
||||||
supportFreesewing: Support FreeSewing
|
supportFreesewing: Support FreeSewing
|
||||||
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
||||||
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
xMadeThis: "<strong>{x}</strong> made this"
|
xMadeThis: '<strong>{x}</strong> made this'
|
||||||
xWroteThis: "<strong>{x}</strong> wrote this"
|
xWroteThis: '<strong>{x}</strong> wrote this'
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
thingIsDeprecated: "{thing} is deprecated"
|
thingIsDeprecated: '{thing} is deprecated'
|
||||||
weRecommendThingInstead: "We recommend {thing} instead"
|
weRecommendThingInstead: 'We recommend {thing} instead'
|
||||||
|
|
|
@ -13,7 +13,7 @@ applyThisLayout: Aplicar este diseño
|
||||||
areYouSureYouWantToContinue: '¿Seguro que quieres continuar?'
|
areYouSureYouWantToContinue: '¿Seguro 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.
|
||||||
|
@ -76,7 +76,7 @@ drafts: Bocetos
|
||||||
draftSettings: Ajustes del boceto
|
draftSettings: Ajustes del boceto
|
||||||
dragAndDropImageHere: Arrastra y suelta una imagen aquí, o selecciona una manualmente con el botón de abajo
|
dragAndDropImageHere: Arrastra y suelta una imagen aquí, o selecciona una manualmente con el botón de abajo
|
||||||
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
|
||||||
|
@ -85,7 +85,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
|
||||||
garmentPatterns: Patrones de prendas
|
garmentPatterns: Patrones de prendas
|
||||||
|
@ -163,7 +163,7 @@ remove: Eliminar
|
||||||
removeThing: Eliminar {thing}
|
removeThing: Eliminar {thing}
|
||||||
reportThisOnGithub: Notifícalo en GitHub
|
reportThisOnGithub: Notifícalo en GitHub
|
||||||
requiredMeasurements: Medidas requeridas
|
requiredMeasurements: Medidas requeridas
|
||||||
resendActivationEmailMessage: "Complete la dirección de correo electrónico con la que se registró y le enviaremos un nuevo mensaje de confirmación."
|
resendActivationEmailMessage: 'Complete la dirección de correo electrónico con la que se registró y le enviaremos un nuevo mensaje de confirmación.'
|
||||||
resendActivationEmail: Reenviar email de activación
|
resendActivationEmail: Reenviar email de activación
|
||||||
resetPassword: Restablecer contraseña
|
resetPassword: Restablecer contraseña
|
||||||
reset: Reiniciar
|
reset: Reiniciar
|
||||||
|
@ -205,7 +205,7 @@ twitter: Twitter
|
||||||
txt-footer: Freesewing está hecho por una comunidad de colaboradores<br />con el apoyo financiero de nuestros Patrones
|
txt-footer: Freesewing está hecho por una comunidad de colaboradores<br />con el apoyo financiero de nuestros Patrones
|
||||||
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 es alimentado por un modelo de suscripción voluntario'
|
txt-tiers: 'FreeSewing es alimentado por un modelo de suscripción voluntario'
|
||||||
unitsInfo: Freesewing es compatible con el sistema métrico y las unidades imperiales. Simplemente elige cuál querrías usar aquí (por defecto usamos las unidades configuradas en tu cuenta).
|
unitsInfo: Freesewing es compatible con el sistema métrico y las unidades imperiales. Simplemente elige cuál querrías usar aquí (por defecto usamos las unidades configuradas en tu cuenta).
|
||||||
updated: Actualizado
|
updated: Actualizado
|
||||||
|
@ -248,8 +248,8 @@ noPattern: No tienes ningún patrón (todavía). Crea un nuevo patrón, luego gu
|
||||||
modelFirst: Empezar añadiendo mediciones
|
modelFirst: Empezar añadiendo mediciones
|
||||||
noModel: No has añadido ninguna medición (aún). La Coser libre puede generar patrones de costura hechos a medida. Pero para eso necesitamos mediciones.
|
noModel: No has añadido ninguna medición (aún). La Coser libre puede generar patrones de costura hechos a medida. Pero para eso necesitamos mediciones.
|
||||||
noModel2: Así que lo primero que debes hacer es añadir una persona y agitar tu cinta de medición.
|
noModel2: Así que lo primero que debes hacer es añadir una persona y agitar tu cinta de medición.
|
||||||
noUserBrowsingTitle: "No puedes navegar por todos los usuarios"
|
noUserBrowsingTitle: 'No puedes navegar por todos los usuarios'
|
||||||
noUserBrowsingText: "Tenemos miles de ellos. ¿Seguro que tienes cosas mejores que hacer?"
|
noUserBrowsingText: 'Tenemos miles de ellos. ¿Seguro que tienes cosas mejores que hacer?'
|
||||||
usePatternMeasurements: 'Usar las medidas del patrón original'
|
usePatternMeasurements: 'Usar las medidas del patrón original'
|
||||||
createReplica: Crear una réplica
|
createReplica: Crear una réplica
|
||||||
showDetails: Mostrar detalles
|
showDetails: Mostrar detalles
|
||||||
|
|
|
@ -7,7 +7,7 @@ patternType: Tipo de patrón
|
||||||
patternCreated: Tu esqueleto de patrón ha sido creado en
|
patternCreated: Tu esqueleto de patrón ha sido creado en
|
||||||
runTheseCommands: Para empezar, ejecuta este comando
|
runTheseCommands: Para empezar, ejecuta este comando
|
||||||
startRollup: En una terminal, inicia el paquete de rollup en modo reloj
|
startRollup: En una terminal, inicia el paquete de rollup en modo reloj
|
||||||
startWebpack: "Entrará en la carpeta \"ejemplo\" e iniciará el entorno de desarrollo."
|
startWebpack: 'Entrará en la carpeta "ejemplo" e iniciará el entorno de desarrollo.'
|
||||||
devDocsAvailableAt: Documentación para desarrolladores está disponible en
|
devDocsAvailableAt: Documentación para desarrolladores está disponible en
|
||||||
talkToUs: Para preguntas, comentarios o sugerencias, únete a nuestro servidor de Discord
|
talkToUs: Para preguntas, comentarios o sugerencias, únete a nuestro servidor de Discord
|
||||||
draftYourPattern: Traza tu patrón
|
draftYourPattern: Traza tu patrón
|
||||||
|
|
|
@ -11,4 +11,3 @@ showcase: Showcase
|
||||||
sloganCome: Come for the sewing patterns
|
sloganCome: Come for the sewing patterns
|
||||||
sloganStay: Stay for the community
|
sloganStay: Stay for the community
|
||||||
support: Support
|
support: Support
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org
|
||||||
devTitle: Welcome to FreeSewing.dev
|
devTitle: Welcome to FreeSewing.dev
|
||||||
labTitle: Welcome to lab.FreeSewing.lab
|
labTitle: Welcome to lab.FreeSewing.lab
|
||||||
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ becomeAPatron: Become a patron
|
||||||
supportFreesewing: Support FreeSewing
|
supportFreesewing: Support FreeSewing
|
||||||
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
||||||
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
xMadeThis: "<strong>{x}</strong> made this"
|
xMadeThis: '<strong>{x}</strong> made this'
|
||||||
xWroteThis: "<strong>{x}</strong> wrote this"
|
xWroteThis: '<strong>{x}</strong> wrote this'
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
thingIsDeprecated: "{thing} is deprecated"
|
thingIsDeprecated: '{thing} is deprecated'
|
||||||
weRecommendThingInstead: "We recommend {thing} instead"
|
weRecommendThingInstead: 'We recommend {thing} instead'
|
||||||
|
|
|
@ -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: 'Ha recibido este correo electrónico porque ha cambiado la dirección de correo electrónico vinculada a su cuenta en freesewing.org'
|
emailchangeWhy: 'Ha recibido este correo electrónico porque ha cambiado la dirección de correo electrónico vinculada a su cuenta en freesewing.org'
|
||||||
footerCredits: 'Hecho por joost & contributors con el apoyo financiero de nuestros clientes ❤️ '
|
footerCredits: 'Hecho por joost & contributors con el apoyo financiero de nuestros clientes ❤️ '
|
||||||
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'
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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: Danos tu preferencia al boletín de noticias
|
newsletter: Danos tu preferencia al boletín de noticias
|
||||||
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.
|
||||||
|
|
|
@ -102,7 +102,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
|
||||||
|
@ -186,11 +186,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
|
||||||
|
@ -248,9 +248,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
|
||||||
|
|
|
@ -11,4 +11,3 @@ showcase: Showcase
|
||||||
sloganCome: Come for the sewing patterns
|
sloganCome: Come for the sewing patterns
|
||||||
sloganStay: Stay for the community
|
sloganStay: Stay for the community
|
||||||
support: Support
|
support: Support
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org
|
||||||
devTitle: Welcome to FreeSewing.dev
|
devTitle: Welcome to FreeSewing.dev
|
||||||
labTitle: Welcome to lab.FreeSewing.lab
|
labTitle: Welcome to lab.FreeSewing.lab
|
||||||
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ becomeAPatron: Become a patron
|
||||||
supportFreesewing: Support FreeSewing
|
supportFreesewing: Support FreeSewing
|
||||||
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
||||||
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
xMadeThis: "<strong>{x}</strong> made this"
|
xMadeThis: '<strong>{x}</strong> made this'
|
||||||
xWroteThis: "<strong>{x}</strong> wrote this"
|
xWroteThis: '<strong>{x}</strong> wrote this'
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
thingIsDeprecated: "{thing} est obsolète"
|
thingIsDeprecated: '{thing} est obsolète'
|
||||||
weRecommendThingInstead: "Nous recommandons {thing} à la place"
|
weRecommendThingInstead: 'Nous recommandons {thing} à la place'
|
||||||
|
|
|
@ -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: 'Vous avez reçu cet e-mail parce que vous avez changé l''adresse e-mail liée à votre compte sur freesewing.org'
|
emailchangeWhy: "Vous avez reçu cet e-mail parce que vous avez changé l'adresse e-mail liée à votre compte sur 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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -13,7 +13,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.
|
||||||
|
@ -76,7 +76,7 @@ drafts: Patroontekeningen
|
||||||
draftSettings: Instellingen patroontekening
|
draftSettings: Instellingen patroontekening
|
||||||
dragAndDropImageHere: Sleep een afbeelding hierheen of selecteer er handmatig een met de knop hieronder
|
dragAndDropImageHere: Sleep een afbeelding hierheen of selecteer er handmatig een met de knop hieronder
|
||||||
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
|
||||||
|
@ -85,7 +85,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
|
||||||
garmentPatterns: Patronen voor kledij
|
garmentPatterns: Patronen voor kledij
|
||||||
|
@ -163,7 +163,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
|
||||||
|
@ -205,7 +205,7 @@ twitter: Twitter
|
||||||
txt-footer: FreeSewing is gemaakt door een gemeenschap van bijdragers<br />met de financiële steun van onze mecenassen
|
txt-footer: FreeSewing is gemaakt door een gemeenschap van bijdragers<br />met de financiële steun van onze mecenassen
|
||||||
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
|
||||||
|
@ -248,8 +248,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
|
||||||
|
|
|
@ -11,4 +11,3 @@ showcase: Showcase
|
||||||
sloganCome: Come for the sewing patterns
|
sloganCome: Come for the sewing patterns
|
||||||
sloganStay: Stay for the community
|
sloganStay: Stay for the community
|
||||||
support: Support
|
support: Support
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org
|
||||||
devTitle: Welcome to FreeSewing.dev
|
devTitle: Welcome to FreeSewing.dev
|
||||||
labTitle: Welcome to lab.FreeSewing.lab
|
labTitle: Welcome to lab.FreeSewing.lab
|
||||||
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ becomeAPatron: Become a patron
|
||||||
supportFreesewing: Support FreeSewing
|
supportFreesewing: Support FreeSewing
|
||||||
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
patronLead: FreeSewing is fuelled by a voluntary subscription model
|
||||||
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
xMadeThis: "<strong>{x}</strong> made this"
|
xMadeThis: '<strong>{x}</strong> made this'
|
||||||
xWroteThis: "<strong>{x}</strong> wrote this"
|
xWroteThis: '<strong>{x}</strong> wrote this'
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
thingIsDeprecated: "{thing} is deprecated"
|
thingIsDeprecated: '{thing} is deprecated'
|
||||||
weRecommendThingInstead: "We recommend {thing} instead"
|
weRecommendThingInstead: 'We recommend {thing} instead'
|
||||||
|
|
|
@ -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: 'Je ontving deze e-mail omdat je het e-mailadres hebt gewijzigd dat gekoppeld is aan je account op freesewing.org'
|
emailchangeWhy: 'Je ontving deze e-mail omdat je het e-mailadres hebt gewijzigd dat gekoppeld is aan je account op 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'
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -13,7 +13,7 @@ applyThisLayout: Застосувати макет
|
||||||
areYouSureYouWantToContinue: Ви впевнені, що хочете продовжити?
|
areYouSureYouWantToContinue: Ви впевнені, що хочете продовжити?
|
||||||
askForHelp: Попросити про допомогу
|
askForHelp: Попросити про допомогу
|
||||||
automatic: Автоматично
|
automatic: Автоматично
|
||||||
averagePeopleDoNotExist: "Середньостатистичних людей не існує"
|
averagePeopleDoNotExist: 'Середньостатистичних людей не існує'
|
||||||
awesome: Чудово
|
awesome: Чудово
|
||||||
back: Назад
|
back: Назад
|
||||||
becauseThatWouldBeReallyHelpful: Тому що це було б дуже корисно.
|
becauseThatWouldBeReallyHelpful: Тому що це було б дуже корисно.
|
||||||
|
@ -163,7 +163,7 @@ remove: Видалити
|
||||||
removeThing: Видалити {thing}
|
removeThing: Видалити {thing}
|
||||||
reportThisOnGithub: Повідомте про проблему на GitHub
|
reportThisOnGithub: Повідомте про проблему на GitHub
|
||||||
requiredMeasurements: Необхідні заміри
|
requiredMeasurements: Необхідні заміри
|
||||||
resendActivationEmailMessage: "Напишіть електронну адресу, за допомогою якої Ви зареєструвалися - ми надішлемо Вам нове повідомлення для підтвердження."
|
resendActivationEmailMessage: 'Напишіть електронну адресу, за допомогою якої Ви зареєструвалися - ми надішлемо Вам нове повідомлення для підтвердження.'
|
||||||
resendActivationEmail: Повторно надіслати лист для активації
|
resendActivationEmail: Повторно надіслати лист для активації
|
||||||
resetPassword: Змінити пароль
|
resetPassword: Змінити пароль
|
||||||
reset: Змінити
|
reset: Змінити
|
||||||
|
@ -205,7 +205,7 @@ twitter: Twitter
|
||||||
txt-footer: Freesewing працює завдяки спільноті учасників<br />з фінансовою підтримкою наших патронів
|
txt-footer: Freesewing працює завдяки спільноті учасників<br />з фінансовою підтримкою наших патронів
|
||||||
txt-tier2: Рівень з найбільш демократичною ціною. Він дешевший за філіжанку кави, але ми дуже цінуємо Вашу підтримку.
|
txt-tier2: Рівень з найбільш демократичною ціною. Він дешевший за філіжанку кави, але ми дуже цінуємо Вашу підтримку.
|
||||||
txt-tier4: Підпишіться на цей рівень та ми доставимо наші смачнющі "булочки" до Вашого ґанку (будь-де на мапі).
|
txt-tier4: Підпишіться на цей рівень та ми доставимо наші смачнющі "булочки" до Вашого ґанку (будь-де на мапі).
|
||||||
txt-tier8: "Якщо Ви хочете не лише підтримувати нас, а й бажаєте freesewing процвітання, цей рівень для Вас. Також: додаткові \"булочки\". ;)"
|
txt-tier8: 'Якщо Ви хочете не лише підтримувати нас, а й бажаєте freesewing процвітання, цей рівень для Вас. Також: додаткові "булочки". ;)'
|
||||||
txt-tiers: 'FreeSewing існує завдяки добровільній моделі підписки'
|
txt-tiers: 'FreeSewing існує завдяки добровільній моделі підписки'
|
||||||
unitsInfo: Freesewing підтримує як метричні, так й імперські одиниці вимірювання. Просто оберіть ті, яким надаєте перевагу. (Зазвичай використовуються одиниці, зазначені в Вашому обліковому записі.)
|
unitsInfo: Freesewing підтримує як метричні, так й імперські одиниці вимірювання. Просто оберіть ті, яким надаєте перевагу. (Зазвичай використовуються одиниці, зазначені в Вашому обліковому записі.)
|
||||||
updated: Оновлено
|
updated: Оновлено
|
||||||
|
@ -248,8 +248,8 @@ noPattern: Ви не маєте жодних викрійок (поки що).
|
||||||
modelFirst: Розпочніть з додавання замірів
|
modelFirst: Розпочніть з додавання замірів
|
||||||
noModel: Ви не додали жодних замірів (поки що). FreeSewing може створювати швейні викрійки на базі замірів. Однак для цього нам потрібні власне заміри.
|
noModel: Ви не додали жодних замірів (поки що). FreeSewing може створювати швейні викрійки на базі замірів. Однак для цього нам потрібні власне заміри.
|
||||||
noModel2: Розпочніть зі створення людини, після чого діставайте свою сантиметрову стрічку.
|
noModel2: Розпочніть зі створення людини, після чого діставайте свою сантиметрову стрічку.
|
||||||
noUserBrowsingTitle: "Ви не можете просто переглядати всіх користувачів"
|
noUserBrowsingTitle: 'Ви не можете просто переглядати всіх користувачів'
|
||||||
noUserBrowsingText: "У нас їх тисячі. Ви дійсно хочете витрачати свій час на це?"
|
noUserBrowsingText: 'У нас їх тисячі. Ви дійсно хочете витрачати свій час на це?'
|
||||||
usePatternMeasurements: 'Використати заміри вихідної викрійки'
|
usePatternMeasurements: 'Використати заміри вихідної викрійки'
|
||||||
createReplica: Створити копію
|
createReplica: Створити копію
|
||||||
showDetails: Показати подробиці
|
showDetails: Показати подробиці
|
||||||
|
|
|
@ -7,7 +7,7 @@ patternType: Тип викрійки
|
||||||
patternCreated: Ваш каркас викрійки створено у
|
patternCreated: Ваш каркас викрійки створено у
|
||||||
runTheseCommands: Щоб розпочати, запустіть цю команду
|
runTheseCommands: Щоб розпочати, запустіть цю команду
|
||||||
startRollup: У одному терміналі запустіть ролап у режимі перегляду
|
startRollup: У одному терміналі запустіть ролап у режимі перегляду
|
||||||
startWebpack: "Це відкриє папку \"приклад\" та запустить девелопмент."
|
startWebpack: 'Це відкриє папку "приклад" та запустить девелопмент.'
|
||||||
devDocsAvailableAt: Документація для розробників доступна за адресою
|
devDocsAvailableAt: Документація для розробників доступна за адресою
|
||||||
talkToUs: Для запитань, відгуків чи пропозицій, приєднуйтесь до нашого серверу в Discord
|
talkToUs: Для запитань, відгуків чи пропозицій, приєднуйтесь до нашого серверу в Discord
|
||||||
draftYourPattern: Створіть Вашу викрійку
|
draftYourPattern: Створіть Вашу викрійку
|
||||||
|
|
|
@ -11,4 +11,3 @@ showcase: Готові проєкти
|
||||||
sloganCome: Приходьте за викрійками
|
sloganCome: Приходьте за викрійками
|
||||||
sloganStay: Залишайтеся заради спільноти
|
sloganStay: Залишайтеся заради спільноти
|
||||||
support: Підтримка
|
support: Підтримка
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ orgTitle: Ласкаво просимо до FreeSewing.org
|
||||||
devTitle: Ласкаво просимо до FreeSewing.dev
|
devTitle: Ласкаво просимо до FreeSewing.dev
|
||||||
labTitle: Ласкаво просимо до lab.FreeSewing.lab
|
labTitle: Ласкаво просимо до lab.FreeSewing.lab
|
||||||
devDescription: Документація та навчальні матеріали для розробників FreeSewing та учасників. А також наш блог розробників
|
devDescription: Документація та навчальні матеріали для розробників FreeSewing та учасників. А також наш блог розробників
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,3 @@ becomeAPatron: Стати патроном
|
||||||
supportFreesewing: Підтримати FreeSewing
|
supportFreesewing: Підтримати FreeSewing
|
||||||
patronLead: FreeSewing існує завдяки добровільній моделі підписки
|
patronLead: FreeSewing існує завдяки добровільній моделі підписки
|
||||||
patronPitch: Якщо Ви думаєте, що ми робимо цінну роботу, і якщо Ви можете відшкодувати кілька монет щомісяця без труднощів, будь ласка, підтримайте нашу роботу
|
patronPitch: Якщо Ви думаєте, що ми робимо цінну роботу, і якщо Ви можете відшкодувати кілька монет щомісяця без труднощів, будь ласка, підтримайте нашу роботу
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
xMadeThis: "<strong>{x}</strong> є автором цієї роботи"
|
xMadeThis: '<strong>{x}</strong> є автором цієї роботи'
|
||||||
xWroteThis: "<strong>{x}</strong> є автором цього тексту"
|
xWroteThis: '<strong>{x}</strong> є автором цього тексту'
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
---
|
---
|
||||||
thingIsDeprecated: "{thing} є застарілим"
|
thingIsDeprecated: '{thing} є застарілим'
|
||||||
weRecommendThingInstead: "Ми рекомендуємо {thing} замість цього"
|
weRecommendThingInstead: 'Ми рекомендуємо {thing} замість цього'
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
---
|
---
|
||||||
chatWithUs: 'Напишіть нам'
|
chatWithUs: 'Напишіть нам'
|
||||||
emailchangeActionText: 'Підтвердіть нову адресу електронної пошти'
|
emailchangeActionText: 'Підтвердіть нову адресу електронної пошти'
|
||||||
emailchangeCopy1: 'Ви запросили зміну адреси електронної пошти, прив''язану до вашого облікового запису на <b>freesewing.org</b>.<br><br>Перед тим як це зробити, необхідно підтвердити нову адресу електронної пошти. Будь ласка, натисніть на посилання нижче, щоб зробити це:'
|
emailchangeCopy1: "Ви запросили зміну адреси електронної пошти, прив'язану до вашого облікового запису на <b>freesewing.org</b>.<br><br>Перед тим як це зробити, необхідно підтвердити нову адресу електронної пошти. Будь ласка, натисніть на посилання нижче, щоб зробити це:"
|
||||||
emailchangeHeaderOpeningLine: 'Просто перевіряємо, що ми зможемо зв''язатися з Вами, коли це буде необхідно'
|
emailchangeHeaderOpeningLine: "Просто перевіряємо, що ми зможемо зв'язатися з Вами, коли це буде необхідно"
|
||||||
emailchangeHiddenIntro: "Час підтвердити нову адресу електронної пошти"
|
emailchangeHiddenIntro: 'Час підтвердити нову адресу електронної пошти'
|
||||||
emailchangeSubject: 'Будь ласка, підтвердіть нову адресу електронної пошти'
|
emailchangeSubject: 'Будь ласка, підтвердіть нову адресу електронної пошти'
|
||||||
emailchangeTitle: 'Будь ласка, підтвердіть нову адресу електронної пошти'
|
emailchangeTitle: 'Будь ласка, підтвердіть нову адресу електронної пошти'
|
||||||
emailchangeWhy: 'Ви отримали цей лист, оскільки змінили адресу електронної пошти, прив''язану до вашого облікового запису на freesewing.org'
|
emailchangeWhy: "Ви отримали цей лист, оскільки змінили адресу електронної пошти, прив'язану до вашого облікового запису на freesewing.org"
|
||||||
footerCredits: 'Зроблено Йостом та учасниками проєкту завдяки фінансовій допомозі наших патронів ❤️ '
|
footerCredits: 'Зроблено Йостом та учасниками проєкту завдяки фінансовій допомозі наших патронів ❤️ '
|
||||||
footerSlogan: 'FreeSewing є платформою з відкритим кодом для створення швейних викрійок, які адаптуються під виміри користувача'
|
footerSlogan: 'FreeSewing є платформою з відкритим кодом для створення швейних викрійок, які адаптуються під виміри користувача'
|
||||||
goodbyeCopy1: "Якщо Ви хочете поділитися, чому Ви йдете, можете відповісти на це повідомлення.<br>З нашого боку, ми більше не турбуватимемо Вас."
|
goodbyeCopy1: 'Якщо Ви хочете поділитися, чому Ви йдете, можете відповісти на це повідомлення.<br>З нашого боку, ми більше не турбуватимемо Вас.'
|
||||||
goodbyeHeaderOpeningLine: 'Просто щоб Ви знали – Ви завжди можете повернутися'
|
goodbyeHeaderOpeningLine: 'Просто щоб Ви знали – Ви завжди можете повернутися'
|
||||||
goodbyeHiddenIntro: 'Дякуємо за ще один шанс для FreeSewing'
|
goodbyeHiddenIntro: 'Дякуємо за ще один шанс для FreeSewing'
|
||||||
goodbyeSubject: 'До побачення 👋'
|
goodbyeSubject: 'До побачення 👋'
|
||||||
|
@ -18,17 +18,17 @@ goodbyeWhy: 'Ви отримали цей лист, як останнє прощ
|
||||||
joostFromFreesewing: 'Йост з FreeSewing'
|
joostFromFreesewing: 'Йост з FreeSewing'
|
||||||
passwordresetActionText: 'Повторно отримати доступ до вашого облікового запису'
|
passwordresetActionText: 'Повторно отримати доступ до вашого облікового запису'
|
||||||
passwordresetCopy1: 'Ви забули пароль для облікового запису на <b>freesewing.org</b>.<br><br>Натисніть на посилання нижче, щоб змінити пароль:'
|
passwordresetCopy1: 'Ви забули пароль для облікового запису на <b>freesewing.org</b>.<br><br>Натисніть на посилання нижче, щоб змінити пароль:'
|
||||||
passwordresetHeaderOpeningLine: "Не хвилюйтеся, це стається з нами усіма"
|
passwordresetHeaderOpeningLine: 'Не хвилюйтеся, це стається з нами усіма'
|
||||||
passwordresetHiddenIntro: 'Повторно отримати доступ до вашого облікового запису'
|
passwordresetHiddenIntro: 'Повторно отримати доступ до вашого облікового запису'
|
||||||
passwordresetSubject: 'Повторно отримати доступ до вашого облікового запису на freesewing.org'
|
passwordresetSubject: 'Повторно отримати доступ до вашого облікового запису на freesewing.org'
|
||||||
passwordresetTitle: 'Змінити пароль і повторно отримати доступ до вашого облікового запису'
|
passwordresetTitle: 'Змінити пароль і повторно отримати доступ до вашого облікового запису'
|
||||||
passwordresetWhy: 'Ви отримали цей електронний лист, тому що ви запросили зміну паролю на сайті freesewing.org'
|
passwordresetWhy: 'Ви отримали цей електронний лист, тому що ви запросили зміну паролю на сайті freesewing.org'
|
||||||
questionsJustReply: "Якщо у вас є запитання, просто надішліть відповідь на цей E-mail. Ми завжди раді допомогти 🙂"
|
questionsJustReply: 'Якщо у вас є запитання, просто надішліть відповідь на цей E-mail. Ми завжди раді допомогти 🙂'
|
||||||
signature: 'З любов''ю,'
|
signature: "З любов'ю,"
|
||||||
signupActionText: 'Підтвердіть адресу електронної пошти'
|
signupActionText: 'Підтвердіть адресу електронної пошти'
|
||||||
signupCopy1: 'Дякуємо за реєстрацію на <b>freesewing.org</b>.<br><br>Перед початком роботи потрібно підтвердити Вашу адресу електронної пошти. Будь ласка, натисніть на посилання нижче, щоб зробити це:'
|
signupCopy1: 'Дякуємо за реєстрацію на <b>freesewing.org</b>.<br><br>Перед початком роботи потрібно підтвердити Вашу адресу електронної пошти. Будь ласка, натисніть на посилання нижче, щоб зробити це:'
|
||||||
signupHeaderOpeningLine: "Ми дуже раді, що Ви приєдналися до спільноти FreeSewing."
|
signupHeaderOpeningLine: 'Ми дуже раді, що Ви приєдналися до спільноти FreeSewing.'
|
||||||
signupHiddenIntro: "Час підтвердити нову адресу електронної пошти"
|
signupHiddenIntro: 'Час підтвердити нову адресу електронної пошти'
|
||||||
signupSubject: 'Ласкаво просимо на freesewing.org'
|
signupSubject: 'Ласкаво просимо на freesewing.org'
|
||||||
signupTitle: 'Ласкаво просимо'
|
signupTitle: 'Ласкаво просимо'
|
||||||
signupWhy: 'Ви отримали цей електронний лист, тому що ви щойно зареєструвалися на сайті freesewing.org'
|
signupWhy: 'Ви отримали цей електронний лист, тому що ви щойно зареєструвалися на сайті freesewing.org'
|
||||||
|
|
|
@ -11,7 +11,7 @@ furtherReading: Подальше вивчення
|
||||||
modelQuestion: Чи даєте Ви згоду на обробку даних моделі?
|
modelQuestion: Чи даєте Ви згоду на обробку даних моделі?
|
||||||
modelWarning: Анулювання даної згоди зробить неможливим використання даних замірів моделі. Це також анулює функціонал вебсайту, який залежить від даної інформації.
|
modelWarning: Анулювання даної згоди зробить неможливим використання даних замірів моделі. Це також анулює функціонал вебсайту, який залежить від даної інформації.
|
||||||
modelWhatAnswer: <b>Заміри</b> та <b>налаштування молочних залоз</b> кожної моделі.
|
modelWhatAnswer: <b>Заміри</b> та <b>налаштування молочних залоз</b> кожної моделі.
|
||||||
modelWhatAnswerOptional: 'За навності: <b>Зображення</b> моделі та <b>ім''я</b> моделі.'
|
modelWhatAnswerOptional: "За навності: <b>Зображення</b> моделі та <b>ім'я</b> моделі."
|
||||||
modelWhatQuestion: Що таке дані моделі?
|
modelWhatQuestion: Що таке дані моделі?
|
||||||
modelWhyAnswer: 'Для розробки викрійок, адаптованих під заміри <b>спеціально виміру</b>нам необхідні <b>виміри тіла</b>.'
|
modelWhyAnswer: 'Для розробки викрійок, адаптованих під заміри <b>спеціально виміру</b>нам необхідні <b>виміри тіла</b>.'
|
||||||
noConsentNoAccount: Без цієї згоди ми не можемо створити Ваш обліковий запис
|
noConsentNoAccount: Без цієї згоди ми не можемо створити Ваш обліковий запис
|
||||||
|
@ -24,9 +24,9 @@ profileShareAnswer: '<b>Ні</b>, ніколи.'
|
||||||
profileTimingAnswer: '<b>12 місяців</b> після останнього входу в систему, або до тих пір, поки Ви не <b>видалите</b> Ваш обліковий запис або <b>скасуєте</b> дану згоду.'
|
profileTimingAnswer: '<b>12 місяців</b> після останнього входу в систему, або до тих пір, поки Ви не <b>видалите</b> Ваш обліковий запис або <b>скасуєте</b> дану згоду.'
|
||||||
profileWarning: Відкликання згоди видалить усі Ваші данні. Це має той же ефект, що і видалення облікового запису.
|
profileWarning: Відкликання згоди видалить усі Ваші данні. Це має той же ефект, що і видалення облікового запису.
|
||||||
profileWhatAnswerOptional: 'За наявності: <b>зображення облікового запису</b>, <b>біо</b>і <b>соціальні мережі</b>'
|
profileWhatAnswerOptional: 'За наявності: <b>зображення облікового запису</b>, <b>біо</b>і <b>соціальні мережі</b>'
|
||||||
profileWhatAnswer: 'Ваша <b>електронна адреса</b>, <b>ім''я користувача</b>і <b>пароль</b>.'
|
profileWhatAnswer: "Ваша <b>електронна адреса</b>, <b>ім'я користувача</b>і <b>пароль</b>."
|
||||||
profileWhatQuestion: Що таке дані облікового запису?
|
profileWhatQuestion: Що таке дані облікового запису?
|
||||||
profileWhyAnswer: 'Щоб <b>автентифікувати</b> Вас, <b>зв''язатися</b> з Вами коли це потрібно та задля покращення нашої <b>спільноти</b>.'
|
profileWhyAnswer: "Щоб <b>автентифікувати</b> Вас, <b>зв'язатися</b> з Вами коли це потрібно та задля покращення нашої <b>спільноти</b>."
|
||||||
readMore: Для отримання додаткової інформації, будь ласка, прочитайте наше повідомлення про конфіденційність.
|
readMore: Для отримання додаткової інформації, будь ласка, прочитайте наше повідомлення про конфіденційність.
|
||||||
readRights: Для отримання додаткової інформації, будь ласка, прочитайте про Ваші права.
|
readRights: Для отримання додаткової інформації, будь ласка, прочитайте про Ваші права.
|
||||||
revokeConsent: Відкликати згоду
|
revokeConsent: Відкликати згоду
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
txt-blog: Новини, оновлення та анонси від команди FreeSewing
|
txt-blog: Новини, оновлення та анонси від команди FreeSewing
|
||||||
txt-community: 'Проєкт існує на добровільних засадах. FreeSewing не прив''язаний до жодних комерційних засад та компаній.'
|
txt-community: "Проєкт існує на добровільних засадах. FreeSewing не прив'язаний до жодних комерційних засад та компаній."
|
||||||
txt-different: Чому ми особливі
|
txt-different: Чому ми особливі
|
||||||
txt-draft: "Оберіть одну з викрійок, модель та налаштування. Ми зробимо решту."
|
txt-draft: 'Оберіть одну з викрійок, модель та налаштування. Ми зробимо решту.'
|
||||||
txt-how: Як це працює
|
txt-how: Як це працює
|
||||||
txt-join: Приєднайтеся до тисяч інших користувачів та створіть безкоштовний акаунт на freesewing.org.
|
txt-join: Приєднайтеся до тисяч інших користувачів та створіть безкоштовний акаунт на freesewing.org.
|
||||||
txt-model: Всі наші викрійки адаптуються під задані виміри. Тому перше, що варто зробити – піти взяти сантиметрову стрічку.
|
txt-model: Всі наші викрійки адаптуються під задані виміри. Тому перше, що варто зробити – піти взяти сантиметрову стрічку.
|
||||||
txt-newHere: "Якщо ви тут вперше – найкраще місце для початку є наше демо:"
|
txt-newHere: 'Якщо ви тут вперше – найкраще місце для початку є наше демо:'
|
||||||
txt-opensource: 'Наша платформа, наші викрійки і навіть наш вебсайт. Весь наш код доступний на GitHub. Пулл реквести вітаються!'
|
txt-opensource: 'Наша платформа, наші викрійки і навіть наш вебсайт. Весь наш код доступний на GitHub. Пулл реквести вітаються!'
|
||||||
txt-patrons: FreeSewing існує завдяки фінансовій підтримці наших Патронів. Прокрутіть вниз, щоб дізнатися про нашу модель підписки.
|
txt-patrons: FreeSewing існує завдяки фінансовій підтримці наших Патронів. Прокрутіть вниз, щоб дізнатися про нашу модель підписки.
|
||||||
txt-showcase: Завершені проекти від спільноти FreeSewing
|
txt-showcase: Завершені проекти від спільноти FreeSewing
|
||||||
|
|
|
@ -6,5 +6,5 @@ bio: Розкажіть нам трохи про себе
|
||||||
social: Дайте нам знати, де ми можемо слідкувати за Вами
|
social: Дайте нам знати, де ми можемо слідкувати за Вами
|
||||||
newsletter: Надайте нам свої налаштування для розсилки
|
newsletter: Надайте нам свої налаштування для розсилки
|
||||||
letUsSetupYourAccount: Давайте налаштуємо Ваш обліковий запис.
|
letUsSetupYourAccount: Давайте налаштуємо Ваш обліковий запис.
|
||||||
walkYouThrough: "Ми допоможемо Вам пройти наступні етапи:"
|
walkYouThrough: 'Ми допоможемо Вам пройти наступні етапи:'
|
||||||
someOptional: Хоча всі ці етапи необов'язкові, ми рекомендуємо Вам пройти їх, щоб отримати максимум користі від FreeSewing.
|
someOptional: Хоча всі ці етапи необов'язкові, ми рекомендуємо Вам пройти їх, щоб отримати максимум користі від FreeSewing.
|
||||||
|
|
|
@ -17,8 +17,7 @@ const getTranslationFileList = async () => {
|
||||||
let allFiles
|
let allFiles
|
||||||
try {
|
try {
|
||||||
allFiles = await rdir(path.resolve(__dirname, 'locales'))
|
allFiles = await rdir(path.resolve(__dirname, 'locales'))
|
||||||
}
|
} catch (err) {
|
||||||
catch (err) {
|
|
||||||
console.log(err)
|
console.log(err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -44,18 +43,16 @@ const localeFromFileName = (fileName) => {
|
||||||
* Figures out the list of locales from the list of files
|
* Figures out the list of locales from the list of files
|
||||||
* (by checking how many version of aaron.yaml exist)
|
* (by checking how many version of aaron.yaml exist)
|
||||||
*/
|
*/
|
||||||
const getLocalesFromFileList = files => files
|
const getLocalesFromFileList = (files) =>
|
||||||
.filter(file => (file.slice(-10) === 'aaron.yaml'))
|
files.filter((file) => file.slice(-10) === 'aaron.yaml').map(localeFromFileName)
|
||||||
.map(localeFromFileName)
|
|
||||||
|
|
||||||
// Helper method to see if a dir occurs in a full path
|
// Helper method to see if a dir occurs in a full path
|
||||||
const pathContains = (fullPath, dir) => fullPath
|
const pathContains = (fullPath, dir) => fullPath.indexOf(`${path.sep}${dir}${path.sep}`) !== -1
|
||||||
.indexOf(`${path.sep}${dir}${path.sep}`) !== -1
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Determines the namespace name based on the file path
|
* Determines the namespace name based on the file path
|
||||||
*/
|
*/
|
||||||
const namespaceFromFile = file => {
|
const namespaceFromFile = (file) => {
|
||||||
const ext = path.extname(file)
|
const ext = path.extname(file)
|
||||||
const name = path.basename(file, ext)
|
const name = path.basename(file, ext)
|
||||||
|
|
||||||
|
@ -73,7 +70,7 @@ const namespaceFromFile = file => {
|
||||||
* description:
|
* description:
|
||||||
* options; (this one is not always present)
|
* options; (this one is not always present)
|
||||||
*/
|
*/
|
||||||
const flattenYml = content => {
|
const flattenYml = (content) => {
|
||||||
const flat = {}
|
const flat = {}
|
||||||
for (const l1 in content) {
|
for (const l1 in content) {
|
||||||
flat[`${l1}.t`] = content[l1].title
|
flat[`${l1}.t`] = content[l1].title
|
||||||
|
@ -88,29 +85,24 @@ const flattenYml = content => {
|
||||||
* handle nested keys in .yml files
|
* handle nested keys in .yml files
|
||||||
*/
|
*/
|
||||||
const loadTranslationFile = async (file) => {
|
const loadTranslationFile = async (file) => {
|
||||||
const data = yaml.load(
|
const data = yaml.load(await readFile(file, { encoding: 'utf-8' }))
|
||||||
(await readFile(file, { encoding: 'utf-8'}))
|
|
||||||
)
|
|
||||||
|
|
||||||
return (path.extname(file) === '.yml')
|
return path.extname(file) === '.yml' ? flattenYml(data) : data
|
||||||
? flattenYml(data)
|
|
||||||
: data
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Creates an object with namespaces and the YAML/YML files
|
* Creates an object with namespaces and the YAML/YML files
|
||||||
* that go with them
|
* that go with them
|
||||||
*/
|
*/
|
||||||
const getNamespacesFromFileList = async (files, locales, only=false) => {
|
const getNamespacesFromFileList = async (files, locales, only = false) => {
|
||||||
const namespaces = {}
|
const namespaces = {}
|
||||||
for (var i = 0; i < files.length; i++) {
|
for (var i = 0; i < files.length; i++) {
|
||||||
let file = files[i]
|
let file = files[i]
|
||||||
|
|
||||||
let loc = localeFromFileName(file);
|
let loc = localeFromFileName(file)
|
||||||
if (locales.indexOf(loc) === -1) continue
|
if (locales.indexOf(loc) === -1) continue
|
||||||
|
|
||||||
let namespace = namespaceFromFile(file);
|
let namespace = namespaceFromFile(file)
|
||||||
if (only === true && only.indexOf(namespace) === -1) continue
|
if (only === true && only.indexOf(namespace) === -1) continue
|
||||||
|
|
||||||
if (typeof namespaces[loc] === 'undefined') {
|
if (typeof namespaces[loc] === 'undefined') {
|
||||||
|
@ -123,7 +115,7 @@ const getNamespacesFromFileList = async (files, locales, only=false) => {
|
||||||
|
|
||||||
namespaces[loc][namespace] = {
|
namespaces[loc][namespace] = {
|
||||||
...namespaces[loc][namespace],
|
...namespaces[loc][namespace],
|
||||||
...(await loadTranslationFile(file))
|
...(await loadTranslationFile(file)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,74 +127,53 @@ const header = `/*
|
||||||
* All edits will be overwritten on the next build
|
* All edits will be overwritten on the next build
|
||||||
*/`
|
*/`
|
||||||
const namespaceFile = (name, data) => `${header}
|
const namespaceFile = (name, data) => `${header}
|
||||||
const ${name} = ${JSON.stringify(data, null ,2)}
|
const ${name} = ${JSON.stringify(data, null, 2)}
|
||||||
|
|
||||||
export default ${name}
|
export default ${name}
|
||||||
`
|
`
|
||||||
const localeFile = (namespaces) => `${header}
|
const localeFile = (namespaces) => `${header}
|
||||||
${namespaces
|
${namespaces.map((ns) => 'import ' + ns + ' from "./' + ns + '.mjs"').join('\n')}
|
||||||
.map(ns => 'import '+ns+' from "./'+ns+'.mjs"')
|
|
||||||
.join("\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
const allNamespaces = {
|
const allNamespaces = {
|
||||||
${namespaces.join(",\n ")}
|
${namespaces.join(',\n ')}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default allNamespaces
|
export default allNamespaces
|
||||||
`
|
`
|
||||||
const indexFile = (locales, data) => `${header}
|
const indexFile = (locales, data) => `${header}
|
||||||
${locales
|
${locales.map((l) => 'import ' + l + 'Namespaces from "./next/' + l + '/index.mjs"').join('\n')}
|
||||||
.map(l => 'import '+l+'Namespaces from "./next/'+l+'/index.mjs"')
|
|
||||||
.join("\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
${locales
|
${locales.map((l) => 'export const ' + l + ' = ' + l + 'Namespaces').join('\n')}
|
||||||
.map(l => 'export const '+l+' = '+l+'Namespaces')
|
|
||||||
.join("\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
export const languages = {
|
export const languages = {
|
||||||
${locales
|
${locales.map((l) => ' ' + l + ': "' + data[l].i18n[l] + '"').join(',\n')}
|
||||||
.map(l => ' '+l+': "'+ data[l].i18n[l]+'"')
|
|
||||||
.join(",\n")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Writes out files
|
* Writes out files
|
||||||
*/
|
*/
|
||||||
const writeFiles = async allNamespaces => {
|
const writeFiles = async (allNamespaces) => {
|
||||||
const filePromises = []
|
const filePromises = []
|
||||||
const dist = path.resolve(__dirname, '..', 'dist')
|
const dist = path.resolve(__dirname, '..', 'dist')
|
||||||
|
|
||||||
for (const [locale, namespaces] of Object.entries(allNamespaces)) {
|
for (const [locale, namespaces] of Object.entries(allNamespaces)) {
|
||||||
// make sure there's a folder for the locale
|
// make sure there's a folder for the locale
|
||||||
await mkdir(path.resolve(dist, locale), {recursive: true})
|
await mkdir(path.resolve(dist, locale), { recursive: true })
|
||||||
|
|
||||||
for (const [namespace, data] of Object.entries(namespaces)) {
|
for (const [namespace, data] of Object.entries(namespaces)) {
|
||||||
filePromises.push(
|
filePromises.push(
|
||||||
writeFile(
|
writeFile(path.resolve(dist, locale, namespace + '.mjs'), namespaceFile(namespace, data))
|
||||||
path.resolve(dist, locale, namespace+'.mjs', ),
|
|
||||||
namespaceFile(namespace, data)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// Locale index files
|
// Locale index files
|
||||||
filePromises.push(
|
filePromises.push(
|
||||||
writeFile(
|
writeFile(path.resolve(dist, locale, 'index.mjs'), localeFile(Object.keys(namespaces)))
|
||||||
path.resolve(dist, locale, 'index.mjs', ),
|
|
||||||
localeFile(Object.keys(namespaces))
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// Locale index files
|
// Locale index files
|
||||||
filePromises.push(
|
filePromises.push(
|
||||||
writeFile(
|
writeFile(path.resolve(dist, 'index.mjs'), indexFile(Object.keys(allNamespaces), allNamespaces))
|
||||||
path.resolve(dist, 'index.mjs', ),
|
|
||||||
indexFile(Object.keys(allNamespaces), allNamespaces)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// write the files
|
// write the files
|
||||||
|
@ -214,7 +185,7 @@ const writeFiles = async allNamespaces => {
|
||||||
/*
|
/*
|
||||||
* Turns YAML translation files into JS
|
* Turns YAML translation files into JS
|
||||||
*/
|
*/
|
||||||
export const build = async (localeFilter = () => true, only=false) => {
|
export const build = async (localeFilter = () => true, only = false) => {
|
||||||
const files = await getTranslationFileList()
|
const files = await getTranslationFileList()
|
||||||
const locales = getLocalesFromFileList(files).filter(localeFilter)
|
const locales = getLocalesFromFileList(files).filter(localeFilter)
|
||||||
console.log('building i18n for', locales)
|
console.log('building i18n for', locales)
|
||||||
|
@ -225,4 +196,3 @@ export const build = async (localeFilter = () => true, only=false) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
//export default strings
|
//export default strings
|
||||||
|
|
||||||
|
|
|
@ -1,54 +1,54 @@
|
||||||
import chai from "chai"
|
import chai from 'chai'
|
||||||
import { strings as i18n } from "./dist/index.mjs"
|
import { strings as i18n } from './dist/index.mjs'
|
||||||
|
|
||||||
const expect = chai.expect
|
const expect = chai.expect
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
{
|
{
|
||||||
name: "English",
|
name: 'English',
|
||||||
strings: i18n.en
|
strings: i18n.en,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "German",
|
name: 'German',
|
||||||
strings: i18n.de
|
strings: i18n.de,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Spanish",
|
name: 'Spanish',
|
||||||
strings: i18n.es
|
strings: i18n.es,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "French",
|
name: 'French',
|
||||||
strings: i18n.fr
|
strings: i18n.fr,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Dutch",
|
name: 'Dutch',
|
||||||
strings: i18n.nl
|
strings: i18n.nl,
|
||||||
}
|
},
|
||||||
];
|
]
|
||||||
|
|
||||||
function checkTranslations(from, to) {
|
function checkTranslations(from, to) {
|
||||||
const originals = Object.keys(from.strings);
|
const originals = Object.keys(from.strings)
|
||||||
const translated = to.strings;
|
const translated = to.strings
|
||||||
for (let string of originals) {
|
for (let string of originals) {
|
||||||
if (typeof translated[string] === "undefined") {
|
if (typeof translated[string] === 'undefined') {
|
||||||
console.log(`String ${string} in ${from.name} is not available in ${to.name}`)
|
console.log(`String ${string} in ${from.name} is not available in ${to.name}`)
|
||||||
expect(typeof translated[string]).to.equal("string");
|
expect(typeof translated[string]).to.equal('string')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let language of languages) {
|
for (let language of languages) {
|
||||||
if (language.name !== "English") {
|
if (language.name !== 'English') {
|
||||||
it(`All English strings should be translated to ${language.name}`, () => {
|
it(`All English strings should be translated to ${language.name}`, () => {
|
||||||
checkTranslations(languages[0], language);
|
checkTranslations(languages[0], language)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let language of languages) {
|
for (let language of languages) {
|
||||||
if (language.name !== "English") {
|
if (language.name !== 'English') {
|
||||||
it(`All ${language.name} strings should be available in English`, () => {
|
it(`All ${language.name} strings should be available in English`, () => {
|
||||||
checkTranslations(language, languages[0]);
|
checkTranslations(language, languages[0])
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,20 +12,21 @@ const getMeasurements = (size, index) => {
|
||||||
|
|
||||||
const multiplyMeasurements = (factor, index) => {
|
const multiplyMeasurements = (factor, index) => {
|
||||||
const all = {}
|
const all = {}
|
||||||
const base = (index === 0) ? '340' : '380'
|
const base = index === 0 ? '340' : '380'
|
||||||
for (const m of measurements) {
|
for (const m of measurements) {
|
||||||
if (degreeMeasurements.indexOf(m) !== -1) all[m] = neckstimate(base, m, index) // Don't multiply degrees
|
if (degreeMeasurements.indexOf(m) !== -1)
|
||||||
|
all[m] = neckstimate(base, m, index) // Don't multiply degrees
|
||||||
else all[m] = factor * neckstimate(base, m, index)
|
else all[m] = factor * neckstimate(base, m, index)
|
||||||
}
|
}
|
||||||
|
|
||||||
return all
|
return all
|
||||||
}
|
}
|
||||||
|
|
||||||
export const groups = [ 'adult', 'doll', 'giant' ]
|
export const groups = ['adult', 'doll', 'giant']
|
||||||
|
|
||||||
export const sizes = {
|
export const sizes = {
|
||||||
cisFemaleAdult: [28,30,32,34,36,38,40,42,44,46],
|
cisFemaleAdult: [28, 30, 32, 34, 36, 38, 40, 42, 44, 46],
|
||||||
cisMaleAdult: [32,34,36,38,40,42,44,46,48,50],
|
cisMaleAdult: [32, 34, 36, 38, 40, 42, 44, 46, 48, 50],
|
||||||
cisFemaleDoll: [10, 20, 30, 40, 50, 60],
|
cisFemaleDoll: [10, 20, 30, 40, 50, 60],
|
||||||
cisMaleDoll: [10, 20, 30, 40, 50, 60],
|
cisMaleDoll: [10, 20, 30, 40, 50, 60],
|
||||||
cisFemaleGiant: [150, 200, 250, 300],
|
cisFemaleGiant: [150, 200, 250, 300],
|
||||||
|
@ -69,15 +70,14 @@ export const cisMaleDoll50 = multiplyMeasurements(0.5, CISMALE)
|
||||||
export const cisMaleDoll60 = multiplyMeasurements(0.6, CISMALE)
|
export const cisMaleDoll60 = multiplyMeasurements(0.6, CISMALE)
|
||||||
|
|
||||||
export const cisFemaleGiant150 = multiplyMeasurements(1.5, CISFEMALE)
|
export const cisFemaleGiant150 = multiplyMeasurements(1.5, CISFEMALE)
|
||||||
export const cisFemaleGiant200 = multiplyMeasurements( 2, CISFEMALE)
|
export const cisFemaleGiant200 = multiplyMeasurements(2, CISFEMALE)
|
||||||
export const cisFemaleGiant250 = multiplyMeasurements(2.5, CISFEMALE)
|
export const cisFemaleGiant250 = multiplyMeasurements(2.5, CISFEMALE)
|
||||||
export const cisFemaleGiant300 = multiplyMeasurements( 3, CISFEMALE)
|
export const cisFemaleGiant300 = multiplyMeasurements(3, CISFEMALE)
|
||||||
|
|
||||||
export const cisMaleGiant150 = multiplyMeasurements(1.5, CISMALE)
|
export const cisMaleGiant150 = multiplyMeasurements(1.5, CISMALE)
|
||||||
export const cisMaleGiant200 = multiplyMeasurements( 2, CISMALE)
|
export const cisMaleGiant200 = multiplyMeasurements(2, CISMALE)
|
||||||
export const cisMaleGiant250 = multiplyMeasurements(2.5, CISMALE)
|
export const cisMaleGiant250 = multiplyMeasurements(2.5, CISMALE)
|
||||||
export const cisMaleGiant300 = multiplyMeasurements( 3, CISMALE)
|
export const cisMaleGiant300 = multiplyMeasurements(3, CISMALE)
|
||||||
|
|
||||||
|
|
||||||
export const cisFemaleAdult = {
|
export const cisFemaleAdult = {
|
||||||
28: cisFemaleAdult28,
|
28: cisFemaleAdult28,
|
||||||
|
@ -147,4 +147,3 @@ export const giant = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export { measurements }
|
export { measurements }
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These are a set of measurements of an average-sized [woman, man].
|
* These are a set of measurements of an average-sized [woman, man].
|
||||||
* We simply extrapolate for other sizes (based on neck)
|
* We simply extrapolate for other sizes (based on neck)
|
||||||
|
@ -109,18 +108,15 @@ const ratio = {
|
||||||
waistFront: 0.85,
|
waistFront: 0.85,
|
||||||
waistFrontArc: 0.85,
|
waistFrontArc: 0.85,
|
||||||
waistToFloor: 0.4,
|
waistToFloor: 0.4,
|
||||||
wrist: 0.5
|
wrist: 0.5,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const measurements = Object.keys(base)
|
export const measurements = Object.keys(base)
|
||||||
|
|
||||||
// This estimates a measurement based on the neck
|
// This estimates a measurement based on the neck
|
||||||
export const neckstimate = (neck = false, measurement = false, i=0, noRound=false) => {
|
export const neckstimate = (neck = false, measurement = false, i = 0, noRound = false) => {
|
||||||
|
|
||||||
if (typeof base[measurement] === 'undefined') {
|
if (typeof base[measurement] === 'undefined') {
|
||||||
console.log(
|
console.log(new Error(`neckstimate() called with an invalid measurement name (${measurement})`))
|
||||||
new Error(`neckstimate() called with an invalid measurement name (${measurement})`)
|
|
||||||
)
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
if (!measurement) {
|
if (!measurement) {
|
||||||
|
@ -144,4 +140,3 @@ export const neckstimate = (neck = false, measurement = false, i=0, noRound=fals
|
||||||
? base[measurement][i] + delta * ratio[measurement]
|
? base[measurement][i] + delta * ratio[measurement]
|
||||||
: Math.round(base[measurement][i] + delta * ratio[measurement])
|
: Math.round(base[measurement][i] + delta * ratio[measurement])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import chai from "chai"
|
import chai from 'chai'
|
||||||
import * as all from "./dist/index.mjs"
|
import * as all from './dist/index.mjs'
|
||||||
|
|
||||||
const expect = chai.expect
|
const expect = chai.expect
|
||||||
const { measurements, sizes } = all
|
const { measurements, sizes } = all
|
||||||
|
|
||||||
describe('Measurements', () => {
|
describe('Measurements', () => {
|
||||||
it("Measurements should be a named export and match the sizes", () => {
|
it('Measurements should be a named export and match the sizes', () => {
|
||||||
for (const m of measurements) {
|
for (const m of measurements) {
|
||||||
expect(typeof all.cisFemaleAdult28[m]).to.equal('number');
|
expect(typeof all.cisFemaleAdult28[m]).to.equal('number')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -24,4 +24,3 @@ for (const type in sizes) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import draftFront from './front'
|
||||||
const Design = new freesewing.Design(config, plugins)
|
const Design = new freesewing.Design(config, plugins)
|
||||||
|
|
||||||
// Attach Bella's draft methods to the prototype
|
// Attach Bella's draft methods to the prototype
|
||||||
for (const m of [ 'Back', 'FrontSideDart' ]) {
|
for (const m of ['Back', 'FrontSideDart']) {
|
||||||
Design.prototype[`draftBella${m}`] = function (part) {
|
Design.prototype[`draftBella${m}`] = function (part) {
|
||||||
return new Bella(this.settings)[`draft${m}`](part)
|
return new Bella(this.settings)[`draft${m}`](part)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,14 +15,7 @@ import draftUnderSleeve from './under-sleeve'
|
||||||
const Design = new freesewing.Design(config, plugins)
|
const Design = new freesewing.Design(config, plugins)
|
||||||
|
|
||||||
// Attach Bent's draft methods to the prototype
|
// Attach Bent's draft methods to the prototype
|
||||||
for (const m of [
|
for (const m of ['Base', 'Front', 'Back', 'Sleeve', 'TopSleeve', 'UnderSleeve']) {
|
||||||
'Base',
|
|
||||||
'Front',
|
|
||||||
'Back',
|
|
||||||
'Sleeve',
|
|
||||||
'TopSleeve',
|
|
||||||
'UnderSleeve',
|
|
||||||
]) {
|
|
||||||
Design.prototype[`draftBent${m}`] = function (part) {
|
Design.prototype[`draftBent${m}`] = function (part) {
|
||||||
return new Bent(this.settings)[`draft${m}`](part)
|
return new Bent(this.settings)[`draft${m}`](part)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,14 +14,7 @@ import draftSleeve from './sleeve'
|
||||||
const Design = new freesewing.Design(config, plugins)
|
const Design = new freesewing.Design(config, plugins)
|
||||||
|
|
||||||
// Attach Breanna's draft methods to the prototype
|
// Attach Breanna's draft methods to the prototype
|
||||||
for (const m of [
|
for (const m of ['Base', 'Back', 'FrontBase', 'Front', 'Sleevecap', 'Sleeve']) {
|
||||||
'Base',
|
|
||||||
'Back',
|
|
||||||
'FrontBase',
|
|
||||||
'Front',
|
|
||||||
'Sleevecap',
|
|
||||||
'Sleeve',
|
|
||||||
]) {
|
|
||||||
Design.prototype[`draftBreanna${m}`] = function (part) {
|
Design.prototype[`draftBreanna${m}`] = function (part) {
|
||||||
return new Breanna(this.settings)[`draft${m}`](part)
|
return new Breanna(this.settings)[`draft${m}`](part)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,13 +14,7 @@ import draftSleeve from './sleeve'
|
||||||
const Design = new freesewing.Design(config, plugins)
|
const Design = new freesewing.Design(config, plugins)
|
||||||
|
|
||||||
// Attach Brian's draft methods to the prototype
|
// Attach Brian's draft methods to the prototype
|
||||||
for (const m of [
|
for (const m of ['Base', 'Front', 'Back', 'Sleevecap', 'Sleeve']) {
|
||||||
'Base',
|
|
||||||
'Front',
|
|
||||||
'Back',
|
|
||||||
'Sleevecap',
|
|
||||||
'Sleeve',
|
|
||||||
]) {
|
|
||||||
Design.prototype[`draftBrian${m}`] = function (part) {
|
Design.prototype[`draftBrian${m}`] = function (part) {
|
||||||
return new Brian(this.settings)[`draft${m}`](part)
|
return new Brian(this.settings)[`draft${m}`](part)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
const {
|
const { Point, points, Path, paths, Snippet, snippets, complete, options, sa, paperless, macro } =
|
||||||
Point, points,
|
part.shorthand()
|
||||||
Path, paths,
|
|
||||||
Snippet, snippets,
|
|
||||||
complete,
|
|
||||||
options,
|
|
||||||
sa,
|
|
||||||
paperless,
|
|
||||||
macro
|
|
||||||
} = part.shorthand()
|
|
||||||
|
|
||||||
// Add points to make a box
|
// Add points to make a box
|
||||||
const w = 500 * options.size
|
const w = 500 * options.size
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
|
||||||
// Do to this part what you wish, before returning it
|
// Do to this part what you wish, before returning it
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import draftBack from './back'
|
||||||
const Design = new freesewing.Design(config, plugins)
|
const Design = new freesewing.Design(config, plugins)
|
||||||
|
|
||||||
// Attach Titan's draft methods to the prototype
|
// Attach Titan's draft methods to the prototype
|
||||||
for (const m of [ 'Back', 'Front' ]) {
|
for (const m of ['Back', 'Front']) {
|
||||||
Design.prototype[`draftTitan${m}`] = function (part) {
|
Design.prototype[`draftTitan${m}`] = function (part) {
|
||||||
return new Titan(this.settings)[`draft${m}`](part)
|
return new Titan(this.settings)[`draft${m}`](part)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import { visit } from 'unist-util-visit'
|
import { visit } from 'unist-util-visit'
|
||||||
import { fromHtml } from 'hast-util-from-html'
|
import { fromHtml } from 'hast-util-from-html'
|
||||||
|
|
||||||
const jargonTransform = (term, html) => `<span class="jargon-term">${term}<span class="jargon-info">${html}</span></span>`
|
const jargonTransform = (term, html) =>
|
||||||
|
`<span class="jargon-term">${term}<span class="jargon-info">${html}</span></span>`
|
||||||
|
|
||||||
export default (options) => {
|
export default (options) => {
|
||||||
// Don't bother if we don't have any jargon
|
// Don't bother if we don't have any jargon
|
||||||
|
@ -17,7 +18,8 @@ export default (options) => {
|
||||||
if (
|
if (
|
||||||
node.tagName === 'em' &&
|
node.tagName === 'em' &&
|
||||||
Object.keys(options.jargon).indexOf(node.children[0].value.toLowerCase()) !== -1
|
Object.keys(options.jargon).indexOf(node.children[0].value.toLowerCase()) !== -1
|
||||||
) return true
|
)
|
||||||
|
return true
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue