class Lang {
constructor() {
console.log("lang constructor");
this.polyglot = Polyglot;
if (localStorage.getItem('krestianstvo_locale')) {
} else {
localStorage.setItem('krestianstvo_locale', 'en');
}
this.locale = localStorage.getItem('krestianstvo_locale');
}
initLocale() {
if (!localStorage.getItem('krestianstvo_locale'))
localStorage.setItem('krestianstvo_locale', 'en');
}
async getLang(langID) {
let response = await fetch("/web/locale/" + langID + ".json");
let data = await response.json();
return data
}
setLanguage(langID) {
var self = this;
return this.getLang(langID).then(phrases => {
this.language = new Polyglot({ phrases });
});
}
setLocale(langID) {
localStorage.setItem('krestianstvo_locale', langID);
this.locale = langID;
}
getTranslationFor(aString) {
let locale = localStorage.getItem('krestianstvo_locale');
return this.translations[aString][locale]
}
changeLanguageTo(langID) {
this.setLocale(langID);
this.setLanguage(langID);
}
get langPhrases() {
// let langID = localStorage.getItem('krestianstvo_locale');
let phrases = {
"en": {
"start": "Start new",
"users": "Users online: "
},
"ru": {
"start": "Создать",
"users": "Пользователей онлайн: "
}
}
return phrases[this.locale]
}
get translations() {
let appText = {
"titleText": {
"en": '
',
"ru": ''
},
"headerText": {
'en': 'Collaborative Live Coding Space with support of user-defined languages and WebVR ready 3D graphics.
Based on: Virtual World Framework | A-Frame | Ohm language | OSC.js | and more... by Krestianstvo.org
',
"ru": 'Виртуальное обучающее пространство в веб-браузере с функциями живого кодирования, возможностью создания собственных языков программирования, технологий виртуальной/дополненной/смешанной реальности WebVR.
На основе: Virtual World Framework | A-Frame | Ohm language | OSC.js | ... проект Krestianstvo.org
'
},
"featuresText": {
"en": 'Features
- Decentralized network model for A-Frame components and entities based on VWF replicated computation architecture
- Ohm language driver for sharing user-defined grammars, parsers, tokenisers inside virtual space
- In browser Code and Properties editor based on Cell.js
- OSC messaging through OSC relay on the client
- Avatars (Simple and GLTF models with animation)
- Multi-window or multi-monitor/multi-machine setups with view offset cameras
- WebRTC for video/audio streaming,3D positional audio support
- GearVR, Windows MixedReality motion controllers
',
"ru": 'О программе
- Децентрализованная модель приложения на основе A-Frame компонентов и VWF архитектуры распределенных вычислений (репликация и виртуальное время) в сети.
- Ohm драйвер для совместного создания пользовательских языков программирования, грамматик, парсеров, токенайзеров внутри виртуального пространства
- Редактор кода и параметров объектов прямо в веб-браузере на основе Cell.js
- Работа с OSC сообщениями через OSC relay
- Аватары (простые или GLTF модели с анимацией)
- Мульти-оконные и мульти-мониторные/компьютерные/телефонные проекции с применением виртуальных камер со смещением вида
- WebRTC для видео/аудио потоковой передачи данных P2P, с функциями звукового 3D позиционирования в виртуальном пространстве
- GearVR, Windows MixedReality контроллеры движения
'
},
"worldInfo": {
"en": 'Virtual Worlds
To begin collaborative coding in virtual space, just start one of the listed prototypes and connect to it from another browser window using the generated link. The link will apper near the Start new button.
',
"ru": 'Виртуальные миры
Чтобы начать работу в виртуальном обучающем пространстве, выберите один из прототипов миров и запустите его нажав на кнопку Создать. Для вновь созданного мира сгенерируется уникальная ссылка, которая отобразиться под его описанием. Для совместной работы, войдите с помощью этой ссылки с другого компьютера или окна браузера. Из прототипа можно создавать неограниченное количество миров. Рядом с ссылками так же указывается количество пользователей, находящихся онлайн в указанном мире.
'
},
"demoText": {
"en": 'Demo videos
',
"ru": 'Видео демонстрации
'
}
}
return appText
}
}
export { Lang };