08
WIKI
REPOSITORY / ScuroNeko/Laniakea
Wiki
猫
KNOWLEDGE
REPOSITORY
Page:
Localization RU
Pages
AGENTS
Auto Generated Commands RU
Auto Generated Commands
Bot Lifecycle RU
Bot Lifecycle
Bot Options and Configuration RU
Bot Options and Configuration
Commands and Plugins RU
Commands and Plugins
Drafts RU
Drafts
Error Handling RU
Error Handling
Framework Backlog RU
Framework Backlog
Getting Started RU
Getting Started
Home RU
Home
Inline Keyboards and Payloads RU
Inline Keyboards and Payloads
Localization RU
Localization
Logging RU
Logging
MessageContext RU
MessageContext
Middleware RU
Middleware
Migration RU
Migration
Policies RU
Policies
Rate Limiting RU
Rate Limiting
Recipes RU
Recipes
Rich Messages RU
Rich Messages
Runners RU
Runners
Scenes RU
Scenes
Semver and Releases RU
Semver and Releases
Sentry Integration RU
Sentry Integration
Testing Bots with Laniakea RU
Testing Bots with Laniakea
Update Routing Model RU
Update Routing Model
V2 Migration Plan RU
V2 Migration Plan
Webhook Runtime RU
Webhook Runtime
tgapi Overview RU
tgapi Overview
Clone
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.
Localization RU
English version: Localization
Это краткая русскоязычная версия страницы про L10n. Полная и наиболее актуальная страница: Localization.
Базовая модель
Localization в Laniakea строится вокруг L10n:
- создаешь store с fallback language;
- добавляешь переводы по ключам;
- подключаешь store к bot через
SetL10n(...); - внутри handler'ов используешь
ctx.Translate(key).
Как создать словарь
l10n := laniakea.NewL10n("en")
Fallback language используется, когда:
- у пользователя нет перевода для нужного key;
- язык пользователя неизвестен;
- для key нет конкретной локали, но есть fallback.
Как добавлять переводы
l10n.AddDictEntry("greeting", laniakea.DictEntry{
"en": "Hello",
"ru": "Привет",
})
Ключи лучше делать семантическими:
greetingerrors.deniedmenu.settings
Порядок fallback
L10n.Translate(lang, key) ищет:
- exact match для
lang; - fallback language;
- сам
key.
Поэтому отсутствие перевода не приводит к пустой строке.
Подключение к bot
bot.SetL10n(l10n)
После этого доступны:
bot.L10n(lang, key)ctx.Translate(key)
Если вызвать SetL10n(nil), бот залогирует предупреждение и оставит текущий provider без изменений.
ctx.Translate(...)
Это основной удобный вспомогательный метод внутри обработчиков.
Он:
- берет language code из
ctx.From, если он есть; - при необходимости использует fallback language;
- возвращает
key, если перевода нет.
Потокобезопасность
L10n безопасен для concurrent use.
Также AddDictEntry(...) копирует входной DictEntry, поэтому внешняя мутация исходной map не переписывает store неожиданно.
Что читать дальше
Navigation
Start here
Runtime and Architecture
- Bot-Lifecycle
- Webhook-Runtime
- Middleware
- Runners
- Error-Handling
- Logging
- Update-Routing-Model
- Policies
- Scenes
Interaction and Telegram API
- Inline-Keyboards-and-Payloads
- Auto-Generated-Commands
- Drafts
- Rich-Messages
- Localization
- Rate-Limiting
- tgapi-Overview