Version 0.8.0-beta
- handle replacement via slash command - emote and ooc detection - de-/activate single mappings - move buttons and mappings are disabled when already at top/bottom or deactivated - minimap button is darkened when addon is disabled - help tab with examples - right-click on minimap button quickly de-/activates replacements - fixed mapping to raid warning, instance and battleground chats - localized raid target markers - capital % substitutions - incorrect consolidation - Umlaut and accent replacements
This commit is contained in:
@@ -1,18 +1,36 @@
|
||||
local L = LibStub('AceLocale-3.0'):NewLocale('Grichelde', 'deDE')
|
||||
-- read namespace from global env
|
||||
local AddonName, _ = ...
|
||||
local _G = _G
|
||||
local Grichelde = _G.Grichelde
|
||||
|
||||
local L = LibStub('AceLocale-3.0'):NewLocale(AddonName, 'deDE')
|
||||
if not L then return end
|
||||
|
||||
local cYellow = Grichelde.functions.cYellow
|
||||
local cGray = Grichelde.functions.cGray
|
||||
local cPrefix = Grichelde.functions.cPrefix
|
||||
|
||||
-- system messages
|
||||
L.AddonName = "Grichelde"
|
||||
L.VersionAbbr = "v"
|
||||
L.AddonLoaded = "%s hilft Euch jetzt bei euren Sprachschwierigkeiten."
|
||||
L.AddonNamePlusVersion = "%s v%s"
|
||||
L.AddonLoaded = "%s unterst\195\188tzt Euch jetzt bei euren Sprachschwierigkeiten."
|
||||
L.AddonUnloaded = "%s wartet geduldig Euch weiter unterst\195\188tzen zu d\195\188rfen."
|
||||
L.Upgrade_ToVersion = "Hebe Databank auf Version %s an."
|
||||
L.Upgrade_Successful = "Upgrade erfolgreich."
|
||||
|
||||
-- debug
|
||||
L.Debug_Options = "Optionen"
|
||||
L.Debug_Mappings = "Ersetzungen"
|
||||
L.Debug_Mappings_Hint = "Der Inhalt der Textbox dient nur zur Fehlersuche und kann herauskopiert werden. Es werden keine Werte aus dieser Textbox eingelesen oder anderweitig verwertet."
|
||||
L.Debug_Mappings_Found = "%d Ersetzungen gefunden"
|
||||
L.Debug_Profile = "Profil"
|
||||
|
||||
-- errors
|
||||
L.Error_InvalidCommand = "Ung\195\188ltiger Befehl"
|
||||
L.Error_InvalidChannel = "Ung\195\188ltiger Kanal"
|
||||
L.Error_InvalidWhisperTarget = "Ung\195\188ltiger Fl\195\188sterziel"
|
||||
L.Error_UnsupportedChannel = "Nicht unterst\195\188tzter Kanal"
|
||||
|
||||
-- profiles
|
||||
L.Profiles_Available = "Verf\195\188gbare Profile:"
|
||||
L.Profiles_Created = "Neues Profil %s angelegt."
|
||||
@@ -24,16 +42,20 @@ L.Profiles_Reset = "Profil %s zur\195\188ckgesetzt."
|
||||
L.Profiles_Invalid = "Ung\195\188ltiges Profil %s!"
|
||||
L.Profiles_DeleteError = "Das aktive Profil kann nicht gel\195\182scht werden!"
|
||||
|
||||
-- minimap
|
||||
L.Minimap_Tooltip_Enabled = "%s"
|
||||
L.Minimap_Tooltip_Disabled = "%s " .. cGray("(inaktiv)")
|
||||
L.Minimap_Tooltip_Options_Left = "Linksklick"
|
||||
L.Minimap_Tooltip_Options_Right = "\195\150ffnet oder schlie\195\159t die Einstellungen."
|
||||
L.Minimap_Tooltip_Mappings_Left = "Rechtsklick"
|
||||
L.Minimap_Tooltip_Mappings_Right = "Aktiviert oder Deaktivert jegliche Ersetzungen."
|
||||
|
||||
-- options
|
||||
L.Options_Title = "%s Einstellungen"
|
||||
L.Options_Enabled_Name = "Aktiv"
|
||||
L.Options_Enabled_Desc = "Aktiviert %s"
|
||||
L.Options_Minimap_Button_Name = "Zeige Minimap-Knopf"
|
||||
L.Options_Minimap_Button_Desc = "Zeigt oder versteckt den Knopf an der Miniaturkarte"
|
||||
L.Options_Minimap_Tooltip_Options_Left = "Linksklick"
|
||||
L.Options_Minimap_Tooltip_Options_Right = "\195\150ffnet oder schlie\195\159t die Einstellungen."
|
||||
L.Options_Minimap_Tooltip_Mappings_Left = "Rechtsklick"
|
||||
L.Options_Minimap_Tooltip_Mappings_Right = "\195\150ffnet das Debug-Fenster mit Ersetzungscode."
|
||||
|
||||
L.Options_Channels_Group_Name = "Kan\195\164le"
|
||||
L.Options_Channels_Group_Desc = "%s ist in folgenden Kan\195\164len aktiv."
|
||||
@@ -73,25 +95,105 @@ L.Options_Replacements_Add_Desc = "F\195\188gt eine neue Zuordnung hinzu."
|
||||
L.Options_Replacements_DeleteAll_Name = "Alle L\195\182schen"
|
||||
L.Options_Replacements_DeleteAll_Desc = "L\195\182scht alle Zuweisungen."
|
||||
L.Options_Replacements_DeleteAll_ConfirmText="Wirklich ALLE Zuweisungen l\195\182schen?"
|
||||
L.Options_Replacements_Header = "Die Vorkommen links vom Pfeil ( => ) werden in den aktivierten Kan\195\164len gesucht und durch den Text rechts vom Pfeil ersetzt."
|
||||
.."|nWird die Gro\195\159- und Kleinschreibung ignoriert, wird die Gro\195\159schreibung jedes Zeichens bei der Ersetzung \195\188bernommen."
|
||||
.."|nDas Zusammenfassen aufeinanderfolgender Treffer vermeidet unsch\195\182ne Wiederholungen, die durch die Ersetzung entstehen k\195\182nnen."
|
||||
.."|nMit den beiden Standard-Ersetzung wird so aus \"Tasse\" => \"Ckache\"."
|
||||
L.Options_Replacements_Header = "Die Vorkommen links vom Pfeil \"=>\" werden in den aktivierten Kan\195\164len gesucht und durch den Text rechts vom Pfeil ersetzt."
|
||||
|
||||
L.Options_Mapping_Group_Name = "%s => %s"
|
||||
L.Options_Mapping_Group_Desc = "Dieses Vorkommen wird in den aktivierten Kan\195\164len ersetzt."
|
||||
L.Options_Mapping_EmptyMapping = "(keine)"
|
||||
L.Options_Mapping_Enabled_Name = "Aktiv"
|
||||
L.Options_Mapping_Enabled_Desc = "Diese Ersetzung wird durchgef\195\188hrt"
|
||||
L.Options_Mapping_SearchText_Name = "Suchtext:"
|
||||
L.Options_Mapping_SearchText_Desc = "Dieser Text wird in der Chateingabe gesucht."
|
||||
L.Options_Mapping_ReplaceText_Name = "Ersetzung:"
|
||||
L.Options_Mapping_ReplaceText_Desc = "Jeder Suchtreffer wird mit diesem Text ersetzt."
|
||||
L.Options_Mapping_ExactCase_Name = "Exakte Gro\195\159- und Kleinschreibung"
|
||||
L.Options_Mapping_ExactCase_Desc = "Wenn gesetzt, muss die Gro\195\159- und Kleinschreibung des Suchtextes exakt \195\188berein stimmen. Anderfalls wird die Gro\195\159schreibung jedes Zeichens bei der Ersetzung \195\188bernommen."
|
||||
L.Options_Mapping_Consolidate_Name = "Fasse aufeinanderfolgende Treffer zusammen"
|
||||
L.Options_Mapping_Consolidate_Name = "Zusammenfassen aufeinanderfolgender Treffer"
|
||||
L.Options_Mapping_Consolidate_Desc = "Wenn durch die Ersetzung die Zeichenfolge mehrfach hintereinander steht,|nfasse sie zu einem Vorkommen zusammen."
|
||||
L.Options_Mapping_StopOnMatch_Name = "Anhalten nach Treffer"
|
||||
L.Options_Mapping_StopOnMatch_Desc = "F\195\188hrt keine nachfolgenden Ersetzungen mehr durch, wenn dieser Eintrag ein Suchtreffer war."
|
||||
L.Options_Mapping_MoveUp_Name = "^"
|
||||
L.Options_Mapping_MoveUp_Desc = "nach oben verschieben"
|
||||
L.Options_Mapping_MoveDown_Name = "v"
|
||||
L.Options_Mapping_MoveDown_Desc = "nach unten verschieben"
|
||||
L.Options_Mapping_Delete_Name = "L\195\182schen"
|
||||
L.Options_Mapping_Delete_Desc = "L\195\182scht diese Zuweisung."
|
||||
L.Options_Mapping_Delete_ConfirmText="Diese Zuweisung l\195\182schen?"
|
||||
L.Options_Mapping_Delete_ConfirmText="Diese Zuweisung l\195\182schen?"
|
||||
|
||||
L.Options_Help_Group_Name = "Hilfe"
|
||||
L.Options_Help_Group_Desc = "Hilfstellungen zu den Suchmustern und zur Ersetzungslogik."
|
||||
L.Options_Help_Disclaimer = cYellow("Haftungsausschlu\195\159:") .. " Das Addon wird im reinen Ist-Zustand zur Verf\195\188gung gestellt, ohne Garantie auf Funktion und Fehlerfreiheit (f\195\188r mehr Details siehe GPL 3 Lizenzdokument). "
|
||||
.. "Ferner \195\188bernimmt der Autor keinerlei Haftung oder Gew\195\164hrleistung f\195\188r durch das Addon oder dessen Nutzung entstandene Fehler oder Sch\195\164den, "
|
||||
.. "insb. den Verlust von Spielfortschritt oder Daten aufgrund von Abst\195\188rzen des WoW-Clients."
|
||||
L.Options_Help_Tab_Basics_Name = "Grundlagen"
|
||||
L.Options_Help_Tab_Basics_Desc = "Erl\195\164utert die Grundlagen des Addons"
|
||||
L.Options_Help_Tab_Expert_Name = "Experte"
|
||||
L.Options_Help_Tab_Expert_Desc = "Beleuchtet die Besonderheiten bei der Textsuche."
|
||||
L.Options_Help_Tab_Examples_Name = "Beispiele"
|
||||
L.Options_Help_Tab_Examples_Desc = "Beispiele f\195\188r bestimmte Szenarien."
|
||||
|
||||
L.Options_Help_Basics = cYellow("Reihenfolge")
|
||||
.. "|nEs sind unbegrenzt viele Textersetzung m\195\182glich, und sie werden in der Reihenfolge der definierten Zuordnungen abgearbeitet, von oben nach unten. "
|
||||
.. "Ersetzungen sind transitiv, d.h. nachfolgende Zuordnungen beziehen sich nicht auf den Originaltext, sondern das Resultat der vorherigen Ersetzung. "
|
||||
.. "|nMit der Zuordnung " .. cPrefix("\"a\" => \"b\"") .. " und " .. cPrefix("\"b\" => \"c\"") .. " wird bei Eingabe von " .. cPrefix("\"a\" => \"c\"") .. "."
|
||||
.. "|n|n" .. cYellow("Exakte Gro\195\159- und Kleinschreibung")
|
||||
.. "|nBei exakter Gro\195\159- und Kleinschreibung muss die Schreibweise genau \195\188berstimmen, sonst findet keine Textersetzug f\195\188r diese Zuordnung statt. "
|
||||
.. "Wird die Gro\195\159- und Kleinschreibung ignoriert, wird die Gro\195\159schreibung jedes Zeichens bei der Ersetzung \195\188bernommen. "
|
||||
.. "|nMit der Zuordnung " .. cPrefix("\"aBcDeF\" => \"uvWXYz\"") .. " wird aus " .. cPrefix("\"abcdef\" => \"uvwxyz\"") .. ", "
|
||||
.."aus " .. cPrefix("\"ABCDEF\" => \"UVWXYZ\"") .. " und aus " .. cPrefix("\"AbCdEf\" => \"UvWxYz\"") .. "."
|
||||
.. "|n|n" .. cYellow("Zusammenfassen aufeinanderfolgender Treffer")
|
||||
.. "|nDas Zusammenfassen aufeinanderfolgender Treffer vermeidet unsch\195\182ne Wiederholungen, die durch die Ersetzung entstehen k\195\182nnen. "
|
||||
.. "Die Zusammenfassung wird erst nach der Ersetzung vorgenommen, d.h. am vollst\195\164ndig ersetzten Text f\195\188r jede Zuordnung. "
|
||||
.. "|nMit der Zuordnung " .. cPrefix("\"s\" => \"sch\"") .. " wird aus " .. cPrefix("\"Tasse\" => \"Tasche\"") .. " statt " .. cPrefix("\"Taschsche\"") .. ", "
|
||||
.. "aber " .. cPrefix("\"schmeissen\" => \"schchmeischen\"") .. ". Solche Randbedingungen beseitigt in der Regel eine weitere Zuordnung wie " .. cPrefix("\"chch\" => \"ch\"") .. "."
|
||||
L.Options_Help_Expert = cYellow("verk\195\188rzende/verl\195\163ngernde Ersetzungen")
|
||||
.. "|nIst der Ersetzungstext k\195\188rzer als der eigentliche Suchtext, werden die \195\188bersch\195\188\195\159igen Zeichen des Suchtreffers entfernt. "
|
||||
.. "Ist der Ersetzungstext l\195\163nger, werden die \195\188brigen Zeichen nach dem Treffer hinten drangehangen. Dabei wird die Gro\195\159- und Kleinschreibung des letzten Zeichens ber\195\188cksichtigt, "
|
||||
.. "ebenso wie die Gro\195\159- und Kleinschreibung des nachfolgenden Zeichens. Gro\195\159geschriebene Abk\195\188rzungen und Ausdr\195\188cke bleiben so einheitlich. "
|
||||
.. "|nMit der Zuordnung " .. cPrefix("\"Kr\195\164uter\" => \"Gr\195\188nzeugs\"") .. " wird aus " .. cPrefix("\"KR\195\132UTER\" => \"GR\195\156NZEUGS\"") .. " statt " .. cPrefix("\"GR\195\156NZEUgs\"") .. " "
|
||||
.. "unter Beibehaltung von absichtlicher Gro\195\159schreibung wie " .. cPrefix("\"Kr\195\132utERGarten\" => \"Gr195\156nzEUGSgarten\"") .. " statt " .. cPrefix("\"Gr\195\188nzeugsGarten\"") .. "."
|
||||
.. "|n|n" .. cYellow("Standby")
|
||||
.. "|nErsetzungen k\195\182nnen auch nur bei Bedarf durchgef\195\188hrt werden, selbst wenn das Addon oder ein Kanal deaktivert wurde. "
|
||||
.. "Vor der Eingabe in der Chatbox schreibt man " .. cPrefix("/gri").. " oder " .. cPrefix("/grichelde").. " und optional noch den Zielkanal "
|
||||
.. "z.B. " .. cPrefix("\"/gri /p hallo da dr\195\188ben\"") .. " und alle aktiven Zuordnungen werden ersetzt, selbst wenn der Gruppenkanal oder das Addon nicht aktiv sind."
|
||||
.. "|n|n" .. cYellow("Regul\195\164re Ausdr\195\188cke")
|
||||
.. "|nRegEx sind sehr m\195\163chtige Such- und Ersetzunsgmuster die h\195\163ufig in der Programmierung verwendet werden. Technisch gesehen benutzt das Addon f\195\188r die Suchen des Eingabetextes bereits regul\195\163ren Ausdr\195\188cke. "
|
||||
.. "Das Eingeben von RegEx als Suchtext ist allerings eine inoffizielle Funktion und hat zwei gro\195\159e Einschr\195\163nkungen: "
|
||||
.. "|n1. Leider unterst\195\188tzt Lua nicht den vollst\195\163ndigen Umfang von PCRE. Trotzdem k\195\182nnen einige Muster verwendet werden wie Zeilenanfang " .. cPrefix("\"^\"") .. " "
|
||||
.."oder Zeilenende " .. cPrefix("\"$\"") .. ", Zeichenklassen wie Zahlen " .. cPrefix("\"%d\"") .. " oder (negierte) Auswahlen " .. cPrefix("\"[^%p]\"") .. ". "
|
||||
.. "|n2. Es werden keine Gruppen im Ersetzungstest unterst\195\188tzt, so da\195\159 Gruppen einfach verloren gehen. Wegen der Gro\195\159- und Kleinschreibung und steigender Komplexit\195\163t ist diese Funktion auch f\195\188r die Zukunft nicht geplant. "
|
||||
.. "|nIm Beispiel-Reiter gibt es einige Ersetzungen, welche mit regul\195\164ren Ausdr\195\188cke umgesetzt wurden."
|
||||
|
||||
L.Options_Help_Examples_Note = cYellow("Hinweis:") .. " Dieses Addon bef\195\188rwortet nicht und beabsichtig nicht Personen mit (Fremd-)Sprachproblemen |nzu verletztem oder herabzuw\195\188rdigen. Die Verantwortung f\195\188r den Einsatz des Addons obliegt dem Benutzer. |nBitte verwendet die Funktion respektvoll und zur\195\188ckhaltend gegen\195\188ber anderen Mitspielern."
|
||||
L.Options_Help_Examples0_Header = cYellow("Beispiel")
|
||||
L.Options_Help_Examples0_Text = "Bitte ein Beispiel aus der Auswahlbox ausw\195\164hlen."
|
||||
L.Options_Help_Examples1_Select = "fehlender Unterkiefer"
|
||||
L.Options_Help_Examples1_Header = cYellow("S und P werden durch Zisch- und Klacklaute ersetzt.")
|
||||
L.Options_Help_Examples1_Text = cPrefix("s => ch") .. "|n|n" .. cPrefix("t => ck")
|
||||
L.Options_Help_Examples2_Select = "Trollifizierung"
|
||||
L.Options_Help_Examples2_Header = cYellow("L\195\164\195\159t euch fast wie ein echter Troll klingen.")
|
||||
L.Options_Help_Examples2_Text = cPrefix("%.$ => , maan.") .. "|n|n" .. cPrefix("ir => ia") .. "|n|n" .. cPrefix("ch => ck") .. "|n|n" .. cPrefix("g => ch") .. "|n|n" .. cPrefix("qu => kw") .. "|n|n" .. cPrefix("t => d")
|
||||
L.Options_Help_Examples3_Select = "Altmodisch"
|
||||
L.Options_Help_Examples3_Header = cYellow("Benutzt eine antiquiertere Schreibweise.")
|
||||
L.Options_Help_Examples3_Text = cPrefix("ei => ey") .. "|n|n" .. cPrefix("\195\159 => sz")
|
||||
L.Options_Help_Examples4_Select = "Abk\195\188rzungen"
|
||||
L.Options_Help_Examples4_Header = cYellow("Viel sagen, wenig tippen.")
|
||||
L.Options_Help_Examples4_Text = cPrefix("gz => Herzlichen Gl\195\188ckwunsch") .. "|n|n" .. cPrefix("gn8 => Gute Nacht") .. "|n|n" .. cPrefix("afk => Bin mal eben weg (AFK)") .. "|n|n" .. cPrefix("MC => Geschmolzener Kern")
|
||||
L.Options_Help_Examples5_Select = "Eigennamen"
|
||||
L.Options_Help_Examples5_Header = cYellow("Ersetzt Spielernamen, NPCs oder Orte durch andere Ausdr\195\188cke.")
|
||||
L.Options_Help_Examples5_Text = cPrefix("Sylvanas => die rachs\195\188chtige Bansheek\195\182nigin") .. "|n|n" .. cPrefix("R\195\188tzkn\195\188bbel => R\195\188tzi") .. "|n|n" .. cPrefix("Unterstadt => Undercity")
|
||||
L.Options_Help_Examples6_Select = "Lispeln"
|
||||
L.Options_Help_Examples6_Header = cYellow("Aussprache von S und Z wird zu einem Zischlaut")
|
||||
L.Options_Help_Examples6_Text = cPrefix("sch => ch") .. "|n|n" .. cPrefix("s => fs") .. "|n|n" .. cPrefix("z => ts") .. "|n|n" .. cPrefix("chs => x")
|
||||
L.Options_Help_Examples7_Select = "Stottern"
|
||||
L.Options_Help_Examples7_Header = cYellow("Stottern")
|
||||
L.Options_Help_Examples7_Text = "p[%s]-$"
|
||||
|
||||
L.IgnorePattern_Star = "Stern"
|
||||
L.IgnorePattern_Circle = "Kreis"
|
||||
L.IgnorePattern_Diamond = "Diamant"
|
||||
L.IgnorePattern_Triangle = "Dreieck"
|
||||
L.IgnorePattern_Moon = "Mond"
|
||||
L.IgnorePattern_Square = "Quadrat"
|
||||
L.IgnorePattern_Cross = "Kreuz"
|
||||
L.IgnorePattern_Skull = "Totenkopf"
|
||||
Reference in New Issue
Block a user