A comprehensive Kannada dictionary portal aggregating multiple dictionary sources, community contributions, and Wiktionary data. Built with Ruby on Rails.
Live: https://pada.sanchaya.net
- Multi-source search: Search across 100+ Kannada dictionaries, Kannada Wiktionary, and community entries simultaneously
- Community dictionary: Users can contribute words, meanings, dialect info, etymology, and ecological domain
- Admin dashboard: Manage dictionaries, entries, and global settings
- Per-dictionary metadata: Core name, type, category, publisher, year, multilingual flag
- Selective dictionary name display: Global + per-dictionary toggle for showing dictionary names in search results
- Voice input: Speech-to-text for Kannada (Chrome, HTTPS only)
- POS and grammar tags: Part-of-speech, root language, and pronunciation badges on search results
- Color-coded results: Each dictionary source has a distinct colored underline
- Kannada IME: Built-in input method editor for Kannada script
- SEO optimized: Schema.org structured data, sitemap, Open Graph, Twitter Cards, breadcrumbs
- Responsive design: Mobile-friendly Bootstrap layout
| Source | Entries | Description |
|---|---|---|
| Legacy Dictionaries | ~190,000 | Pre-existing dictionaries in padas table |
| ZIP-imported Dictionaries | 103 dictionaries | Imported from dictionary ZIP archive |
| Kannada Wiktionary | ~130,000 | From kn.wiktionary.org XML dump |
| Indic-Dict Stardict | 16 dictionaries | From indic-dict/stardict-kannada (Babylon/TSV/CSV) |
| Alar (kn-en) | Included above | By V. Krishna, primary source: alar-dict/data (ODbL) |
| Vachana Sanchaya Glossary | ~6,200 | Vachana literature glossary |
| Community (Jana Sanchaya) | User-contributed | Crowdsourced entries with voting |
- Ruby 2.5.9 / Rails 5.2.8
- MySQL (InnoDB, utf8mb4)
- Passenger application server
- Bootstrap frontend framework
- jQuery IME for Kannada input
- Ruby 2.5.9
- Rails 5.2
- MySQL
- Node.js (for asset compilation)
bundle install
yarn install
rails db:migrate RAILS_ENV=production| Path | Description |
|---|---|
/ |
Homepage — search all dictionaries |
/stats |
Statistics with per-dictionary breakdown |
/about |
About the project |
/help |
Usage guide |
/contribute |
Add words to community dictionary |
/community |
Browse community entries |
/sitemap.xml |
XML sitemap for search engines |
/robots.txt |
Robots exclusion rules |
| Path | Description |
|---|---|
/admin/login |
Admin login |
/admin/dashboard |
Dashboard with community entry stats |
/admin/settings |
Global settings (e.g., show dictionary names in search) |
/admin/dictionaries |
Manage dictionary metadata |
/admin/community_entries |
Moderate community entries |
- padas: Main search table (word, meaning, POS, dictionary_id)
- dictionaries: Dictionary metadata with fields: core_name, dictionary_type, multilingual, category, publisher, published_year, total_entries, show_name_in_search
- wiktionary_entries: Kannada Wiktionary entries
- jana_sanchaya_entries: Community-contributed entries with voting
- admin_users: Admin authentication
- dialects: Kannada dialect reference data
- settings: Key-value global settings
- dictionary_entries: Raw imported ZIP data (legacy)
- dictionary_file_stats: ZIP import tracking
- Add dictionary metadata fields (core_name, dictionary_type, multilingual, category, publisher, published_year, total_entries)
- Create Jana Sanchaya entries with etymology/dialect/ecological domain fields
- Create admin users and authentication
- Create dialects reference table
- Create settings (key-value store)
- Add
show_name_in_searchper-dictionary toggle
- Edit name, core_name, description, type, category, publisher, year
- Toggle
show_name_in_searchper dictionary - View pada entries per dictionary with search and pagination
- Summary stats cards (total entries, POS count, root language count, synonyms)
- POS distribution bar chart (top 10 tags)
- Root language distribution bar chart (top 10 origins)
- Per-dictionary POS and root language counts in the index table
show_dictionary_names— Master toggle for showing dictionary names in search results
- View, edit, approve/reject community-submitted entries
- Exact word matches from
padastable shown with colored underlines - Vachana Sanchaya results in dedicated section
- Alar dictionary results in dedicated section
- Wiktionary entries with source attribution
- Community entries (Jana Sanchaya) with voting
- Similar/partial matches in right sidebar
- Meaning-only matches if no word matches found
Dictionary names in results can be controlled via:
- Global toggle at
/admin/settings - Per-dictionary toggle in dictionary edit form
rails dictionaries:import RAILS_ENV=production
rails dictionaries:import_into_padas RAILS_ENV=productionrails wiktionary:import RAILS_ENV=productionSee docs/WIKTIONARY_IMPORT.md for bulk XML dump import.
rails indic_dict:import RAILS_ENV=productionImports 16 dictionaries (Kittel, Alar, Mysore University, etc.) from indic-dict/stardict-kannada. See docs/DICTIONARY_IMPORT.md for details.
- Unique
<title>and<meta name="description">per page - Open Graph / Twitter Cards for social sharing
- JSON-LD structured data (WebSite with SearchAction, BreadcrumbList)
- XML sitemap at
/sitemap.xml robots.txtat/robots.txt- Canonical URLs
- Semantic HTML with proper
<h1>hierarchy
The Kannada community is invited to contribute words, meanings, dialect information, and etymology through the community dictionary at /contribute.
Dictionary data belongs to respective publishers. Code license TBD.
- Sanchaya (https://sanchaya.org)
- Sanchi Foundation (https://sanchifoundation.org)
- Kannada Wiktionary (https://kn.wiktionary.org)
- Vachana Sanchaya (https://vachana.sanchaya.net)
- Community contributors