Files
tgCrewAdmin/backend/include/i18n.js
2025-06-29 18:55:59 +03:00

58 lines
2.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const i18n = {
en: {
ON_PROJECT_ARCHIVE: 'The project was moved to an rachive. Message tracking has been discontinued.',
ON_PROJECT_RESTORE: 'The project has been recovered from the archives.',
ON_CHAT_REMOVE: 'The chat was removed from a project.',
CHAT_IN_USE: 'Chat is already in use',
EXPIRED_KEY: 'The key validity time for binding has expired',
OPEN_PROJECT: 'Open project',
WELCOME: 'Welcome, strange',
TASK_MESSAGE: ':clipboard: New task ${PRIORITY}\n${NAME}\n[${CREATOR}](tg://user?id=${CREATOR_ID}) > [${ASSIGNEE}](tg://user?id=${ASSIGNEE_ID})\nPlan date: ${PLAN_DATE}\n[Open a task page](${URL})',
TASK_PRIORITY_0: '',
TASK_PRIORITY_1: '',
TASK_PRIORITY_2: '(Important)',
TASK_PRIORITY_3: '(Critical)',
MEETING_MESSAGE: 'Meeting ${name}',
ADMIN_APP: 'Administrator Access',
USER_APP: 'User Access'
},
ru: {
ON_PROJECT_ARCHIVE: 'Проект помещен в архив. Отслеживание сообщений прекращено.',
ON_PROJECT_RESTORE: 'Проект восстановлен из архива.',
ON_CHAT_REMOVE: 'Чат удален из проекта.',
CHAT_IN_USE: 'Чат уже используется',
EXPIRED_KEY: 'Время действия ключа для привязки истекло',
OPEN_PROJECT: 'Открыть проект',
WELCOME: 'Добро пожаловать',
TASK_MESSAGE: '📋 Новая задача ${PRIORITY}\n${NAME}\n<a href="tg://user?id=${CREATOR_ID}">${CREATOR}</a> > <a href="tg://user?id=${ASSIGNEE_ID}">${ASSIGNEE}</a>\nСрок: ${PLAN_DATE}\n<a href="${URL}">Перейти на страницу задачи</a>',
TASK_PRIORITY_0: '',
TASK_PRIORITY_1: '',
TASK_PRIORITY_2: '(Важно)',
TASK_PRIORITY_3: '(Критично)',
MEETING_MESSAGE: 'Встреча ${name}',
ADMIN_APP: 'Режим администратора',
USER_APP: 'Режим пользователя'
}
}
const hasLocale = (locale) => !!i18n[locale]
function getString (locale, code, args = {}) {
const params = {}
Object.keys(args instanceof Object ? args : {}).forEach(key => {
const value = args[key]
params[key] = value[0] == '$' ? getString(locale, value.substring(1)) : value
})
let res = i18n[locale] ? i18n[locale][code] : undefined
if (res === undefined)
res = i18n.en[code]
if (res === undefined)
res = code
if (res === undefined)
res = 'ERROR'
res = res.replace(/\${(\w+)}/g, (match, key) => params.hasOwnProperty(key) ? params[key] : match)
return res
}
module.exports = { hasLocale, getString }