Lunar Languages is a modern, cross-platform mobile application designed to help users learn essential phrases and vocabulary in multiple languages. Built with the latest web technologies, it provides a seamless learning experience on iOS, Android, and the Web.
- Multi-Language Support: Learn 11 different languages including Mandarin, Spanish, French, German, Japanese, and more.
- Essential Vocabulary: Curated lists of essential phrases ("Hello", "Thank you"), conversation starters, and common nouns.
- Audio Pronunciation: High-quality audio playback for every phrase to master pronunciation.
- Phonetic Guides: Native phonetic transcriptions to help you read and speak correctly.
- Offline Ready: Designed to work without an internet connection for on-the-go learning.
- Smart UI: Clean, intuitive interface built with Ionic components.
- Framework: Ionic 8
- Core: Angular 20
- Mobile Runtime: Capacitor 8
- Styling: SCSS with Ionic CSS Utilities
- Tooling: Node.js scripts for AI content generation
The app currently supports the following languages:
- 🇨🇳 Mandarin (zh)
- 🇪🇸 Spanish (es)
- 🇫🇷 French (fr)
- 🇩🇪 German (de)
- 🇯🇵 Japanese (ja)
- 🇮🇹 Italian (it)
- 🇵🇹 Portuguese (pt)
- 🇺🇦 Ukrainian (uk)
- 🇷🇺 Russian (ru)
- 🇵🇱 Polish (pl)
- 🇬🇧 English (en) - Base language
- Node.js (Latest LTS recommended)
- NPM or Yarn
- Ionic CLI (
npm install -g @ionic/cli)
-
Clone the repository:
git clone https://github.com/yourusername/lunar-languages.git cd lunar-languages -
Install dependencies:
npm install
Web / Development Server:
ionic serve
# or
ng serveBuild for Production:
ionic build --prodMobile Deployment (iOS/Android): First, sync your web assets:
npx cap syncThen open the native IDE:
npx cap open ios
# or
npx cap open androidThis project includes a powerful script (generate-audio.js) to automate the creation of translation assets and audio files using OpenAI.
- Translation & Transliteration: Automatically translates English phrases and generates phonetic guides.
- Text-to-Speech: Uses OpenAI's TTS models (
alloy,echo,fable,onyx,nova,shimmer) with smart voice mapping for each language. - Quality Control: Implements Levenshtein distance checks to verify that the generated audio matches the text.
- Self-Repair: Automatically retries and repairs failed generations.
Ensure you have a .env file with your OpenAI API key:
OPENAI_API_KEY=sk-...Run the generator:
node generate-audio.jslunar-languages/
├── src/
│ ├── app/
│ │ ├── home/ # Main application logic and UI
│ │ └── data-service.ts # Data handling and state management
│ ├── assets/
│ │ ├── audio/ # Generated audio files
│ │ └── i18n/ # JSON translation files
│ └── theme/ # Global styles and variables
├── generate-audio.js # AI content generation script
├── capacitor.config.ts # Capacitor configuration
└── ionic.config.json # Ionic configuration