diff --git a/src/components/Menu/SettingsMenu.vue b/src/components/Menu/SettingsMenu.vue
index efb8eb5..ac2f27d 100644
--- a/src/components/Menu/SettingsMenu.vue
+++ b/src/components/Menu/SettingsMenu.vue
@@ -1,48 +1,48 @@
- Perspective
- Flat
- Free-Flight
+ {{$t('controls.perspective.title')}}
+ {{$t('controls.flatView.title')}}
+ {{$t('controls.freeFlight.title')}}
-
+
Sunlight
Ambient-Light
-
+
{{stage.name}}
-
+
Hires layer
+ @update="mapViewer.loadedHiresViewDistance = $event; $bluemap.mapViewer.updateLoadedMapArea()" @lazy="$bluemap.saveUserSettings()">{{ $t("renderDistance.hiresLayer") }}
Lowres layer
+ @update="mapViewer.loadedLowresViewDistance = $event; $bluemap.mapViewer.updateLoadedMapArea()" @lazy="$bluemap.saveUserSettings()">{{ $t("renderDistance.lowersLayer") }}
-
+
Mouse-Sensitivity
- Invert Mouse Y
+ @update="appState.controls.mouseSensitivity = $event; $bluemap.updateControlsSettings();" @lazy="$bluemap.saveUserSettings()">{{ $t("freeFlightControls.mouseSensitivity") }}
+ {{ $t("freeFlightControls.invertMouseY") }}
-
+
{{theme.name}}
- Debug
+ {{ $t("debug.title") }}
- Reset All Settings
+ {{ $t("resetAllSettings.title") }}
@@ -51,17 +51,18 @@ import Group from "@/components/Menu/Group";
import SimpleButton from "@/components/Menu/SimpleButton";
import Slider from "@/components/Menu/Slider";
import SwitchButton from "@/components/Menu/SwitchButton";
+import i18n from "../../i18n";
const themes = [
- {name: "Default (System/Browser)", value: null},
- {name: "Dark", value: 'dark'},
- {name: "Light", value: 'light'},
+ {name: i18n.t("theme.default"), value: null},
+ {name: i18n.t("theme.dark"), value: 'dark'},
+ {name: i18n.t("theme.light"), value: 'light'},
];
const qualityStages = [
- {name: "High (SSAA, x2)", value: 2},
- {name: "Normal (Native, x1)", value: 1},
- {name: "Low (Upscaling, x0.5)", value: 0.5},
+ {name: i18n.t("resolution.high"), value: 2},
+ {name: i18n.t("resolution.normal"), value: 1},
+ {name: i18n.t("resolution.low"), value: 0.5},
];
export default {
diff --git a/src/i18n/en.js b/src/i18n/en.js
new file mode 100644
index 0000000..b28385e
--- /dev/null
+++ b/src/i18n/en.js
@@ -0,0 +1,85 @@
+export default {
+ menu: {
+ title: "Menu",
+ ctrlBar: "Menu"
+ },
+ maps: {
+ title: "Maps",
+ ctrlBar: "Map-List"
+ },
+ markers: {
+ title: "Markers",
+ ctrlBar: "Marker-List"
+ },
+ settings: {
+ title: "settings"
+ },
+ goFullscreen: {
+ title: "Go Fullscreen"
+ },
+ resetCamera: {
+ title: "Reset Camera",
+ ctrlBar: "Reset Camera & Position"
+ },
+ updateMap: {
+ title: "Update Map",
+ description: "Clear Tile Cache"
+ },
+ lighting: {
+ title: "Lighting",
+ dayNightSwitch: {
+ ctrlBar: "Day/Night"
+ },
+ sunlight: "Sunlight",
+ ambientLight: "Ambient-Light"
+ },
+ resolution: {
+ title: "Resolution",
+ high: "High (SSAA, x2)",
+ normal: "Normal (Native, x1)",
+ low: "Low (Upscaling, x0.5)"
+ },
+ freeFlightControls: {
+ title: "Free-Flight Controls",
+ mouseSensitivity: "Mouse-Sensitivity",
+ invertMouseY: "Invert Mouse Y"
+ },
+ renderDistance: {
+ title: "Render Distance",
+ hiresLayer: "Hires layer",
+ lowersLayer: "Lowres layer"
+ },
+ theme: {
+ title: "Theme",
+ default: "Default (System/Browser)",
+ dark: "Dark",
+ light: "Light"
+ },
+ debug: {
+ title: "Debug"
+ },
+ resetAllSettings: {
+ title: "Reset All Settings"
+ },
+ players: {
+ title: "Players",
+ ctrlBar: "Player-List"
+ },
+ compass: {
+ ctrlBar: "Compass / Face North"
+ },
+ controls: {
+ perspective: {
+ title: "Perspective",
+ ctrlBar: "Perspective-View"
+ },
+ flatView: {
+ title: "Flat",
+ ctrlBar: "Orthographic/Flat-View",
+ },
+ freeFlight: {
+ title: "Free-Flight",
+ ctrlBar: "Free-Flight/Spectator Mode"
+ }
+ }
+};
diff --git a/src/i18n/index.js b/src/i18n/index.js
new file mode 100644
index 0000000..f855c2d
--- /dev/null
+++ b/src/i18n/index.js
@@ -0,0 +1,12 @@
+import VueI18n from 'vue-i18n';
+import en from './en';
+import Vue from 'vue';
+
+Vue.use(VueI18n);
+
+const i18n = new VueI18n({
+ locale: 'en',
+ messages: { en }
+});
+
+export default i18n;
diff --git a/src/js/MainMenu.js b/src/js/MainMenu.js
index b610b3f..60f116c 100644
--- a/src/js/MainMenu.js
+++ b/src/js/MainMenu.js
@@ -22,6 +22,8 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+import i18n from "../i18n";
+
export class MainMenu {
static NULL_PAGE = {
@@ -39,7 +41,7 @@ export class MainMenu {
return this.pageStack[this.pageStack.length - 1];
}
- openPage(id = "root", title = "Menu", data = {}) {
+ openPage(id = "root", title = i18n.t("menu.title"), data = {}) {
if (!this.isOpen){
this.pageStack.splice(0, this.pageStack.length);
this.isOpen = true;
diff --git a/src/main.js b/src/main.js
index 2b9b6ac..487c84a 100644
--- a/src/main.js
+++ b/src/main.js
@@ -26,6 +26,7 @@
import Vue from 'vue'
import App from './App.vue'
import {BlueMapApp} from "@/js/BlueMapApp";
+import i18n from './i18n';
// utils
String.prototype.includesCI = function (val) {
@@ -42,6 +43,7 @@ Object.defineProperty(Vue.prototype, '$bluemap', {
});
let vue = new Vue({
+ i18n,
render: h => h(App)
}).$mount('#app');