Skip to content

feat: Add localization support for DandersFrames#17

Open
evalor wants to merge 1 commit intoDanderBot:mainfrom
evalor:pr/localization-partial
Open

feat: Add localization support for DandersFrames#17
evalor wants to merge 1 commit intoDanderBot:mainfrom
evalor:pr/localization-partial

Conversation

@evalor
Copy link

@evalor evalor commented Feb 23, 2026

Add localization support for DandersFrames

Summary

This PR introduces proper localization infrastructure to DandersFrames, making the addon accessible to players worldwide.

Why This Matters

For Players

  • Accessibility: Non-English speakers can use the addon in their native language
  • Better UX: Clearer understanding of settings and features

For The Ecosystem

The community has already been localizing DandersFrames — but without official localization support, maintainers of translated versions face significant challenges:

  • 🔁 Repeated Merge Work: Every upstream update requires manually re-applying translations to modified files
  • ⚠️ High Maintenance Cost: Translators must track changes across many files and reconcile conflicts
  • 🐛 Error-Prone: Manual string replacement often leads to missed translations or broken code
  • 📉 Falling Behind: Translated versions often lag behind or become abandoned due to the maintenance burden

With proper localization infrastructure:

  • ✅ Translators only need to update locale files — no code merging required
  • ✅ Upstream changes are automatically compatible with existing translations
  • ✅ New translations can be added without touching core addon code
  • ✅ The community can contribute translations via PRs

What's Included

Language Status Notes
enUS (English) ✅ Complete Source strings (~917 entries)
zhCN (Simplified Chinese) ✅ Complete Full translation
deDE (German) 📝 Ready Placeholder file
esES (Spanish - EU) 📝 Ready Placeholder file
esMX (Spanish - LATAM) 📝 Ready Placeholder file
frFR (French) 📝 Ready Placeholder file
itIT (Italian) 📝 Ready Placeholder file
koKR (Korean) 📝 Ready Placeholder file
ptBR (Portuguese - BR) 📝 Ready Placeholder file
ruRU (Russian) 📝 Ready Placeholder file
trTR (Turkish) 📝 Ready Placeholder file
zhTW (Traditional Chinese) 📝 Ready Placeholder file

Technical Implementation

  • Library: AceLocale-3.0
  • Fallback: Missing translations automatically fall back to enUS
  • Structure: Each language has its own file under Locales/
  • Workflow:
    1. L["English String"] = true in enUS.lua (source)
    2. L["English String"] = "翻译文本" in other locale files
    3. Code uses L["English String"] — automatically localized

Files Changed

Libs/AceLocale-3.0/        # Localization library
Locales/
  ├── enUS.lua            # Source strings (auto-generated)
  ├── zhCN.lua            # Complete translation
  ├── deDE.lua            # Ready for translation
  ├── esES.lua            # Ready for translation
  ├── esMX.lua            # Ready for translation
  ├── frFR.lua            # Ready for translation
  ├── itIT.lua            # Ready for translation
  ├── koKR.lua            # Ready for translation
  ├── ptBR.lua            # Ready for translation
  ├── ruRU.lua            # Ready for translation
  ├── trTR.lua            # Ready for translation
  └── zhTW.lua            # Ready for translation
DandersFrames.toc         # Updated to include locale files

Next Steps

I'm happy to continue helping with:

  1. Completing more translations — I can work on additional languages
  2. Setting up translation workflow — Document how contributors can add translations
  3. Integration with translation platforms — If desired, we can integrate with CurseForge or Weblate
  4. Ongoing maintenance — Keep translations up-to-date as new strings are added

Request for Feedback

Would you be open to:

  • Merging this as a foundation for localization?
  • Accepting PRs for additional translations?
  • Adding translation guidelines to the wiki/README?

Let me know your thoughts! I'm committed to helping make DandersFrames more accessible globally. 🙏


如何添加新翻译 / How to Add Translations

对于想要贡献翻译的开发者:

  1. 打开对应的语言文件 (例如 Locales/frFR.lua)
  2. L["Key"] = true 改为 L["Key"] = "Translated text"
  3. 提交 PR

示例:

-- enUS.lua
L["Enable"] = true

-- frFR.lua
L["Enable"] = "Activer"

未翻译的字符串会自动使用英文作为后备。


Thank you for considering this contribution! 🌍

- Add AceLocale-3.0 library for localization support
- Create locale files for all supported WoW languages:
  - enUS (English - source/complete)
  - deDE (German - placeholder)
  - esES (Spanish - Spain, placeholder)
  - esMX (Spanish - Latin America, placeholder)
  - frFR (French - placeholder)
  - itIT (Italian - placeholder)
  - koKR (Korean - placeholder)
  - ptBR (Portuguese - Brazil, placeholder)
  - ruRU (Russian - placeholder)
  - trTR (Turkish - placeholder)
  - zhCN (Simplified Chinese - complete)
  - zhTW (Traditional Chinese - placeholder)
- Update TOC to include locale files
- zhCN has full translation, other languages are ready for translation
@jarasanz
Copy link

What should we do to contribute to localization? I could take esES

@yegodfrey
Copy link

ignored i guess?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants