Skip to content

Conversation

@raslaan-dev
Copy link

@raslaan-dev raslaan-dev commented Jan 15, 2026

Description

This PR adds comprehensive Dhivehi (ދިވެހި) language support to Monkeytype with word lists of varying difficulty levels, official keyboard layout, and automatic configuration for optimal typing experience.

What's Added:

Languages:

  • dhivehi.json - 200 most common Dhivehi words (ideal for beginners)

Keyboard Layout:

  • Official Dhivehi keyboard layout with proper shift variants
  • Follows the standard Maldivian keyboard layout
  • All Thaana characters properly mapped

Auto-Configuration:
When users select any Dhivehi language variant, the system automatically configures:

  • Keymap layout → dhivehi
  • Keymap mode → react (displays keyboard on screen)
  • Layout → dhivehi
  • Keymap legend style → dynamic (shift key updates keyboard display)

This ensures users have the correct keyboard layout and visual feedback without manual configuration.

Language Details:

  • BCP 47 Code: dv
  • Script: Thaana (ތާނަ)
  • Direction: Right-to-Left (RTL)
  • Writing System: Abugida
  • Region: Maldives

Implementation Details:

  • All word lists ordered by frequency (most common → least common)
  • Proper UTF-8 encoding for Thaana script
  • RTL text direction enabled

Browser Compatibility:

  • Tested on Chrome (Thaana characters render correctly)
  • RTL text direction works as expected
  • Keyboard visual feedback functions properly

Copilot AI review requested due to automatic review settings January 15, 2026 07:43
@monkeytypegeorge monkeytypegeorge added frontend User interface or web stuff docs Related to Markdown files and documentation assets Languages, themes, layouts, etc. packages Changes in local packages labels Jan 15, 2026
@github-actions github-actions bot added the waiting for review Pull requests that require a review before continuing label Jan 15, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds Dhivehi (Thaana script) language support to Monkeytype with keyboard layout integration and proper RTL rendering, though only includes one word list instead of the three mentioned in the description.

Changes:

  • Adds Dhivehi language with 200-word list and official keyboard layout
  • Implements Thaana script rendering with RTL support and Faruma font
  • Extends string utility functions to handle Thaana combining characters and punctuation equivalents

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
packages/schemas/src/layouts.ts Adds dhivehi layout to the schema enum
packages/schemas/src/languages.ts Adds dhivehi language to the schema enum
frontend/static/layouts/dhivehi.json Defines official Dhivehi keyboard layout with Thaana characters
frontend/static/languages/dhivehi.json Contains 200 most common Dhivehi words with RTL and ligatures enabled
frontend/src/ts/utils/strings.ts Adds Thaana character detection and matching logic for proper input handling
frontend/src/ts/test/words-generator.ts Extends Arabic punctuation handling to include Dhivehi
frontend/src/ts/test/test-ui.ts Adds thaanaTest CSS class when Dhivehi is selected
frontend/src/ts/input/helpers/validation.ts Updates character validation to use new Thaana-aware matching
frontend/src/ts/constants/languages.ts Adds dhivehi to language groups
frontend/src/styles/test.scss Adds Faruma font import and Thaana-specific styling
frontend/vite.config.ts Adds allowedHosts configuration
frontend/.npmrc Sets engine-strict to false
backend/.npmrc Sets engine-strict to false
SETUP_GUIDE.md Adds comprehensive local development setup guide

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@raslaan-dev raslaan-dev changed the title feat: add Dhivehi (Thaana) language support with RTL and Faruma font feat: add Dhivehi (Thaana) language support with RTL and Faruma font (@raslaan-dev) Jan 15, 2026
@github-actions
Copy link
Contributor

Continuous integration check(s) failed. Please review the failing check's logs and make the necessary changes.

@github-actions github-actions bot added waiting for update Pull requests or issues that require changes/comments before continuing and removed waiting for review Pull requests that require a review before continuing labels Jan 15, 2026
@github-actions github-actions bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

assets Languages, themes, layouts, etc. docs Related to Markdown files and documentation frontend User interface or web stuff packages Changes in local packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants