snapshot of https://github.com/mattermost/mattermost.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s

This commit is contained in:
upstream-mirror
2026-09-16 00:29:55 +05:00
commit 240db4e2a7
15309 changed files with 2173406 additions and 0 deletions

450
i18n/glossary/uk.json Normal file
View File

@@ -0,0 +1,450 @@
{
"Mattermost": {
"target": "Mattermost"
},
"Enterprise Edition": {
"target": "Enterprise Edition",
"note": "Keep in English. Existing translations sometimes render it as 'Enterprise версія'; prefer the untranslated product name."
},
"Team Edition": {
"target": "Team Edition",
"note": "Keep in English. Existing translations sometimes use 'Командне видання'; prefer the untranslated product name per doNotTranslate."
},
"Mattermost Cloud": {
"target": "Mattermost Cloud"
},
"Channels": {
"target": "Channels",
"note": "Product name; do not confuse with the common noun 'channel' = 'канал'."
},
"Playbooks": {
"target": "Playbooks"
},
"Boards": {
"target": "Boards"
},
"Calls": {
"target": "Calls"
},
"Markdown": {
"target": "Markdown"
},
"OAuth": {
"target": "OAuth"
},
"SAML": {
"target": "SAML"
},
"LDAP": {
"target": "LDAP"
},
"SSO": {
"target": "SSO"
},
"MFA": {
"target": "MFA"
},
"OpenID Connect": {
"target": "OpenID Connect"
},
"Entra ID": {
"target": "Entra ID"
},
"GitLab": {
"target": "GitLab"
},
"Elasticsearch": {
"target": "Elasticsearch"
},
"Gossip": {
"target": "Gossip"
},
"Actiance XML": {
"target": "Actiance XML"
},
"Global Relay": {
"target": "Global Relay"
},
"System Console": {
"target": "системна консоль",
"note": "Feminine noun; capitalize as 'Системна консоль' when used as the named UI area. Consistent in existing translations."
},
"marketplace": {
"target": "магазин плагінів",
"note": "Existing translations consistently use 'Магазин плагінів' (lit. 'plugin store') rather than a transliteration like 'маркетплейс'."
},
"channel": {
"target": "канал",
"note": "Masculine. Genitive 'каналу', plural 'канали'."
},
"team": {
"target": "команда",
"note": "Feminine. Same word as 'command'; context disambiguates."
},
"post": {
"target": "допис",
"note": "Masculine. Majority rendering; existing strings occasionally use 'повідомлення' or 'публікація' — prefer 'допис' to keep the post/message distinction."
},
"message": {
"target": "повідомлення",
"note": "Neuter; identical in singular and plural nominative."
},
"thread": {
"target": "обговорення",
"note": "Neuter. Consistently used in existing translations (not 'потік' or 'гілка', though 'потік' appears in a few admin strings)."
},
"reply": {
"target": "відповідь",
"note": "Noun is feminine (plural 'відповіді'). Verb: 'відповісти' (perfective) for buttons."
},
"direct message": {
"target": "приватне повідомлення",
"note": "Majority rendering; 'особисте повідомлення' appears sporadically — use 'приватне повідомлення' everywhere. Note the same adjective is used for 'private channel' = 'приватний канал'."
},
"group message": {
"target": "групове повідомлення"
},
"mention": {
"target": "згадка",
"note": "Noun is feminine. Verb: 'згадати'; 'згадування' also appears for the act of mentioning."
},
"notification": {
"target": "сповіщення",
"note": "Neuter. Consistently 'сповіщення', not 'повідомлення' (reserved for 'message')."
},
"pin": {
"target": "закріпити",
"note": "'unpin' = 'відкріпити'; 'pinned messages' = 'закріплені повідомлення'."
},
"bookmark": {
"target": "закладка",
"note": "Noun is feminine. Verb: 'додати в закладки'."
},
"saved messages": {
"target": "збережені повідомлення",
"note": "'save' = 'зберегти', 'unsave' = 'скасувати збереження'."
},
"draft": {
"target": "чернетка",
"note": "Feminine. Plural 'чернетки'."
},
"scheduled post": {
"target": "запланований допис",
"note": "Existing strings mix 'запланований допис', 'заплановане повідомлення', and 'запланована публікація'; standardize on 'запланований допис'."
},
"emoji": {
"target": "емодзі",
"note": "Indeclinable neuter borrowing; same form in singular and plural."
},
"custom emoji": {
"target": "користувацький емодзі",
"note": "Existing translations use 'користувацькі емодзі' (plural); adjective agrees with indeclinable 'емодзі'."
},
"reaction": {
"target": "реакція",
"note": "Feminine. 'react' = 'відреагувати' / 'додати реакцію'."
},
"status": {
"target": "статус"
},
"custom status": {
"target": "користувацький статус",
"note": "Majority rendering; 'власний статус' also appears occasionally."
},
"do not disturb": {
"target": "Не турбувати"
},
"away": {
"target": "Не на місці",
"note": "Majority rendering for the status; 'Відсутній' appears in some strings — prefer 'Не на місці' (gender-neutral)."
},
"online": {
"target": "В мережі",
"note": "Majority rendering for the status; 'Онлайн' also appears — prefer 'В мережі'."
},
"offline": {
"target": "Не в мережі",
"note": "Majority rendering; 'Офлайн' appears occasionally."
},
"out of office": {
"target": "Поза офісом",
"note": "Majority rendering; 'Не в офісі' appears once in mobile."
},
"guest": {
"target": "гість",
"note": "Masculine. 'guest access' = 'гостьовий доступ', 'guest account' = 'гостьовий обліковий запис'."
},
"member": {
"target": "учасник",
"note": "Majority rendering; 'член' appears in some strings — prefer 'учасник'."
},
"user": {
"target": "користувач",
"note": "Masculine. Genitive 'користувача'."
},
"system admin": {
"target": "системний адміністратор"
},
"team admin": {
"target": "адміністратор команди"
},
"channel admin": {
"target": "адміністратор каналу"
},
"session": {
"target": "сесія",
"note": "Majority rendering; 'сеанс' also appears — prefer 'сесія'."
},
"sign in": {
"target": "увійти",
"note": "Existing translations are inconsistent: the standalone Log in button is often 'Авторизуватися', while sentences use forms of 'увійти'/'вхід'. Standardize on 'увійти' ('вхід' as noun); translate 'log in' and 'sign in' identically."
},
"sign out": {
"target": "вийти",
"note": "Consistent; noun form 'вихід'. Translate 'log out' and 'sign out' identically."
},
"join": {
"target": "приєднатися",
"note": "Followed by 'до' + genitive: 'приєднатися до каналу/команди'."
},
"leave": {
"target": "покинути",
"note": "Majority rendering ('Покинути канал'); 'залишити' also appears — prefer 'покинути'."
},
"archive": {
"target": "архівувати",
"note": "Perfective 'заархівувати' for one-shot actions; 'archived' = 'заархівовано' / 'архівний'."
},
"unarchive": {
"target": "розархівувати"
},
"mute": {
"target": "заглушити",
"note": "For channel notifications. Existing strings are inconsistent ('Не сповіщати', 'Вимкнути звук', 'Заглушити канал'); use 'заглушити' for channels and reserve 'вимкнути звук' for microphone muting in Calls."
},
"follow": {
"target": "стежити",
"note": "Existing strings mix 'Відстежувати', 'Слідкувати за' and 'стежити за'; standardize on 'стежити за' + instrumental."
},
"unfollow": {
"target": "припинити стежити",
"note": "Existing strings mix 'Не слідувати за' and 'Відписатися від'; use 'припинити стежити за' for consistency with 'follow' = 'стежити'."
},
"favorite": {
"target": "обране",
"note": "Sidebar category = 'Обране'. Verb: 'додати в обране'; 'unfavorite' = 'вилучити з обраного'."
},
"search": {
"target": "пошук",
"note": "Verb: 'шукати'."
},
"integration": {
"target": "інтеграція",
"note": "Feminine."
},
"slash command": {
"target": "швидка команда",
"note": "Majority rendering in existing translations; 'слеш-команда' appears occasionally. Note ambiguity with 'команда' = team."
},
"webhook": {
"target": "вебхук",
"note": "Masculine borrowing; majority spelling. 'веб-хук' (hyphenated) and untranslated 'Webhook' also appear — standardize on 'вебхук'."
},
"incoming webhook": {
"target": "вхідний вебхук"
},
"outgoing webhook": {
"target": "вихідний вебхук"
},
"trigger word": {
"target": "тригерне слово",
"note": "Existing strings split between 'тригерне слово' and 'ключове слово'; use 'тригерне слово' to keep it distinct from 'keyword' = 'ключове слово'. Avoid the misspelling 'триггерне' found in some strings."
},
"plugin": {
"target": "плагін",
"note": "Masculine. Consistent in existing translations."
},
"bot": {
"target": "бот",
"note": "'bot account' = 'обліковий запис бота'."
},
"role": {
"target": "роль",
"note": "Feminine."
},
"permission": {
"target": "дозвіл",
"note": "Masculine. Plural 'дозволи'."
},
"scheme": {
"target": "схема",
"note": "'permission scheme' = 'схема дозволів'."
},
"license": {
"target": "ліцензія"
},
"seat": {
"target": "місце",
"note": "No existing translation found in repos; 'місце' (licensed seat) is the standard SaaS rendering. Use 'ліцензійне місце' where ambiguous."
},
"trial": {
"target": "пробний період",
"note": "Existing strings mix 'пробний період' and 'пробна версія'; prefer 'пробний період' for the time-limited trial."
},
"workspace": {
"target": "робочий простір"
},
"subscription": {
"target": "підписка"
},
"deactivate": {
"target": "деактивувати",
"note": "Consistent; 'deactivated' = 'деактивовано'."
},
"invite": {
"target": "запросити",
"note": "Verb; noun uses 'запрошення'."
},
"invitation": {
"target": "запрошення",
"note": "Neuter."
},
"sidebar": {
"target": "бічна панель"
},
"unread": {
"target": "непрочитане",
"note": "Adjective; agrees in gender/number: 'непрочитані повідомлення', 'непрочитаний канал'."
},
"attachment": {
"target": "вкладення",
"note": "Neuter; identical singular/plural nominative."
},
"public channel": {
"target": "публічний канал",
"note": "Majority rendering; 'загальнодоступний канал' appears in some admin strings — prefer 'публічний канал'."
},
"private channel": {
"target": "приватний канал"
},
"shared channel": {
"target": "спільний канал"
},
"channel header": {
"target": "заголовок каналу"
},
"channel purpose": {
"target": "призначення каналу",
"note": "Majority rendering in webapp; mobile occasionally uses 'мета' or mistakenly 'заголовок' — always use 'призначення каналу'."
},
"system message": {
"target": "системне повідомлення"
},
"persistent notification": {
"target": "постійне сповіщення",
"note": "Consistent in existing translations ('постійні сповіщення')."
},
"message priority": {
"target": "пріоритет повідомлення"
},
"urgent": {
"target": "терміново",
"note": "As the priority label; adjectival form 'терміновий' when modifying a noun. All-caps label: 'ТЕРМІНОВО'."
},
"recap": {
"target": "підсумок",
"note": "No existing translation in repos; 'підсумок' aligns with 'meeting summary' = 'підсумок зустрічі' in Calls. Genitive 'підсумку'."
},
"agent": {
"target": "агент",
"note": "Existing mobile strings use 'Агент' capitalized when referring to the AI feature; plural 'агенти'."
},
"burn-on-read": {
"target": "що зникає після прочитання",
"note": "Existing mobile string: 'Повідомлення, що зникає після прочитання'. For the all-caps inline label use 'ЗНИКАЄ ПІСЛЯ ПРОЧИТАННЯ' (avoid mobile's incorrect 'ПРОЧИТАТИ')."
},
"magic link": {
"target": "магічне посилання",
"note": "Grounded in existing mobile string 'Скористайтесь магічним посиланням'."
},
"personal access token": {
"target": "персональний токен доступу",
"note": "Existing strings mix 'токен' and 'маркер' for token; standardize on 'токен'."
},
"announcement banner": {
"target": "банер оголошень",
"note": "Existing strings inconsistent ('банер оголошення', 'банер з оголошеннями', 'Загальносистемні сповіщення'); standardize on 'банер оголошень'."
},
"channel banner": {
"target": "банер каналу"
},
"keyword": {
"target": "ключове слово",
"note": "Plural 'ключові слова'."
},
"user group": {
"target": "група користувачів"
},
"permalink": {
"target": "постійне посилання",
"note": "No established rendering in repos; 'постійне посилання' is the standard Ukrainian software term."
},
"profile": {
"target": "профіль",
"note": "Masculine. 'profile picture' = 'зображення профілю'."
},
"username": {
"target": "ім'я користувача",
"note": "Existing translations use 'Логін' for the standalone field label and 'ім'я користувача' in sentences; prefer 'ім'я користувача' for consistency."
},
"nickname": {
"target": "псевдонім"
},
"display name": {
"target": "відображуване ім'я",
"note": "Existing strings mix 'відображуване ім'я' and 'ім'я відображення'; prefer 'відображуване ім'я'. For channels/teams use 'відображувана назва'."
},
"collapsed reply threads": {
"target": "згорнуті відповіді в обговореннях",
"note": "Established rendering in mobile; keep as the feature name even though a more literal option would be 'згорнуті обговорення'."
},
"auto-translation": {
"target": "автоматичний переклад",
"note": "No existing rendering in repos; 'AUTO-TRANSLATED' label = 'ПЕРЕКЛАДЕНО АВТОМАТИЧНО'."
},
"data retention": {
"target": "зберігання даних",
"note": "'data retention policy' = 'політика зберігання даних' (consistent in existing translations)."
},
"compliance export": {
"target": "експорт відповідності"
},
"access control": {
"target": "контроль доступу",
"note": "'attribute-based access control' = 'контроль доступу на основі атрибутів'."
},
"attribute": {
"target": "атрибут",
"note": "Masculine."
},
"onboarding": {
"target": "адаптація",
"note": "Grounded in existing 'Увімкнути Адаптацію' / 'процес адаптації'."
},
"Town Square": {
"target": "Загальний канал",
"note": "Established default-channel name in server uk.json; keep consistent everywhere."
},
"Off-Topic": {
"target": "Офтопік",
"note": "Established default-channel name in server uk.json."
},
"read-only": {
"target": "лише для читання",
"note": "Grounded: 'Цей канал доступний лише для читання.'"
},
"server": {
"target": "сервер",
"note": "Masculine. Genitive 'сервера'."
}
}