diff --git a/BetterCooldownManager.toc b/BetterCooldownManager.toc index 38db7db..a40beb2 100755 --- a/BetterCooldownManager.toc +++ b/BetterCooldownManager.toc @@ -15,6 +15,7 @@ Libraries/Init.xml # Load Locales Locales/enUS.lua Locales/koKR.lua +Locales/ruRU.lua # Load Modules Modules/Init.xml diff --git a/Core/GUI.lua b/Core/GUI.lua index 760d68e..ef3f740 100755 --- a/Core/GUI.lua +++ b/Core/GUI.lua @@ -15,7 +15,35 @@ local function LL(key) return (LocaleTable and rawget(LocaleTable, key)) or key end -local AnchorPoints = { { ["TOPLEFT"] = LL("Top Left"), ["TOP"] = LL("Top"), ["TOPRIGHT"] = LL("Top Right"), ["LEFT"] = LL("Left"), ["CENTER"] = LL("Center"), ["RIGHT"] = LL("Right"), ["BOTTOMLEFT"] = LL("Bottom Left"), ["BOTTOM"] = LL("Bottom"), ["BOTTOMRIGHT"] = LL("Bottom Right") }, { "TOPLEFT", "TOP", "TOPRIGHT", "LEFT", "CENTER", "RIGHT", "BOTTOMLEFT", "BOTTOM", "BOTTOMRIGHT", } } +local function SetFontForAceWidget(widget, fontSize) + if not widget or not widget.frame then return end + local font = BCDM.Media.Font + local flag = BCDM.db.profile.General.Fonts.FontFlag or "OUTLINE" + local textRegion = widget.frame.text or widget.frame:GetFontString() + if textRegion and textRegion.SetFont then + textRegion:SetFont(font, fontSize or 12, flag) + end + for _, child in ipairs({ widget.frame:GetRegions() }) do + if child and child.SetFont then + child:SetFont(font, fontSize or 12, flag) + end + end +end + +local AnchorPoints = { + { + ["TOPLEFT"] = LL("Top Left"), + ["TOP"] = LL("Top"), + ["TOPRIGHT"] = LL("Top Right"), + ["LEFT"] = LL("Left"), + ["CENTER"] = LL("Center"), + ["RIGHT"] = LL("Right"), + ["BOTTOMLEFT"] = LL("Bottom Left"), + ["BOTTOM"] = LL("Bottom"), + ["BOTTOMRIGHT"] = LL("Bottom Right"), + }, + { "TOPLEFT", "TOP", "TOPRIGHT", "LEFT", "CENTER", "RIGHT", "BOTTOMLEFT", "BOTTOM", "BOTTOMRIGHT", } +} local PowerNames = { [0] = LL("Mana"), @@ -605,6 +633,7 @@ local function AddItemSpellClassSpecFilterEditor(parentContainer, viewerKey, vie local classHeading = AG:Create("Heading") classHeading:SetText(classEntry.classLabel) classHeading:SetFullWidth(true) + SetFontForAceWidget(classHeading, 14) filterGroup:AddChild(classHeading) local specWidth = 0.25 @@ -652,6 +681,7 @@ local function PopulateClassSpecDropdown(dropdown, spellDB) classItem:SetText(classEntry.classLabel) classItem.userdata.obj = dropdown classItem.SetValue = function() end + SetFontForAceWidget(classItem, 12) local submenu = AG:Create("Dropdown-Pullout") submenu:SetHideOnLeave(true) @@ -740,7 +770,8 @@ end local function CreateInformationTag(containerParent, labelDescription, textJustification) local informationLabel = AG:Create("Label") informationLabel:SetText(BCDM.INFOBUTTON .. labelDescription) - informationLabel:SetFont("Fonts\\FRIZQT__.TTF", 12, "OUTLINE") + local fontFlag = BCDM.db.profile.General.Fonts.FontFlag or "OUTLINE" + informationLabel:SetFont(BCDM.Media.Font, 12, fontFlag) informationLabel:SetFullWidth(true) informationLabel:SetJustifyH(textJustification or "CENTER") informationLabel:SetHeight(24) @@ -836,10 +867,10 @@ local function CreateCustomGlowSettings(parentContainer) local glowType = AG:Create("Dropdown") glowType:SetLabel(LL("Glow Type")) glowType:SetList({ - Pixel = "Pixel", - Autocast = "Autocast", - Proc = "Proc", - Button = "Action Button", + Pixel = LL("Pixel"), + Autocast = LL("Autocast"), + Proc = LL("Proc"), + Button = LL("Action Button"), }) glowType:SetValue(glowSettings.Type or "Pixel") glowType:SetRelativeWidth(0.5) @@ -1221,7 +1252,8 @@ local function CreateGeneralSettings(parentContainer) local TwitchInteractive = AG:Create("InteractiveLabel") TwitchInteractive:SetText(LL("|TInterface\\AddOns\\BetterCooldownManager\\Media\\Support\\Twitch.png:25:21|t |cFF8080FFTwitch|r")) - TwitchInteractive:SetFont("Fonts\\FRIZQT__.TTF", 13, "OUTLINE") + local fontFlag = BCDM.db.profile.General.Fonts.FontFlag or "OUTLINE" + TwitchInteractive:SetFont(BCDM.Media.Font, 13, fontFlag) TwitchInteractive:SetJustifyV("MIDDLE") TwitchInteractive:SetRelativeWidth(0.33) TwitchInteractive:SetCallback("OnClick", function() BCDM:OpenURL(LL("Support Me on Twitch"), "https://www.twitch.tv/unhaltedgb") end) @@ -1231,7 +1263,7 @@ local function CreateGeneralSettings(parentContainer) local DiscordInteractive = AG:Create("InteractiveLabel") DiscordInteractive:SetText(LL("|TInterface\\AddOns\\BetterCooldownManager\\Media\\Support\\Discord.png:21:21|t |cFF8080FFDiscord|r")) - DiscordInteractive:SetFont("Fonts\\FRIZQT__.TTF", 13, "OUTLINE") + DiscordInteractive:SetFont(BCDM.Media.Font, 13, fontFlag) DiscordInteractive:SetJustifyV("MIDDLE") DiscordInteractive:SetRelativeWidth(0.33) DiscordInteractive:SetCallback("OnClick", function() BCDM:OpenURL(LL("Support Me on Discord"), "https://discord.gg/UZCgWRYvVE") end) @@ -1241,7 +1273,7 @@ local function CreateGeneralSettings(parentContainer) local GithubInteractive = AG:Create("InteractiveLabel") GithubInteractive:SetText(LL("|TInterface\\AddOns\\BetterCooldownManager\\Media\\Support\\Github.png:21:21|t |cFF8080FFGithub|r")) - GithubInteractive:SetFont("Fonts\\FRIZQT__.TTF", 13, "OUTLINE") + GithubInteractive:SetFont(BCDM.Media.Font, 13, fontFlag) GithubInteractive:SetJustifyV("MIDDLE") GithubInteractive:SetRelativeWidth(0.33) GithubInteractive:SetCallback("OnClick", function() BCDM:OpenURL(LL("Support Me on Github"), "https://github.com/dalehuntgb/BetterCooldownManager") end) @@ -2842,7 +2874,7 @@ local function CreateCastBarTextSettings(parentContainer) local spellName_MaxCharactersSlider = AG:Create("Slider") spellName_MaxCharactersSlider:SetLabel(LL("Max Characters")) spellName_MaxCharactersSlider:SetValue(BCDM.db.profile.CastBar.Text.SpellName.MaxCharacters) - spellName_MaxCharactersSlider:SetSliderValues(0, 32, 1) + spellName_MaxCharactersSlider:SetSliderValues(0, 64, 1) spellName_MaxCharactersSlider:SetCallback("OnValueChanged", function(self, _, value) BCDM.db.profile.CastBar.Text.SpellName.MaxCharacters = value BCDM:UpdateCastBar() end) spellName_MaxCharactersSlider:SetRelativeWidth(0.25) spellNameContainer:AddChild(spellName_MaxCharactersSlider) @@ -3126,6 +3158,7 @@ local function CreateProfileSettings(containerParent) local ActiveProfileHeading = AG:Create("Heading") ActiveProfileHeading:SetFullWidth(true) + --SetFontForAceWidget(ActiveProfileHeading, 14) ProfileContainer:AddChild(ActiveProfileHeading) local function RefreshProfiles() @@ -3216,6 +3249,7 @@ local function CreateProfileSettings(containerParent) local GlobalProfileHeading = AG:Create("Heading") GlobalProfileHeading:SetText(LL("Global Profile Settings")) GlobalProfileHeading:SetFullWidth(true) + --SetFontForAceWidget(GlobalProfileHeading, 14) ProfileContainer:AddChild(GlobalProfileHeading) CreateInformationTag(ProfileContainer, LL("If |cFF8080FFUse Global Profile Settings|r is enabled, the profile selected below will be used as your active profile.\nThis is useful if you want to use the same profile across multiple characters.")) @@ -3271,6 +3305,7 @@ local function CreateProfileSettings(containerParent) local ExportingHeading = AG:Create("Heading") ExportingHeading:SetText(LL("Exporting")) ExportingHeading:SetFullWidth(true) + --SetFontForAceWidget(ExportingHeading, 14) SharingContainer:AddChild(ExportingHeading) CreateInformationTag(SharingContainer, LL("You can export your profile by pressing |cFF8080FFExport Profile|r button below & share the string with other |cFF8080FFBetter|rCooldownManager users.")) @@ -3293,6 +3328,7 @@ local function CreateProfileSettings(containerParent) local ImportingHeading = AG:Create("Heading") ImportingHeading:SetText(LL("Importing")) ImportingHeading:SetFullWidth(true) + --SetFontForAceWidget(ImportingHeading, 14) SharingContainer:AddChild(ImportingHeading) CreateInformationTag(SharingContainer, LL("If you have an exported string, paste it in the |cFF8080FFImport String|r box below & press |cFF8080FFImport Profile|r.")) diff --git a/Locales/ruRU.lua b/Locales/ruRU.lua new file mode 100644 index 0000000..1f72014 --- /dev/null +++ b/Locales/ruRU.lua @@ -0,0 +1,308 @@ +local L = LibStub("AceLocale-3.0"):NewLocale("BetterCooldownManager", "ruRU") +if not L then return end + +-- ========== Основные разделы ========== +L["General"] = "Общие настройки" +L["Global"] = "Глобальные настройки" +L["Edit Mode Manager"] = "Менеджер макетов интерфейса" +L["Essential"] = "Основные способности" +L["Settings"] = "" +L["Utility"] = "Вспомогательные способности" +L["Buffs"] = "Положительные эффекты" +L["Custom"] = "Кастомная панель" +L["Additional Custom"] = "Доп. кастомная панель" +L["Item"] = "Предметы" +L["Trinkets"] = "Аксессуары" +L["Items & Spells"] = "Предметы и заклинания" +L["Power Bar"] = "Панель ресурса" +L["Secondary Power Bar"] = "Панель ресурса класса" +L["Cast Bar"] = "Панель применения" +L["Profiles"] = "Профили" + +-- ========== Якоря ========== +L["Top Left"] = "Верхний левый" +L["Top"] = "Верх" +L["Top Right"] = "Верхний правый" +L["Left"] = "Левый" +L["Center"] = "Центр" +L["Right"] = "Правый" +L["Bottom Left"] = "Нижний левый" +L["Bottom"] = "Низ" +L["Bottom Right"] = "Нижний правый" + +-- ========== Имена ресурсов ========== +L["Mana"] = "Мана" +L["Rage"] = "Ярость" +L["Focus"] = "Концентрация" +L["Energy"] = "Энергия" +L["Combo Points"] = "Очки комбо" +L["Runes"] = "Руны" +L["Runic Power"] = "Сила рун" +L["Soul Shards"] = "Осколки души" +L["Astral Power"] = "Астральная мощь" +L["Holy Power"] = "Сила света" +L["Maelstrom"] = "Водоворот" +L["Chi"] = "Ци" +L["Insanity"] = "Безумие" +L["Arcane Charges"] = "Заряды тайной магии" +L["Fury"] = "Неистовство" +L["Pain"] = "Боль" +L["Essence"] = "Эссенция" +L["Stagger"] = "Пошатывание" +L["Soul Fragments"] = "Фрагменты души" +L["Soul"] = "Душа" +L["Rune on Cooldown"] = "Восстановление руны" +L["Charged Combo Points"] = "Заряженные очки комбо" +L["Essence on Cooldown"] = "Восстановление эссенции" +L["Frost"] = "Лед" +L["Unholy"] = "Нечестивость" +L["Blood"] = "Кровь" +L["Light Stagger"] = "Лёгкое пошатывание" +L["Moderate Stagger"] = "Среднее пошатывание" +L["Heavy Stagger"] = "Тяжёлое пошатывание" + +-- ========== Имена классов ========== +L["DEATHKNIGHT"] = "Рыцарь смерти" +L["DRUID"] = "Друид" +L["HUNTER"] = "Охотник" +L["MAGE"] = "Маг" +L["MONK"] = "Монах" +L["PALADIN"] = "Паладин" +L["PRIEST"] = "Жрец" +L["ROGUE"] = "Разбойник" +L["SHAMAN"] = "Шаман" +L["WARLOCK"] = "Чернокнижник" +L["WARRIOR"] = "Воин" +L["DEMONHUNTER"] = "Охотник на демонов" +L["EVOKER"] = "Пробудитель" + +-- ========== Support messages ========== +L["Join the |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Support\\Discord.png:18:18|t |cFF8080FFDiscord|r Community!"] = "Присоединяйтесь к сообществу |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Support\\Discord.png:18:18|t |cFF8080FFDiscord|r!" +L["Report Issues / Feedback on |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Support\\GitHub.png:18:18|t |cFF8080FFGitHub|r!"] = "Сообщить о проблемах / отзыв на |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Support\\GitHub.png:18:18|t |cFF8080FFGitHub|r!" +L["Follow Me on |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Support\\Twitch.png:18:14|t |cFF8080FFTwitch|r!"] = "Подписывайтесь на |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Support\\Twitch.png:18:14|t |cFF8080FFTwitch|r!" +L["|cFF8080FFSupport|r is truly appreciated |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Emotes\\peepoLove.png:18:18|t |cFF8080FFDevelopment|r takes time & effort."] = "|cFF8080FFВаша поддержка|r очень ценится |TInterface\\AddOns\\UnhaltedUnitFrames\\Media\\Emotes\\peepoLove.png:18:18|t |cFF8080FFРазработка|r требует времени и усилий." + +-- ========== Data dropdown ========== +L["Class Spells"] = "Классовые заклинания" +L["Racials"] = "Расовые способности" +L["Items"] = "Предметы" +L["Unknown"] = "Неизвестно" + +-- ========== Основные настройки ========== +L["Power Colours"] = "Цвета ресурсов" +L["Primary Colours"] = "Основные цвета" +L["Secondary Colours"] = "Вторичные цвета" +L["Death Knight Rune Colours"] = "Цвета рун рыцаря смерти" +L["Stagger Colours"] = "Цвета рассеивания" +L["Rune"] = "Руна" +L["Reset Power Colours"] = "Сбросить цвета ресурсов" +L["How To Support"] = "Как поддержать" +L["Development"] = "разработку" +L["Support Me on Twitch"] = "Поддержать на Twitch" +L["Support Me on Discord"] = "Поддержать в Discord" +L["Support Me on Github"] = "Поддержать на GitHub" + +-- ========== Глобальные настройки ========== +L["Global Settings"] = "Глобальные настройки" +L["Enable Skinning - |cFFFF4040Reload|r Required."] = "Включить стилизацию - требуется |cFFFF4040перезагрузка|r." +L["Disable Aura Overlay"] = "Отключить наложение ауры" +L["Display Login Message"] = "Показывать сообщение при входе" +L["Icon Zoom"] = "Масштаб иконки" +L["Border Size"] = "Размер границы" +L["Font Settings"] = "Настройки шрифта" +L["Font"] = "Шрифт" +L["Font Size"] = "Размер шрифта" +L["Font Colour"] = "Цвет шрифта" +L["Font Flag"] = "Стиль шрифта" +L["Font Shadows"] = "Тени шрифта" +L["Enable"] = "Включить" +L["Shadow Colour"] = "Цвет тени" +L["Shadow Offset X"] = "Смещение тени по X" +L["Shadow Offset Y"] = "Смещение тени по Y" +L["Texture Settings"] = "Настройки текстур" +L["Foreground Texture"] = "Текстура переднего плана" +L["Background Texture"] = "Текстура фона" +L["Animation Settings"] = "Настройки анимации" +L["Smooth Bar Animation - Applies to |cFF8080FFCast Bar|r, |cFF8080FFPower Bar|r and |cFF8080FFSecondary Power Bar|r."] = "Плавная анимация панелей - применяется к |cFF8080FFпанели произнесения|r, |cFF8080FFпанели ресурса|r и |cFF8080FFпанели ресурса класса|r." +L["Cooldown Text Settings"] = "Настройки текста восстановления" +L["Text Colour"] = "Цвет текста" +L["Scale By Icon Size"] = "Масштабировать по размеру иконки" + +-- ========== Пользовательское свечение ========== +L["Custom Glows"] = "Пользовательское свечение" +L["Enable Custom Glow"] = "Включить пользовательское свечение" +L["Glow Options"] = "Настройки свечения" +L["Glow Type"] = "Тип свечения" +L["Action Button"] = "Кнопка действия" +L["Pixel"] = "Пиксельное" +L["Autocast"] = "Автоприменение" +L["Proc"] = "Прок" +L["Frequency"] = "Частота" +L["Lines"] = "Линии" +L["Length"] = "Длина" +L["Thickness"] = "Толщина" +L["Border"] = "Граница" +L["Start Animation"] = "Запускать анимацию" +L["Duration"] = "Длительность" +L["Particles"] = "Частицы" +L["Scale"] = "Масштаб" +L["Glow Color"] = "Цвет свечения" + +-- ========== Настройки текста ========== +L["Anchor From"] = "Привязать от" +L["Anchor To"] = "Привязать к" +L["X Offset"] = "Смещение по X" +L["Y Offset"] = "Смещение по Y" + +-- ========== Менеджер макетов интерфейса ========== +L["Edit Mode Manager Settings"] = "Настройки менеджера макетов интерфейса" +L["Layouts"] = "Макеты" +L["Raid Difficulty Settings"] = "Настройки сложности рейда" +L["Define |cFF8080FFEdit Mode Layouts|r for Different Raid Difficulties."] = "Определите |cFF8080FFмакеты менеджера макетов интерфейса|r для разных сложностей рейда." +L["Swap on Instance Difficulty"] = "Переключать при сложности подземелья" +L["Layout"] = "Макет" + +-- ========== Отображение текста восстановления ========== +L["Buff Viewer Settings"] = "Настройки панели баффов" +L["Center Buffs (Horizontally or Vertically) - |cFFFF4040Reload|r Required."] = "Центрировать баффы (горизонтально или вертикально) - требуется |cFFFF4040перезагрузка|r." +L["Center Second Row (Horizontally) - |cFFFF4040Reload|r Required."] = "Центрировать второй ряд (горизонтально) - требуется |cFFFF4040перезагрузка|r." +L["Enable Trinket Viewer"] = "Включить панель аксессуаров" +L["Layout & Positioning"] = "Макет и позиционирование" +L["|cFFFFCC00Padding|r is handled by |cFF00B0F7Blizzard|r, not |cFF8080FFBetter|rCooldownManager."] = "|cFFFFCC00Отступы|r обрабатываются |cFF00B0F7Blizzard|r, а не |cFF8080FFBetter|rCooldownManager." +L["Anchor To Parent"] = "Привязать к родителю" +L["Growth Direction"] = "Направление роста" +L["Icon Spacing"] = "Расстояние между иконками" +L["Wrap After"] = "Перенос после" +L["Icon Settings"] = "Настройки иконок" +L["Keep Aspect Ratio"] = "Сохранять пропорции" +L["Hide Items with Zero Charges/Uses"] = "Скрывать предметы с нулевым количеством зарядов/использований" +L["Show Item Quality"] = "Показывать качество предмета" +L["Icon Size"] = "Размер иконки" +L["Icon Width"] = "Ширина иконки" +L["Icon Height"] = "Высота иконки" +L["Size changes will be applied on closing the |cFF8080FFBetter|rCooldownManager Configuration Window."] = "Изменения размера будут применены после закрытия окна настроек |cFF8080FFBetter|rCooldownManager." +L["Update"] = "Обновить" +L["Frame Strata"] = "Слой фрейма" +L["Custom Spells"] = "Пользовательские заклинания" +L["Custom Items"] = "Пользовательские предметы" +L["Tracking |cFF8080FFmultiple ranks|r of the same item is supported & will display the item with the highest rank."] = "Поддерживается отслеживание |cFF8080FFнескольких рангов|r одного предмета, будет отображаться предмет с наивысшим рангом." +L["Items & Spells"] = "Предметы и заклинания" +L["|cFFFFCC00Spells|r can be added by their |cFF8080FFSpell Name|r or |cFF8080FFSpell ID|r, |cFFFFCC00Items|r must be added by their |cFF8080FFItem ID|r."] = "|cFFFFCC00Заклинания|r можно добавлять по |cFF8080FFназванию|r или |cFF8080FFID|r, |cFFFFCC00предметы|r — только по |cFF8080FFID предмета|r." + +-- ========== Настройка умений ========== +L["Add Racials"] = "Добавить расовые способности" +L["Remove Racials"] = "Удалить расовые способности" +L["This will add all racials to every single class & specialization on your profile."] = "Это добавит все расовые способности для каждого класса и специализации в вашем профиле." +L["This will remove all racials from every single class & specialization on your profile."] = "Это удалит все расовые способности для каждого класса и специализации в вашем профиле." +L["Select a Class & Specialization"] = "Выберите класс и специализацию" +L["Add Spell by ID or Spell Name"] = "Добавить заклинание по ID или названию" +L["Spell List"] = "Список заклинаний" +L["Add Item by ID"] = "Добавить предмет по ID" +L["Item List"] = "Список предметов" +L["Spell & Item List"] = "Список заклинаний и предметов" +L["Up"] = "Вверх" +L["Down"] = "Вниз" +L["X"] = "X" +L["Load"] = "Загрузить" +L["Hide"] = "Скрыть" +L["Load Conditions"] = "Условия загрузки" +L["Always"] = "Всегда" +L["No Specializations Available"] = "Нет доступных специализаций" +L["No Specializations Selected"] = "Не выбрано ни одной специализации" +L["All Specializations Selected"] = "Выбраны все специализации" +L["%d of %d Specializations Selected"] = "Выбрано %d из %d специализаций" + +-- ========== Настройки панели ресурсов ========== +L["Toggles & Colours"] = "Переключатели и цвета" +L["Enable Power Bar"] = "Включить панель ресурса" +L["Colour By Power Type"] = "Цвет по типу ресурса" +L["Colour By Class"] = "Цвет по классу" +L["Match Width Of Anchor"] = "Совпадать с шириной якоря" +L["Frequent Updates"] = "Частые обновления" +L["Foreground Colour"] = "Цвет переднего плана" +L["Background Colour"] = "Цвет фона" +L["Width"] = "Ширина" +L["Height"] = "Высота" +L["Height (No Secondary Power)"] = "Высота (без дополнительного ресурса)" +L["Enable Power Text"] = "Включить текст ресурса" + +-- ========== Настройки панели ресурсов класса ========== +L["Colours are applied in the order they are displayed here. It'll always colour by |cFF8080FFpower type|r first, then by |cFF8080FFclass|r.\nFor |cFFC41E3ADeath Knights|r and |cFF00FF98Monks|r, specialization/state colours are applied last."] = "Цвета применяются в порядке отображения: сначала |cFF8080FFтип ресурса|r, затем |cFF8080FFкласс|r.\nДля |cFFC41E3Aрыцарей смерти|r и |cFF00FF98монахов|r последними применяются цвета специализации/состояния." +L["Hide Ticks"] = "Скрыть деления" +L["Colour by Specialization"] = "Цвет по специализации" +L["Colour by Stagger"] = "Цвет по пошатыванию" +L["Stagger Damage Per Second"] = "Урон от пошатывания в секунду" +L["Swap To Power Bar Position"] = "Заменить панель ресурса" +L["Height (No Primary Bar)"] = "Высота (без основной панели)" +L["Enable Text"] = "Включить текст" + +-- ========== Настройки панели применения заклинаний ========== +L["Enable Cast Bar"] = "Включить панель произнесения" +L["Enable Cast Icon"] = "Включить иконку произнесения" +L["Icon Position"] = "Положение иконки" +L["Spell Name Settings"] = "Настройки названия заклинания" +L["Cast Time Settings"] = "Настройки времени произнесения" +L["Max Characters"] = "Макс. символов" + +-- ========== Настройки профилей ========== +L["Profile Management"] = "Управление профилями" +L["Select..."] = "Выбрать..." +L["Copy From..."] = "Копировать из..." +L["Delete..."] = "Удалить..." +L["Reset"] = "Сбросить" +L["Profile"] = "профиль" +L["Profile Name:"] = "Имя профиля:" +L["Create Profile"] = "Создать профиль" +L["Global Profile Settings"] = "Настройки глобального профиля" +L["If |cFF8080FFUse Global Profile Settings|r is enabled, the profile selected below will be used as your active profile.\nThis is useful if you want to use the same profile across multiple characters."] = "Если |cFF8080FFиспользовать глобальный профиль|r включено, выбранный ниже профиль будет активным.\nЭто удобно, если вы хотите использовать один профиль на нескольких персонажах." +L["Use Global Profile Settings"] = "Использовать глобальный профиль" +L["Global Profile..."] = "Глобальный профиль..." +L["Specialization Profiles"] = "Профили специализаций" +L["Enable Specialization Profiles"] = "Включить профили специализаций" +L["Spec %d"] = "Спец. %d" +L["Profile Sharing"] = "Обмен профилями" +L["Exporting"] = "Экспорт" +L["You can export your profile by pressing |cFF8080FFExport Profile|r button below & share the string with other |cFF8080FFBetter|rCooldownManager users."] = "Вы можете экспортировать профиль, нажав кнопку |cFF8080FFЭкспорт профиля|r, и поделиться строкой с другими пользователями |cFF8080FFBetter|rCooldownManager." +L["Export String..."] = "Строка экспорта..." +L["Export Profile"] = "Экспорт профиля" +L["Importing"] = "Импорт" +L["If you have an exported string, paste it in the |cFF8080FFImport String|r box below & press |cFF8080FFImport Profile|r."] = "Если у вас есть экспортированная строка, вставьте её в поле |cFF8080FFСтрока импорта|r и нажмите |cFF8080FFИмпорт профиля|r." +L["Import String..."] = "Строка импорта..." +L["Import Profile"] = "Импорт профиля" + +-- ========== Диалоги ========== +L["You must reload to apply this change, do you want to reload now?"] = "Для применения изменения требуется перезагрузка. Перезагрузить сейчас?" +L["Reload Now"] = "Перезагрузить сейчас" +L["Later"] = "Позже" +L["You must |cFFFF4040reload|r in order for changes to take effect. Do you want to reload now?"] = "Чтобы изменения вступили в силу, необходима |cFFFF4040перезагрузка|r. Перезагрузить сейчас?" +L["Reload"] = "Перезагрузить" +L["Cancel"] = "Отмена" +L["Copy Profile"] = "Копировать профиль" +L["Are you sure you want to copy from"] = "Вы уверены, что хотите скопировать из" +L["This will |cFFFF4040overwrite|r your current profile settings."] = "Это |cFFFF4040перезапишет|r текущие настройки профиля." +L["Delete Profile"] = "Удалить профиль" +L["Are you sure you want to delete"] = "Вы уверены, что хотите удалить" + +-- ========== Сообщения экспорта / импорта ========== +L["Invalid Import String."] = "Неверная строка импорта." + +-- ========== Родители якорей ========== +L["|cFF00AEF7Blizzard|r: Essential Cooldown Viewer"] = "|cFF00AEF7Blizzard|r: Основная панель восстановлений" +L["|cFF00AEF7Blizzard|r: Utility Cooldown Viewer"] = "|cFF00AEF7Blizzard|r: Вспомогательная панель восстановлений" +L["|cFF00AEF7Blizzard|r: UIParent"] = "|cFF00AEF7Blizzard|r: Родительский UI" +L["|cFF00AEF7Blizzard|r: Player Frame"] = "|cFF00AEF7Blizzard|r: Рамка игрока" +L["|cFF00AEF7Blizzard|r: Target Frame"] = "|cFF00AEF7Blizzard|r: Рамка цели" +L["|cFF8080FFBCDM|r: Power Bar"] = "|cFF8080FFBCDM|r: Панель ресурса" +L["|cFF8080FFBCDM|r: Secondary Power Bar"] = "|cFF8080FFBCDM|r: Доп. панель ресурса" +L["|cFF8080FFBCDM|r: Cast Bar"] = "|cFF8080FFBCDM|r: Панель произнесения" +L["|cFF8080FFBCDM|r: Custom Bar"] = "|cFF8080FFBCDM|r: Пользовательская панель" +L["|cFF8080FFBCDM|r: Additional Custom Bar"] = "|cFF8080FFBCDM|r: Доп. пользовательская панель" +L["|cFF8080FFBCDM|r: Item Bar"] = "|cFF8080FFBCDM|r: Панель предметов" +L["|cFF8080FFBCDM|r: Items/Spells Bar"] = "|cFF8080FFBCDM|r: Панель предметов/заклинаний" +L["|cFF8080FFBCDM|r: Trinket Bar"] = "|cFF8080FFBCDM|r: Панель аксессуаров" + +-- ========== Разное ========== +L["SpellID"] = "ID заклинания" +L["ID"] = "ID" +L["'|cFF8080FF/bcdm|r' for in-game configuration."] = "|cFF8080FF/bcdm|r — для настройки в игре." +L["Text Settings"] = "Настройки текста" diff --git a/Modules/CastBar.lua b/Modules/CastBar.lua index 7e02db1..44ae559 100755 --- a/Modules/CastBar.lua +++ b/Modules/CastBar.lua @@ -15,7 +15,13 @@ local function GetDisplayCastText(text, maxChars) if BCDM:IsSecretValue(text) then return text end - return string.sub(text, 1, maxChars) + if maxChars == 0 then + return text + end + if strlenutf8(text) > maxChars then + return string.utf8sub(text, 1, maxChars) .. "..." + end + return text end local function FetchCastBarColour()