View Single Post
08/09/21, 04:40 AM   #2
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,989
You should reuse the given translation constants SI_* instead of re-defining them again. So that your languages de, en, fr, jp, ru are set without any big effort.
They can be found here:
https://raw.githubusercontent.com/es...tedstrings.lua

Would bring you this as EN:

You could even improve this and just define some words liker ecipe, recipes, solvent, poison, potion as a local variable, add it to a table like myAddon.translationConstants.recipe = GetString(SI_ITEMTYPE29) and re-use it in your translation files then wth a local pointer e.g.
local local translationConstants = myAddon.translationConstants
local recipe = translationConstants .recipe

Code:
SI_IJAEA_EASYALCHEMY                = "Easy Alchemy",
    SI_IJAEA_SAVEDRECIPES               = "Saved " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21),
    SI_IJAEA_SAVEDALCHEMY_SAVED         = GetString(SI_ITEMTYPE29) .. " Saved.",
    
    SI_IJAEA_DELETE_OPTION              = "Delete " ..GetString(SI_ITEMTYPE29),
    SI_IJAEA_DELETE_MOUSEOVER           = "Right-click to delete",
    
    SI_IJAEA_EASYALCHEMY_HEADER1        = GetString(SI_SMITHING_HEADER_ITEM):lower(),
    SI_IJAEA_EASYALCHEMY_HEADER2        = GetString(SI_ALCHEMY_SOLVENT_HEADER):lower(),
    SI_IJAEA_EASYALCHEMY_HEADER2        = GetString(SI_ALCHEMY_SOLVENT_HEADER):lower(),
    SI_IJAEA_EASYALCHEMY_HEADER3        = GetString(SI_SMITHING_HEADER_TRAIT) .. " 1",
    SI_IJAEA_EASYALCHEMY_HEADER4        = GetString(SI_SMITHING_HEADER_TRAIT) .. " 2",
    SI_IJAEA_EASYALCHEMY_HEADER5        = GetString(SI_SMITHING_HEADER_TRAIT) .. " 3",
    
    SI_IJAEA_EASYALCHEMY_HEADER_SOLVENT1        = GetString(SI_ITEMTYPEDISPLAYCATEGORY22),
    SI_IJAEA_EASYALCHEMY_HEADER_SOLVENT2    = GetString(SI_ITEMTYPEDISPLAYCATEGORY23),
    
    SI_IJAEA_NOSAVES_POISONS            = "No saved " ..GetString(SI_ITEMTYPEDISPLAYCATEGORY23):lower(),
    SI_IJAEA_NOSAVES_POTIONS            = "No saved " ..GetString(SI_ITEMTYPEDISPLAYCATEGORY22):lower(),
    SI_IJAEA_NOSAVES_ALL                = "No saved " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY22):lower() .. " or " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY23):lower(),
------------------------------------------------
-- Settings
------------------------------------------------
    SI_IJAEA_SETTING_SAVEPERCHARACTER = "Save settings as Character",
    SI_IJAEA_SETTING_SAVEPERCHARACTER_TOOLTIP = "Disabled: settings are saved for the account.\nEnabled: settings will be saved separately for each character.",
 
    SI_IJAEA_HEADER_ALCHEMYSAVES = "Saved " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY14) .. " " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21),
    
    SI_IJAEA_SETTING_CLEARSAVES = "Clear Saved " ..GetString(SI_ITEMTYPEDISPLAYCATEGORY21):lower(),
    SI_IJAEA_SETTING_CLEARSAVES_TOOLTIP = "Deletes all saved " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21):lower(),
    
------------------------------------------------
-- Dialogues
------------------------------------------------
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TITLE = "Delete selected " .. GetString(SI_ITEMTYPE29):lower(),
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TEXT = "Do you want to delete <<1>> from the saved " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21):lower()  .."?",
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TRAIT1 = "|cffffffWith the following "..GetString(SI_SMITHING_HEADER_TRAIT)..":|r\n\t\t<<1>>",
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TRAIT2 = "|cffffffWith the following "..GetString(SI_SMITHING_HEADER_TRAIT)..":|r\n\t\t<<1>>\n\t\t<<2>>\n\t\t<<3>>",
    SI_IJAEA_INVALIDRECIPE = "Invalid " .. GetString(SI_ITEMTYPE29),
    
}

DE:
Code:
SI_IJAEA_EASYALCHEMY                = "Easy Alchemy",
    SI_IJAEA_SAVEDRECIPES               = "Gespeicherte " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21),
    SI_IJAEA_SAVEDALCHEMY_SAVED         = GetString(SI_ITEMTYPE29) .. " gespeichert.",
    
    SI_IJAEA_DELETE_OPTION              = GetString(SI_ITEMTYPE29) .. " löschen,
    SI_IJAEA_DELETE_MOUSEOVER           = "Rechtsklick zum Löschen",
    
    SI_IJAEA_EASYALCHEMY_HEADER1        = GetString(SI_SMITHING_HEADER_ITEM):lower(),
    SI_IJAEA_EASYALCHEMY_HEADER2        = GetString(SI_ALCHEMY_SOLVENT_HEADER):lower(),
    SI_IJAEA_EASYALCHEMY_HEADER2        = GetString(SI_ALCHEMY_SOLVENT_HEADER):lower(),
    SI_IJAEA_EASYALCHEMY_HEADER3        = GetString(SI_SMITHING_HEADER_TRAIT) .. " 1",
    SI_IJAEA_EASYALCHEMY_HEADER4        = GetString(SI_SMITHING_HEADER_TRAIT) .. " 2",
    SI_IJAEA_EASYALCHEMY_HEADER5        = GetString(SI_SMITHING_HEADER_TRAIT) .. " 3",
    
    SI_IJAEA_EASYALCHEMY_HEADER_SOLVENT1        = GetString(SI_ITEMTYPEDISPLAYCATEGORY22),
    SI_IJAEA_EASYALCHEMY_HEADER_SOLVENT2    = GetString(SI_ITEMTYPEDISPLAYCATEGORY23),
    
    SI_IJAEA_NOSAVES_POISONS            = "Nicht gespeicherte " ..GetString(SI_ITEMTYPEDISPLAYCATEGORY23):lower(),
    SI_IJAEA_NOSAVES_POTIONS            = "Nicht gespeicherte " ..GetString(SI_ITEMTYPEDISPLAYCATEGORY22):lower(),
    SI_IJAEA_NOSAVES_ALL                = "Nicht gespeicherte " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY22):lower() .. " oder " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY23):lower(),
------------------------------------------------
-- Settings
------------------------------------------------
    SI_IJAEA_SETTING_SAVEPERCHARACTER = "Sichere Einstellungen je Charakter",
    SI_IJAEA_SETTING_SAVEPERCHARACTER_TOOLTIP = "Deaktiviert: Einstellungen werden für den gesamten Account gespeichert.\nAktiviert: Einstellungen werden je Charakter einzeln gespeichert.",
 
    SI_IJAEA_HEADER_ALCHEMYSAVES = "Gespeicherte " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY14) .. " " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21),
    
    SI_IJAEA_SETTING_CLEARSAVES = "Leere gespeicherte " ..GetString(SI_ITEMTYPEDISPLAYCATEGORY21):lower(),
    SI_IJAEA_SETTING_CLEARSAVES_TOOLTIP = "Löscht alle gespeicherten " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21):lower(),
    
------------------------------------------------
-- Dialogues
------------------------------------------------
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TITLE = "Lösche ausgewählte " .. GetString(SI_ITEMTYPE29):lower(),
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TEXT = "Wirklich <<1>> von den Gespeicherten " .. GetString(SI_ITEMTYPEDISPLAYCATEGORY21):lower()  .."löschen?",
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TRAIT1 = "|cffffffMit diesem "..GetString(SI_SMITHING_HEADER_TRAIT)..":|r\n\t\t<<1>>",
    SI_IJAEA_SAVEDALCHEMY_CONFIRMDELETE_TRAIT2 = "|cffffffMit diesem " ..GetString(SI_SMITHING_HEADER_TRAIT)..":|r\n\t\t<<1>>\n\t\t<<2>>\n\t\t<<3>>",
    SI_IJAEA_INVALIDRECIPE = "Ungültiges " .. GetString(SI_ITEMTYPE29),
    
}
And please be sure to use zo_strformat(SI_UNIT_NAME, recipeName) in your code for the recipe names so that the gender suffix ^mp etc. will be cut off!
Also please make sure that the SavedVariables use the character ID and not the name AND store the settings differently per server, via GetWorldName() as profile e.g. in ZO_SavedVars function.
Thank you very much!

Last edited by Baertram : 08/09/21 at 04:45 AM.
  Reply With Quote