Skip to content

Conversation

@occultsound
Copy link

@occultsound occultsound commented Dec 15, 2025

📋 Summary

This PR adds complete Traditional Chinese (Taiwan) locale support to Nginx Proxy Manager, including UI translations and help documentation.

🎯 Changes

New Files Added

  • Translation file: frontend/src/locale/src/tw.json (171 translation entries)
  • Help documentation (Traditional Chinese):
    • frontend/src/locale/src/HelpDoc/tw/AccessLists.md
    • frontend/src/locale/src/HelpDoc/tw/Certificates.md
    • frontend/src/locale/src/HelpDoc/tw/DeadHosts.md
    • frontend/src/locale/src/HelpDoc/tw/ProxyHosts.md
    • frontend/src/locale/src/HelpDoc/tw/RedirectionHosts.md
    • frontend/src/locale/src/HelpDoc/tw/Streams.md
    • frontend/src/locale/src/HelpDoc/tw/index.ts

Modified Files

  • frontend/check-locales.cjs - Added tw locale configuration
  • frontend/src/locale/IntlProvider.tsx - Registered Traditional Chinese locale
  • frontend/src/locale/src/HelpDoc/index.ts - Registered tw help documentation
  • frontend/src/locale/src/lang-list. json - Added locale display name

🌐 Locale Details

  • Locale Code: tw
  • Language Tag: zh-TW
  • Display Name: 繁體中文 (Traditional Chinese)
  • Flag Code: TW (Taiwan)
  • Translation Coverage: 100% (171/171 strings)

✨ Features

✅ Complete UI translation in Traditional Chinese
✅ All help documentation translated
✅ Proper flag icon mapping (Taiwan flag)
✅ Follows existing locale implementation pattern
✅ No breaking changes to existing code
✅ Maintains backward compatibility

💡 Additional Notes

This translation uses Traditional Chinese characters commonly used in Taiwan (台灣正體), which differs from Simplified Chinese (zh-CN). The translation maintains technical accuracy while using terminology familiar to Taiwanese users.

🙏 Acknowledgments

Thank you for considering this contribution! Traditional Chinese support will benefit many users in Taiwan, Hong Kong, and Macau regions.

Refactored frontend/src/locale/src/tw.json to use the required ICU MessageFormat structure (objects with "defaultMessage").

Changes include:
1. Added the missing "language-name" key at the top level to fix the build error.
2. Converted all simple string values to objects containing "defaultMessage".
3. Aligned keys with the existing zh.json and en.json files.

This resolves the "TypeError: Cannot read properties of undefined (reading 'length')" error in the CI check.
@nginxproxymanagerci
Copy link

Docker Image for build 3 is available on DockerHub:

nginxproxymanager/nginx-proxy-manager-dev:pr-5083

Note

Ensure you backup your NPM instance before testing this image! Especially if there are database changes.
This is a different docker image namespace than the official image.

Warning

Changes and additions to DNS Providers require verification by at least 2 members of the community!

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.

1 participant