A Flamescale Wyrmkin
Join Date: Jan 2024
Posts: 131
|
Originally Posted by Fizzlemizz
Because the original table wasn't set up with localised names, we were just dealing with the announce texts.
To add localise names you woud have to convert ALL the name entried to tables:
Data
Lua Code:
local addonName, addon = ... addon.db = { { name = { enUS = "Emerald Mark of Mastery", deDE = "German for Emerald Mark of Mastery", } questID = 75612, icon = "interface/icons/inv_mushroom_11", announce = { enUS = { -- the text to display for english text = "Awarded for %s outstanding service %s to Dragonkind.\n%s\nBring it to Theozhaklos the Curious at the Wellspring \nOverlook in the Emerald %s Dream to receive powerful \nequipment for your efforts", itemOrder = { -- the order to display the items in english 210399, 210400, 210401, 210402, }, }, deDE = { -- the text to display for german text = "The items %s might be %s in a different %s order of items %s in german", itemOrder = { -- the order to display the items in german 210401, 210402, 210399, 210400, }, }, }, }, { name = { enUS = "Name number 2", deDE = "German for Name number 2", } questID = 75624, icon = "interface/icons/inv_mushroom_11", announce = { enUS = { -- the text to display for english text = "Awarded for outstanding service to Dragonkind.\n%s\nBring it to Theozhaklos the Curious at the Wellspring \nOverlook in the Emerald Dream to receive powerful \nequipment for your efforts", itemOrder = { -- the order to display the items in english 20897, }, }, deDE = { -- the text to display for german text = "Only one %s in this entry", itemOrder = { -- the order to display the items in german 20897, }, }, } }, }
And change the tinsert line in the updateData() function to reflect the change
Code
Lua Code:
local addonName, addon = ... -- function to show the item tooltip when a hyperlink is clicked local function OnHyperlinkClick(self, link, text, region, left, bottom, width, heigh) -- Show the hyperling tooltip when clicked SetItemRef(link, text, nil, self); end local CELL_WIDTH = 400 local CELL_HEIGHT = 80 local NUM_CELLS = 2 local data = {} local f = CreateFrame("Frame", "SimpleScrollFrameTableDemo", UIParent, "BasicFrameTemplateWithInset") -- Create the button here local btn = CreateFrame("Button", nil, UIParent, "UIPanelButtonTemplate") local locale = GetLocale() -- get the current locale eg. "frFR" local function updateData() wipe(data) for _, item in ipairs(addon.db) do local announceText = item.announce[locale].text or item.announce.enUS.text -- default to enUS if the locale text doesn't exist. tinsert(data, {announceText, item.icon, item.name[locale] or item.name.enUS}) end end f:SetSize(CELL_WIDTH * NUM_CELLS + 80, 600) f:SetPoint("CENTER") f:Hide() f:SetMovable(true) f:SetScript("OnMouseDown", f.StartMoving) f:SetScript("OnMouseUp", f.StopMovingOrSizing) -- I added this OnHide script f:SetScript("OnHide", function() btn:Show() end) f.scrollFrame = CreateFrame("ScrollFrame", nil, f, "UIPanelScrollFrameTemplate") f.scrollFrame:SetPoint("TOPLEFT", 12, -32) f.scrollFrame:SetPoint("BOTTOMRIGHT", -34, 8) f.scrollFrame.scrollChild = CreateFrame("Frame", nil, f.scrollFrame) f.scrollFrame.scrollChild:SetSize(100, 100) f.scrollFrame.scrollChild:SetPoint("TOPLEFT", 5, -5) f.scrollFrame:SetScrollChild(f.scrollFrame.scrollChild) local content = f.scrollFrame.scrollChild content.rows = {} local function updateList() for i = 1, #data do if not content.rows[i] then local button = CreateFrame("Button", nil, content) button:SetSize(CELL_WIDTH * NUM_CELLS, CELL_HEIGHT) button:SetPoint("TOPLEFT", 0, -(i - 1) * CELL_HEIGHT) button.columns = {} --------------------------------------------------------------------------------------------------- -- code to make item links work button:SetHyperlinksEnabled(true) -- Setup hyperlinking for each row button:SetScript("OnHyperlinkClick", OnHyperlinkClick) -- What to do when a link is clicked --------------------------------------------------------------------------------------------------- button.columns[1] = button:CreateFontString(nil, "ARTWORK", "GameFontHighlight") button.columns[1]:SetPoint("TOPLEFT", (0) * CELL_WIDTH, 0) button.columns[1]:SetPoint("BOTTOMRIGHT", button, "BOTTOMLEFT", CELL_WIDTH, 0) button.columns[2] = button:CreateTexture() button.columns[2]:SetPoint("LEFT", 410, 0, (1) * CELL_WIDTH, 0) button.columns[3] = button:CreateFontString(nil, "ARTWORK", "GameFontHighlight") button.columns[3]:SetPoint("LEFT", 480, 0, (2) * CELL_WIDTH, 0) content.rows[i] = button end content.rows[i].columns[1]:SetText(data[i][1]) content.rows[i].columns[2]:SetTexture(data[i][2]) content.rows[i].columns[3]:SetText(data[i][3]) content.rows[i]:Show() end for i = #data + 1, #content.rows do content.rows[i]:Hide() end end -- Set your button options here local btn = CreateFrame("Button", "Hubb777MovingButton", UIParent, "UIPanelButtonTemplate") btn:SetPoint("CENTER") btn:SetSize(100, 40) btn:SetText("Rewards") btn:SetMovable(true) btn:RegisterForDrag('LeftButton') btn:RegisterForClicks("AnyDown", "AnyUp") btn:SetUserPlaced(true) btn:SetScript('OnDragStart', function(self, button, down) if button == "LeftButton" and IsShiftKeyDown() then self:StartMoving() end end) btn:SetScript('OnDragStop', function(self) self:StopMovingOrSizing() end) btn:SetScript("OnMouseUp", function(self, button, ...) if (button == "RightButton" and self:IsVisible()) then self:Hide() elseif button == "LeftButton" and not IsShiftKeyDown() then updateData() updateList() f:Show() end end) SLASH_HUBB1 = "/hubb" SlashCmdList["HUBB"] = function(msg) if strupper(strtrim(msg)) == "BTN" then -- toggle the shown state of the button if the type /hubb btn btn:SetShown(not btn:IsShown()) -- show the button return end updateData() updateList() f:Show() end
|
I used your example but it still didn't work
|