summaryrefslogtreecommitdiff
path: root/electron
diff options
context:
space:
mode:
Diffstat (limited to 'electron')
-rw-r--r--electron/.electron-vue/webpack.renderer.config.js18
-rw-r--r--electron/.electron-vue/webpack.web.config.js18
-rw-r--r--electron/src/lib/i18n.js28
-rw-r--r--electron/src/main/index.js2
-rw-r--r--electron/src/renderer/assets/js/simulator.js2
-rw-r--r--electron/src/renderer/assets/style/simulator.css28
-rw-r--r--electron/src/renderer/components/Simulator.vue6
-rw-r--r--electron/src/renderer/main.js2
8 files changed, 77 insertions, 27 deletions
diff --git a/electron/.electron-vue/webpack.renderer.config.js b/electron/.electron-vue/webpack.renderer.config.js
index 89f8cd78..ac281db6 100644
--- a/electron/.electron-vue/webpack.renderer.config.js
+++ b/electron/.electron-vue/webpack.renderer.config.js
@@ -103,12 +103,6 @@ let rendererConfig = {
'css-loader',
{
loader: 'sass-loader',
- // Requires sass-loader@^7.0.0
- options: {
- implementation: require('sass'),
- fiber: require('fibers'),
- indentedSyntax: true // optional
- },
// Requires sass-loader@^8.0.0
options: {
implementation: require('sass'),
@@ -132,6 +126,18 @@ let rendererConfig = {
new HtmlWebpackPlugin({
filename: 'index.html',
template: path.resolve(__dirname, '../src/index.ejs'),
+ templateParameters(compilation, assets, options) {
+ return {
+ compilation: compilation,
+ webpack: compilation.getStats().toJson(),
+ webpackConfig: compilation.options,
+ htmlWebpackPlugin: {
+ files: assets,
+ options: options
+ },
+ process
+ }
+ },
minify: {
collapseWhitespace: true,
removeAttributeQuotes: true,
diff --git a/electron/.electron-vue/webpack.web.config.js b/electron/.electron-vue/webpack.web.config.js
index 913518a2..50a73df6 100644
--- a/electron/.electron-vue/webpack.web.config.js
+++ b/electron/.electron-vue/webpack.web.config.js
@@ -77,12 +77,6 @@ let webConfig = {
'css-loader',
{
loader: 'sass-loader',
- // Requires sass-loader@^7.0.0
- options: {
- implementation: require('sass'),
- fiber: require('fibers'),
- indentedSyntax: true // optional
- },
// Requires sass-loader@^8.0.0
options: {
implementation: require('sass'),
@@ -102,6 +96,18 @@ let webConfig = {
new HtmlWebpackPlugin({
filename: 'index.html',
template: path.resolve(__dirname, '../src/index.ejs'),
+ templateParameters(compilation, assets, options) {
+ return {
+ compilation: compilation,
+ webpack: compilation.getStats().toJson(),
+ webpackConfig: compilation.options,
+ htmlWebpackPlugin: {
+ files: assets,
+ options: options
+ },
+ process
+ }
+ },
minify: {
collapseWhitespace: true,
removeAttributeQuotes: true,
diff --git a/electron/src/lib/i18n.js b/electron/src/lib/i18n.js
index 886fd654..4f9395d7 100644
--- a/electron/src/lib/i18n.js
+++ b/electron/src/lib/i18n.js
@@ -1,9 +1,27 @@
-module.exports.selectLanguage = function () {
- ['LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'].forEach(language => {
+module.exports.selectLanguage = function (translations) {
+ // get a list of available translations
+ var availableTranslations = ['en_US'];
+ for(var k in translations) availableTranslations.push(k);
+
+ var lang = undefined;
+
+ // get system language / Inkscape language
+ ['LANG', 'LC_MESSAGES', 'LC_ALL', 'LANGUAGE'].forEach(language => {
if (process.env[language]) {
- return process.env[language].split(":")[0]
+ // split encoding information, we don't need it
+ var current_lang = process.env[language].split(".")[0];
+ if (current_lang.length == 2) {
+ // current language has only two letters (e.g. en),
+ // compare with available languages and if present, set to a long locale name (e.g. en_US)
+ lang = availableTranslations.find(elem => elem.startsWith(current_lang));
+ } else {
+ lang = current_lang;
+ }
}
})
-
- return "en_US"
+ // set default language
+ if (lang === undefined) {
+ lang = "en_US"
+ }
+ return lang
}
diff --git a/electron/src/main/index.js b/electron/src/main/index.js
index f7fb9437..14a3da55 100644
--- a/electron/src/main/index.js
+++ b/electron/src/main/index.js
@@ -61,9 +61,7 @@ function createWindow() {
app.on('ready', createWindow)
app.on('window-all-closed', () => {
- if (process.platform !== 'darwin') {
app.quit()
- }
})
app.on('activate', () => {
diff --git a/electron/src/renderer/assets/js/simulator.js b/electron/src/renderer/assets/js/simulator.js
index 638f0ca2..6c251a59 100644
--- a/electron/src/renderer/assets/js/simulator.js
+++ b/electron/src/renderer/assets/js/simulator.js
@@ -126,7 +126,7 @@ export default {
return ""
}
- let label = "STITCH"
+ let label = this.$gettext("STITCH")
switch (true) {
case stitch.jump:
label = this.$gettext("JUMP")
diff --git a/electron/src/renderer/assets/style/simulator.css b/electron/src/renderer/assets/style/simulator.css
index 7da1d9ef..30e601b0 100644
--- a/electron/src/renderer/assets/style/simulator.css
+++ b/electron/src/renderer/assets/style/simulator.css
@@ -20,7 +20,18 @@
}
button {
- color: rgb(0, 51, 153)
+ color: rgb(0, 51, 153);
+ align-items: flex-start;
+ text-align: center;
+ cursor: default;
+ background-color: buttonface;
+ box-sizing: border-box;
+ padding: 2px 6px 3px;
+ border-width: 2px;
+ border-style: outset;
+ border-color: buttonface;
+ border-image: initial;
+ margin-bottom: 5px;
}
.fa-spin-fast {
@@ -59,11 +70,13 @@ button {
text-align: center;
flex: 1;
white-space: nowrap;
+ margin: 0 5px;
}
fieldset {
border: 2px solid rgb(0, 51, 153);
position: relative;
+ padding: 0 5px
}
.window-controls {
@@ -142,6 +155,10 @@ fieldset.show-commands {
text-align: left;
}
+fieldset.show-commands legend {
+ text-align: center;
+}
+
fieldset.show-commands span {
display: inline-block;
vertical-align: top;
@@ -152,7 +169,7 @@ fieldset.show-commands span.npp {
}
fieldset.show-commands span:first-of-type {
- padding-right: 12px;
+ padding: 0 5px;
}
button.pressed {
@@ -164,8 +181,7 @@ button.pressed {
}
.slider-container {
- margin-top: 25px;
- margin-bottom: 25px;
+ margin: 25px 5px;
flex-grow: 0;
}
@@ -244,12 +260,15 @@ button.pressed {
width: 4rem;
float: right;
font-size: 1rem;
+ border-style: inset;
+ padding: 0 3px;
}
.simulator {
display: flex;
flex-direction: column;
height: 95vh;
+ margin: 10px;
}
.current-command {
@@ -269,6 +288,7 @@ div.simulator::v-deep svg.simulation {
div.simulator::v-deep svg.simulation-scale {
height: 50px;
order: -1;
+ margin-left: 5px;
}
div.simulator::v-deep .simulation-scale-label {
diff --git a/electron/src/renderer/components/Simulator.vue b/electron/src/renderer/components/Simulator.vue
index c6a190fb..66abadd6 100644
--- a/electron/src/renderer/components/Simulator.vue
+++ b/electron/src/renderer/components/Simulator.vue
@@ -189,7 +189,9 @@
<span class="current-command">{{currentCommand}}</span>
</fieldset>
<fieldset class="show-commands">
- <legend>Show</legend>
+ <legend>
+ <translate>Show</translate>
+ </legend>
<span>
<input id="trim-checkbox" type="checkbox" v-model="showTrims"/>
<label for="trim-checkbox"><font-awesome-icon icon="cut"/> <translate>trims</translate></label>
@@ -211,7 +213,7 @@
<font-awesome-icon icon="circle" transform="shrink-9"/>
<font-awesome-icon icon="minus" class="fa-thin-line"/>
</font-awesome-layers>
- <span v-translate>needle<br/>points</span>
+ <span v-translate>needle points</span>
</label>
</span>
<span>
diff --git a/electron/src/renderer/main.js b/electron/src/renderer/main.js
index 25a3f7f1..ee7dba02 100644
--- a/electron/src/renderer/main.js
+++ b/electron/src/renderer/main.js
@@ -73,7 +73,7 @@ Vue.component('font-awesome-layers', FontAwesomeLayers)
Vue.use(Transitions)
Vue.use(GetTextPlugin, {
translations: translations,
- defaultLanguage: selectLanguage(),
+ defaultLanguage: selectLanguage(translations),
silent: true
})