Skip to content

ericmarkarian/PolyWordle

Repository files navigation

🌍 PolyWordle

Wordle × Language Learning — Guess the word in any language, learn vocabulary with every play.

License: MIT PRs Welcome


What is this?

PolyWordle is an open-source word-guessing game (à la Wordle) that works across 9+ languages. The twist: every game teaches you something. Each word comes with:

  • ✅ A translation into English
  • 💡 A contextual hint you can reveal mid-game
  • 📖 An example sentence with translation shown after each round
  • 🎹 A language-native keyboard (Armenian, Japanese, Korean, CJK, and more)
  • 🔄 Daily word mode + practice mode

Languages included: 🇦🇲 Armenian · 🇪🇸 Spanish · 🇫🇷 French · 🇩🇪 German · 🇮🇹 Italian · 🇧🇷 Portuguese · 🇯🇵 Japanese · 🇰🇷 Korean · 🇨🇳 Mandarin


💻 Running locally

Prerequisites

  • Node.js 18+ — download and install this first
  • A terminal (Terminal on Mac, Command Prompt or PowerShell on Windows)

Steps

# 1. Install dependencies (do this once)
npm install

# 2. Start the dev server
npm run dev

# 3. Open http://localhost:5173 in your browser

Build for production

npm run build    # creates a dist/ folder
npm run preview  # preview the production build locally

📁 Project structure

polywordle/
├── .github/
│   ├── workflows/
│   │   └── deploy.yml          # Auto-deploys to GitHub Pages on push
│   └── ISSUE_TEMPLATE/
│       ├── new_language.md     # Template for adding a language
│       └── bug_report.md
├── src/
│   ├── App.jsx                 # Main app component
│   ├── main.jsx                # Entry point
│   ├── data/
│   │   └── languages.js        # All language configs & word lists ← edit this to add languages
│   ├── hooks/
│   │   └── useGame.js          # Game state logic
│   └── utils/
│       └── gameLogic.js        # Guess evaluation, share grid
├── index.html
├── vite.config.js
├── package.json
├── .gitignore
├── LICENSE
├── README.md
└── CONTRIBUTING.md

🌐 Adding a new language

This is the #1 contribution we want! Open src/data/languages.js and add your language:

your_language: {
  code: "xx",           // ISO 639-1 language code
  name: "English name",
  nativeName: "Native name",
  flag: "🏳️",
  wordLength: 5,        // characters per guess
  direction: "ltr",     // "ltr" or "rtl"
  maxGuesses: 6,
  keyboard: [
    ["A","B","C","D","E","F","G","H","I","J"],
    ["K","L","M","N","O","P","Q","R","S"],
    ["ENTER","T","U","V","W","X","Y","Z","⌫"]
  ],
  words: [
    {
      word: "HELLO",
      translation: "greeting",
      hint: "What you say when meeting someone",
      example: "Hello, how are you?",
      exampleTranslation: "..."
    },
    // Add at least 10 words
  ]
}

See CONTRIBUTING.md for the full guide.


🤝 Contributing

Contributions welcome! Especially:

  • 🌐 New languages (open an issue first to claim one)
  • 📚 More words for existing languages
  • 🌍 RTL language support (Arabic, Hebrew, Farsi, Urdu)
  • ♿ Accessibility improvements

See CONTRIBUTING.md for guidelines.


📄 License

MIT © 2024 PolyWordle Contributors

Inspired by the original Wordle by Josh Wardle.

About

PolyWordle is a multilingual twist on Wordle designed to help you learn and practice vocabulary across different languages. Each puzzle challenges you to guess words in multiple languages, with built-in hints to reinforce learning and retention. It’s a simple, interactive way to build language skills while playing a familiar game.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors