const lang = { en: { _code: 'en', playground: 'ProNature Playground', workshop: 'ProNature Workshop', createGameObject: 'Add game object', editGameObject: 'Edit game object', createGame: 'Add game', editGame: 'Edit game', name: 'Name', id: 'Identifier', description: 'Description', fieldRequired: 'Field is required', objectType: 'Object type', objectFile: 'File', panorama2d: 'Panorama picture', environment3d: 'Environment', object3d: '3D object', object2d: '2D object (picture)', audio: 'Audio', video: 'Video', player3d: 'Player', save: 'Save', saveAndPreview: 'Save and preview', preview: 'Preview', captureThumbnail: 'Save thumbnail', publish: 'Publish', gameObjects: 'Objects', gameScenarios: 'Scenarios', gameRules: 'Rules', gameDesigner: 'Game studio', games: 'Games', play: 'Play', darkMode: 'Dark mode', confirmDeletionOf: 'Confirm deletion of', yes: 'Yes', no: 'No', scenario: 'Scenario', createScenario: 'Create scenario', editScenario: 'Edit scenario', editScenes: 'Edit scenes', addScene: 'Add scene', addTask: 'Add task', date: 'Date modified', update: 'Update', signin: 'Sign in', signup: 'Sign up', signupSuccess: 'Successful sign-up', profile: 'Profile', 'reset-password': 'Reset password', 'change-password': 'Change password', signout: 'Sign out', faq: 'Help', email:'E-mail', passwordChange: 'Change password', password:'Password', passwordRetype: 'Password (confirm)', passwordCurrent: 'Your current password', passwordForgotten: 'Forgotten password', recoveryMailSent: 'Password reset mail was sent. Please check your e-mail.', confirmCaptcha: 'Enter the text you see', 'validate-email': 'E-mail validation', emailValidated: 'Your e-mail address was successfully validated.', validationMailContent: v1 => `Activation link: ${v1}`, validationMailSent: 'Activation link was sent.', forgottenPassMailContent: v1 => `Recover your account by following this link: ${v1}`, emailNotValidated: 'This email is not validated', resendValidationMail: 'Resend verification e-mail', displayName:'Display Name', firstName:'First Name', lastName:'Last Name', errors:{ unauthorized: 'Unauthorized', notFound: 'Object not found', noReadPermissions: 'You don\'t have access to this content', noEditPermissions:'Missing edit permissions', noCreatePermissions:'Missing create permissions', noDeletePermissions:'Missing delete permissions', noPermissions: 'No permissions', ftsUnavailable: 'Full text search service is not available', systemReadOnly: 'Request rejected. The system is in read-only mode.', invalidEmail: 'Invalid email', emailExists: 'This email is already registered', invalidPassword: 'Invalid password', invalidUsername: 'Invalid username', passwordMismatch: 'Password mismatch', invalidCaptcha: 'Invalid captcha', invalidValidationLink: 'Invalid/inactive validation link', activationLinkExpired: 'Activation link has expired', invalidActivationLink: 'Invalid activation link', objectUpdateCollision: 'Save failed. Object was altered by another user. Please refresh the page.' }, }, bg: { _code: 'bg', playground: 'ProNature игрище', workshop: 'ProNature работилница', createGameObject: 'Добавяне на игрови обект', editGameObject: 'Редактиране на игрови обект', createGame: 'Добавяне на игра', editGame: 'Редактиране на игра', name: 'Име', id: 'Идентификатор', description: 'Описание', fieldRequired: 'Полето е задължително', objectType: 'Тип обект', objectFile: 'Файл', panorama2d: 'Панорамна снимка', environment3d: 'Околна среда', object3d: 'Триизмерен обект', object2d: 'Двумерен обект (изображение)', audio: 'Аудио', video: 'Видео', player3d: 'Играч', save: 'Запис', saveAndPreview: 'Запис и преглед', preview: 'Преглед', captureThumbnail: 'Save thumbnail', publish: 'Публикуване', gameObjects: 'Обекти', gameScenarios: 'Сценарии', gameRules: 'Правила', gameDesigner: 'Студио', games: 'Игри', play: 'Играй', darkMode: 'Тъмен режим', confirmDeletionOf: 'Потвърдете изтриването на', yes: 'Да', no: 'Не', scenario: 'Сценарий', createScenario: 'Създаване на сценарий', editScenario: 'Редактиране на сценарий', editScenes: 'Редактиране на сцени', addScene: 'Добавяне на сцена', addTask: 'Добавяне на задача', date: 'Промяна', update: 'Обнови', signin: 'Вход', signup: 'Регистрация', signupSuccess: 'Успешна регистрация', profile: 'Профил', 'reset-password': 'Възстановяване на парола', 'change-password': 'Промяна на парола', signout: 'Изход', faq: 'Помощ', email:'Имейл', passwordChange: 'Смяна на парола', password:'Парола', passwordRetype:'Парола (отново)', passwordCurrent: 'Текуща парола', passwordForgotten: 'Забравена парола', recoveryMailSent: 'На посочения от Вас адрес е изпратен мейл за възстановяване на парола', confirmCaptcha: 'Въведете текста от картинката', 'validate-email': 'Валидиране на имейл', emailValidated: 'Вашият имейл е валидиран.', validationMailContent: v1 => `Линк за активиране: ${v1}`, validationMailSent: 'На посочената поща е изпратен линк за активиране', forgottenPassMailContent: v1 => `Линк за възстановяване на парола: ${v1}`, emailNotValidated: 'Този имейл не е валидиран', resendValidationMail: 'Повторно изпращане на имейл за верификация', displayName:'Псевдоним', firstName:'Име', lastName:'Фамилия', errors:{ unauthorized: 'Отказан достъп', notFound: 'Обектът не е намерен', noReadPermissions: 'Нямате достъп до това съдържание', noEditPermissions:'Нямате права за редакция на този обект', noCreatePermissions:'Нямате права за създаване на обект', noDeletePermissions:'Нямате права за изтриване на този обект', noPermissions: 'Нямате права', ftsUnavailable: 'Услугата за пълнотекстово търсене не е налична', systemReadOnly: 'Записът е отказан. Системата работи в read-only режим.', invalidEmail: 'Невалиден имейл', emailExists: 'Този имейл вече е регистриран', invalidPassword: 'Грешна парола', invalidUsername: 'Грешно потребителско име', passwordMismatch: 'Паролите не съвпадат', invalidCaptcha: 'Невалиден текст от картинката', invalidValidationLink: 'Невалиден линк за валидация', activationLinkExpired: 'Изтекъл линк за активация', invalidActivationLink: 'Невалиден линк за активация', objectUpdateCollision: 'Неуспешен запис. Обектът е бил редактиран от друг потребител. Моля опресенете страницата.' }, }, } import { ref } from 'vue'; export default { install: (app, options) => { // inject a globally available $translate() method app.config.globalProperties.$lang = ref('bg'); // app.config.globalProperties.$l = computed(()=>lang[app.config.globalProperties.$lang]); app.mixin({ data(){ return { } }, created(){ }, computed:{ lang:{ get(){ return app.config.globalProperties.$lang.value }, set(v){ app.config.globalProperties.$lang.value = v } }, l(){ return lang[this.lang]; } } }) }, }