Skip to content

[Feature]: Add German (deDE) translation support #140

@Xerrion

Description

@Xerrion

Problem / Motivation

DragonToast currently supports 9 language translations (enUS, deDE, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW), but the German (deDE) translation is incomplete. The deDE.lua file exists but contains no actual translations—only a placeholder comment.

This limits accessibility for German-speaking players who want to use the addon without seeing English text in their interface. Adding complete German translations would:

  • Improve addon accessibility for ~100M+ German speakers
  • Follow Blizzard's localization best practices
  • Maintain consistency across all supported languages

Proposed Solution

Complete the deDE.lua translation file with full translations for all 201 strings defined in enUS.lua. The implementation approach:

  1. Create a new branch: feat/german-translation-complete
  2. Update deDE.lua: Add complete German translations following the existing pattern
  3. Test in-game: Verify all translated strings display correctly with /dt test
  4. Run luacheck: Ensure no syntax errors are introduced

Translation Strategy

  • Use official Blizzard German terminology where available
  • Maintain consistent formatting (e.g., "ilvl" → "iLvl", currency formats)
  • Handle plural forms where WoW API requires them
  • Preserve format strings like "%s" for dynamic content

File Locations

Main translation file: DragonToast/Locales/deDE.lua

  • Contains 201 strings to translate
  • Follows AceLocale-3.0 pattern

Related files:

  • DragonToast/Locales/enUS.lua - Source of truth (201 strings)
  • DragonToast/DragonToast.toc - Lists deDE.lua for loading

String Categories

Category Count Examples
Toast display 8 "You", "+%s XP", "Drag to move"
Roll options 6 "Need", "Greed", "Pass", etc.
Mail/Auction 4 "Mail", "Auction Won", "Auction Sale"
Filter labels 28 "Show XP", "Show Gold", "Loot Sources"
Display settings 36 "Toast Height", "Show Icon", "Anchor"
Animation settings 24 "Entrance", "Exit", "Hold", "Slide"
Appearance settings 30 "Quality Glow", "Background", "Font"
Profile management 15 "Create Profile", "Reset Profile"

Alternatives Considered

  1. Use existing translation service: Could use a platform like Transifex, but this would add overhead and delay releases. Direct file editing is faster for WoW addons.

  2. Crowdsourced translation: Open the deDE.lua file for community contributions via GitHub Discussions. This could work long-term but doesn't solve the immediate need for German players.

  3. Delay until more languages: Prioritizing other languages over completing existing ones would leave German users without proper localization.

  4. Hardcode translations: Bypass AceLocale and hardcode strings in Lua files. This violates WoW addon best practices and makes maintenance difficult.

Selected approach: Complete the deDE.lua file with professional translations following Blizzard's terminology guidelines.

Additional Context

Current State

  • deDE.lua exists but is empty (only 11 lines, no translations)
  • TOC file already includes deDE.lua in the load order
  • All other languages follow the same pattern

String Count Summary

File Strings Status
enUS.lua 201 Complete (base)
deDE.lua 0 Incomplete (needs all 201)
esES.lua 201 Complete
esMX.lua 201 Complete
frFR.lua 201 Complete
itIT.lua 201 Complete
koKR.lua 201 Complete
ptBR.lua 201 Complete
ruRU.lua 201 Complete
zhCN.lua 201 Complete
zhTW.lua 201 Complete

Implementation Notes

  • All translations use the true pattern for AceLocale (e.g., L["Key"] = true)
  • Format strings must be preserved exactly (e.g., L["ilvl %s"], L["Mail - %s"])
  • WoW's localization system handles pluralization automatically where needed
  • Translations should match Blizzard's German UI terminology

Testing Checklist

After implementation:

  • /dt test shows all test toast types with German text
  • Config window displays all labels in German
  • Filter checkboxes show German names
  • No English text visible in any addon UI element
  • luacheck passes without errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions