feat: add 13 new languages (2B+ speakers), unified pipeline, word quality infrastructure#149
Conversation
📝 WalkthroughWalkthroughAdds grapheme-cluster aware processing and a per-language grapheme_mode flag across frontend, server, tests, and tooling; introduces grapheme utilities; updates word-loading/QA to respect grapheme_mode; and adds many new language data assets, keyboards, curated schedules, and language-management scripts. Changes
Sequence Diagram(s)sequenceDiagram
participant Player as Player (Client)
participant Frontend as Frontend (game.ts)
participant Server as Webapp (app.py)
participant Data as Language Data
rect rgba(100,149,237,0.5)
Player->>Frontend: Submit guess
Frontend->>Frontend: splitWord(guess, graphemeMode)\nsplitWord(target, graphemeMode)
Frontend->>Frontend: First-pass exact matches\nSecond-pass presence checks (targetChars)
Frontend->>Server: POST normalized guess / result
Server->>Data: load_words(lang, lang_config)\nuses grapheme_mode for QA
Server-->>Frontend: validation / response
Frontend-->>Player: show colored feedback (canonical display rebuilt by grapheme clusters)
end
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Possibly related PRs
Poem
✨ Finishing Touches
🧪 Generate unit tests (beta)
|
There was a problem hiding this comment.
Actionable comments posted: 17
Note
Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.
🟡 Minor comments (8)
webapp/data/languages/ms/ms_5words_supplement.txt-1-1 (1)
1-1:⚠️ Potential issue | 🟡 MinorEmpty supplement file is handled gracefully by the backend.
The supplement file can safely be empty—the loading function catches
FileNotFoundErrorand returns an empty list. However, verify the file contains no blank lines, as the current filtering logic would add empty strings to the word list if blank lines are present. Either ensure the file is completely empty (0 bytes) or add a check to exclude empty strings:supplemental_words = [ word.strip() for word in f if word.strip() # Filter out empty lines if all([char in language_characters[lang] for char in word.strip()]) ]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ms/ms_5words_supplement.txt` at line 1, The supplement loader currently can add blank lines as empty strings into supplemental_words; update the list comprehension that builds supplemental_words (the one using language_characters[lang]) to call word.strip() once, skip any entries where word.strip() is falsy, and then validate characters, e.g., compute s = word.strip() and use if s and all(char in language_characters[lang] for char in s) so blank lines are excluded.webapp/data/languages/ms/ms_daily_words.txt-72-72 (1)
72-72:⚠️ Potential issue | 🟡 MinorPossible OCR/transcription errors in word list.
Several entries appear to be OCR errors or subtitle transcription artifacts rather than valid Malay words:
- Line 72:
aslng(likely "asing"?)- Line 146:
begku- Line 147:
beium(likely "belum"?)- Line 201:
boieh(likely "boleh"?)Consider running a spell-check or validation against a Malay dictionary to clean up these entries.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ms/ms_daily_words.txt` at line 72, The word list contains probable OCR/transcription errors (entries 'aslng', 'begku', 'beium', 'boieh'); run a validation pass against a Malay dictionary or spell-checker and either correct these tokens to their likely forms ('aslng' → 'asing', 'beium' → 'belum', 'boieh' → 'boleh') or remove ambiguous entries (e.g., verify 'begku' — correct to 'beku' or 'beguk' only after confirmation). Update the ms_daily_words.txt entries accordingly and add a short unit/scripted check that flags non-dictionary tokens (so future OCR artifacts are caught) referencing these tokens as examples.webapp/data/languages/tl/tl_daily_words.txt-367-367 (1)
367-367:⚠️ Potential issue | 🟡 MinorRemove duplicate entries to avoid selection bias.
konde(Line 367 and Line 904) andsukat(Line 1703 and Line 1710) are duplicated. If this file is sampled directly, duplicates over-weight those words.Also applies to: 904-904, 1703-1703, 1710-1710
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/tl/tl_daily_words.txt` at line 367, Remove duplicated word entries to prevent sampling bias: delete the extra occurrences of "konde" and "sukat" so each appears only once in the tl_daily_words word list; locate the duplicate tokens "konde" and "sukat" (the second occurrences in the file) and remove those duplicate lines, leaving one canonical instance of each word and preserving file encoding/newline conventions.webapp/data/languages/yo/yo_5words.txt-88-88 (1)
88-88:⚠️ Potential issue | 🟡 MinorDeduplicate repeated entries in the word list.
okutaandijẹbueach appear twice (Line 88/765 and Line 121/404). Deduping prevents uneven selection weighting.Also applies to: 121-121, 404-404, 765-765
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/yo/yo_5words.txt` at line 88, Remove duplicate word entries from the Yoruba word list by locating the repeated tokens "ọkuta" and "ijẹbu" and deleting the extra occurrences so each word appears only once; ensure you perform a file-wide de-duplication (compare full normalized lines, trimming whitespace) and preserve one canonical instance of each duplicate to avoid skewing selection weights.webapp/data/languages/tl/language_config.json-40-58 (1)
40-58:⚠️ Potential issue | 🟡 MinorMissing UI localization keys in Tagalog config.
The
uisection is missing 8 keys compared to other language configs:guess_distribution,haptic_feedback,haptic_feedback_desc,install_app_desc,report_issue,sound_effects,sound_effects_desc, andview_source. Without fallback handling, these labels will render as undefined in the UI.Add these missing translations to maintain key parity with other language configs.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/tl/language_config.json` around lines 40 - 58, The Tagalog language_config.json's "ui" object is missing eight keys present in other language configs (guess_distribution, haptic_feedback, haptic_feedback_desc, install_app_desc, report_issue, sound_effects, sound_effects_desc, view_source); add these keys to the "ui" object in language_config.json with appropriate Tagalog translations (or temporary English fallbacks) so the UI won't display undefined for those labels—update the same "ui" block that contains settings, dark_mode, keyboard_layout, etc., ensuring key names exactly match the other language files.webapp/data/languages/ur/ur_5words_supplement.txt-1-1 (1)
1-1:⚠️ Potential issue | 🟡 MinorAdd supplemental 5-letter words to
ur_5words_supplement.txt.The file is empty despite containing only a blank line. While the main
ur_5words.txthas 6,564 valid Urdu words and the application gracefully handles empty supplements, this creates a content gap. Related languages with Perso-Arabic script—particularly Arabic with 43,798 supplemental words—indicate that additional 5-letter word variants should be available. Consider populating this file with supplemental Urdu words from frequency corpora to improve word variety and consistency with the pattern used for most other languages in the project.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ur/ur_5words_supplement.txt` at line 1, The supplemental Urdu 5-letter word file ur_5words_supplement.txt is empty; add a curated list of additional 5-letter Urdu words (one per line) to supplement ur_5words.txt so the app has broader coverage—use high-frequency corpora and wordlists (e.g., news corpora, OSCAR, or internal frequency lists) to extract valid 5-character Perso‑Arabic script tokens, deduplicate against webapp/data/languages/ur/ur_5words.txt, normalize Unicode shaping/diacritics consistently with ur_5words.txt, and save the final sorted, newline-separated set back into ur_5words_supplement.txt.webapp/data/languages/ur/ur_keyboard.json-5-5 (1)
5-5:⚠️ Potential issue | 🟡 MinorUse native-script label for Urdu keyboard.
Line 5 uses
"Urdu"; this should be localized (e.g.,"اردو") to match native UI expectations.🌐 Suggested patch
- "label": "Urdu", + "label": "اردو",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ur/ur_keyboard.json` at line 5, Update the "label" value for the Urdu keyboard entry to use the native-script name instead of the English word; locate the JSON object containing the "label" key (currently `"label": "Urdu"`) in ur_keyboard.json and replace the value with the native-script string (e.g., `"اردو"`) so the keyboard displays the localized name in the UI.webapp/app.py-162-165 (1)
162-165:⚠️ Potential issue | 🟡 MinorMissing lowercase normalization for grapheme_mode languages.
When
use_graphemesis True (line 163), words are filtered but not lowercased, unlike the non-grapheme path (line 165) which appliesword.lower(). This inconsistency could cause issues if the word list contains uppercase characters.🐛 Proposed fix
if use_graphemes: - _5words = [word for word in _5words if word.strip() and word_len(word) == 5] + _5words = [word.lower() for word in _5words if word.strip() and word_len(word) == 5] else: _5words = [word.lower() for word in _5words if word_len(word) == 5 and word.isalpha()]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/app.py` around lines 162 - 165, When use_graphemes is True the list comprehension for _5words filters by word.strip() and word_len(word) == 5 but does not normalize case; update the grapheme branch that constructs _5words to also lowercase entries (e.g., apply word.lower() or call .casefold() on the retained word) so normalization matches the non-grapheme branch; touch the list comprehension that references use_graphemes, _5words, and word_len to incorporate the lowercasing.
🧹 Nitpick comments (5)
webapp/data/languages/uz/uz_characters.txt (1)
26-26: Verify Uzbek apostrophe codepoint consistency (ʻvs’vs').Line 26 uses U+02BB. If Uzbek word lists or keyboard JSON use different apostrophe codepoints, valid words can become untypeable or mismatched during validation.
Run this read-only check to confirm all Uzbek assets use a single apostrophe variant:
#!/bin/bash set -euo pipefail # Scan Uzbek language assets for apostrophe-like codepoints. fd 'uz_.*\.(txt|json)$' | while read -r file; do python - "$file" <<'PY' import sys, pathlib p = pathlib.Path(sys.argv[1]) text = p.read_text(encoding="utf-8") variants = { "U+02BB (ʻ)": "\u02bb", "U+2019 (’)": "\u2019", "U+0027 (')": "'", "U+02BC (ʼ)": "\u02bc", } counts = {name: text.count(ch) for name, ch in variants.items() if text.count(ch) > 0} if counts: print(f"{p}: {counts}") PY doneExpected result: one canonical apostrophe codepoint used consistently in Uzbek
*_characters.txt, keyboard, and word-list files.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/uz/uz_characters.txt` at line 26, Line 26 of uz_characters.txt uses U+02BB (ʻ) while other Uzbek assets may use U+2019 (’) or U+0027 (') or U+02BC (ʼ); run the provided scan across all Uzbek assets (uz_* .txt and keyboard/word-list JSONs) to detect which apostrophe codepoints appear, choose the canonical codepoint your project uses (e.g. the one already present in keyboard JSONs or word lists), and replace all non-canonical variants with that canonical codepoint (including updating uz_characters.txt line 26) so all Uzbek character/keyboard/word-list files use a single apostrophe codepoint consistently.tests/test_daily_word.py (1)
19-19: Use sharedword_lengthhelper to avoid duplicated grapheme logic.At Line 19 and Lines 129-136, this reimplements logic already centralized in
tests/conftest.py::word_length, which increases maintenance drift risk.♻️ Proposed refactor
-from tests.conftest import ALL_LANGUAGES, load_language_config, load_word_list +from tests.conftest import ALL_LANGUAGES, load_word_list, word_length @@ - config = load_language_config(lang) - if config and config.get("grapheme_mode") == "true": - import grapheme - - wlen = grapheme.length(word) - else: - wlen = len(word) + wlen = word_length(word, lang) assert wlen == 5, f"{lang}: Daily word '{word}' is {wlen} units (expected 5)"Also applies to: 129-136
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tests/test_daily_word.py` at line 19, The test duplicates grapheme/character-count logic that already exists as the word_length helper in tests/conftest.py; remove the duplicated grapheme logic in tests/test_daily_word.py (both where it appears around the top import area and again at lines 129-136) and instead import and call word_length from tests.conftest (add word_length to the from tests.conftest import ... list alongside ALL_LANGUAGES, load_language_config, load_word_list) where length calculation is needed, ensuring any variable names (e.g., the local length variable) match the helper's return.tests/conftest.py (1)
122-125: Makeis_grapheme_modetolerant to boolean config values.At Line 125, only the string
"true"is accepted. A JSON booleantruewould be treated as disabled.💡 Proposed refactor
def is_grapheme_mode(lang_code: str) -> bool: """Check if a language uses grapheme-cluster counting (e.g., Hindi).""" config = load_language_config(lang_code) - return bool(config and config.get("grapheme_mode") == "true") + if not config: + return False + value = config.get("grapheme_mode") + return value is True or (isinstance(value, str) and value.lower() == "true")🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tests/conftest.py` around lines 122 - 125, The function is_grapheme_mode currently only recognizes the literal string "true" from load_language_config, so JSON boolean true or other truthy values are ignored; update is_grapheme_mode to read the grapheme_mode value into a variable and accept both boolean True and case-insensitive string "true" (and generally truthy values returned by the config) when returning True; reference the is_grapheme_mode function and the config.get("grapheme_mode") lookup to implement this tolerant check.webapp/app.py (1)
149-151: Consider moving grapheme import to module level.While the function-level import works since
load_wordsis only called at startup, movingimport graphemeto the module level alongside other imports would be more idiomatic and avoid repeated import lookups.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/app.py` around lines 149 - 151, The grapheme import is inside load_words, which is suboptimal; move the import to module level with the other imports and remove the local import inside the function. Update the top of the module to include "import grapheme" (or alias as _grapheme if that convention is used elsewhere) and then use that module inside load_words (function name: load_words) instead of re-importing it locally.tests/test_word_lists.py (1)
42-45: Consider moving grapheme import to module level.The
import graphemeinside the conditional means it's re-imported on each test invocation for grapheme-mode languages. Sincegraphemeis already a project dependency, moving it to the top-level imports would be cleaner.♻️ Suggested refactor
import pytest +import grapheme from scripts.improve_word_lists import is_roman_numeralThen update line 45:
- import grapheme - invalid = [(w, grapheme.length(w)) for w in words if grapheme.length(w) != 5]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tests/test_word_lists.py` around lines 42 - 45, Move the inline import of the grapheme module to the top-level imports of tests/test_word_lists.py so it isn't re-imported on each test run; remove the in-function "import grapheme" and leave the conditional that uses grapheme.length unchanged (the variable invalid and the config check can remain), ensuring grapheme is imported once at module scope and referenced by name in the existing block.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/add_language.py`:
- Around line 598-615: The merge steps for Kaikki and Leipzig (functions
load_kaikki_words and load_leipzig_words, and the all_words merge loops) add
words but do not record those feeds in the provenance output (SOURCES.md);
update the source-tracking logic the code uses for other feeds (the same
mechanism that records FrequencyWords and wordfreq) to also add "Kaikki" and
"Leipzig Corpora" when their loaders return non-empty results (e.g., push into
the sources list/set used when writing SOURCES.md), and ensure the final
SOURCES.md writer includes those two entries so generated assets list all
contributing feeds.
- Around line 718-738: generate_config currently only emits a fixed set of
fields so top-level flags like grapheme_mode are dropped; update
generate_config(lang, lang_def) to propagate any extra top-level keys from
lang_def into the returned config (except the known/reserved keys "name",
"native", "timezone", "rtl", "diacritic_map", and "config") and avoid
overwriting fields already set, so flags such as grapheme_mode are preserved
when serializing; keep special handling for diacritic_map and the merged
"config" sections as-is.
- Around line 699-715: The current generation filters characters with
c.isalpha(), which drops Unicode combining marks (Mn, Mc) needed for Devanagari
and other Indic scripts; update the filtering in the chars list comprehension to
keep both letter and mark categories (use unicodedata.category and include
characters where category starts with 'L' or 'M') so vowel signs, anusvara,
visarga, etc. are preserved when building rows, leaving the rest of the row
logic (row_size, rows, adding "⇨"/"⌫", and returning the layouts) unchanged.
- Around line 542-556: Replace the codepoint-based filters in
_get_wordfreq_5letter (the len(w) == 5 and w.isalpha() checks) with
grapheme-cluster-aware logic: import the third-party regex module and compute
clusters = regex.findall(r'\X', w); require len(clusters) == 5 and that each
cluster contains at least one letter (check characters' Unicode category
startswith 'L' via unicodedata.category) to allow base+combining-mark graphemes;
if regex isn't available, fall back to the existing behavior or log and skip
gracefully. This keeps the function name and overall loop intact while ensuring
Hindi/Marathi/Bengali words with combining marks are counted correctly.
In `@scripts/download_sources.py`:
- Around line 347-349: The current filter uses len(w) == 5 and w.isalpha() which
breaks on grapheme clusters and combining marks; change the length check to
count Unicode grapheme clusters (e.g., use regex.findall(r'\X', w) and check
len(...) == 5) and replace isalpha() with a check that allows base letters plus
combining marks (e.g., all(c.isalpha() or unicodedata.combining(c) for c in w));
also use casefold() instead of lower() for safer case comparison (w ==
w.casefold()). Apply these replacements to the words = sorted(...) extraction
and the other identical filter sites in the file where the same
len/isalpha/lower pattern is used.
In `@scripts/improve_word_lists.py`:
- Around line 282-291: The _load_word_file helper currently uses codepoint-based
checks (len(w) == 5 and w.isalpha()) which rejects valid grapheme-mode words;
change _load_word_file to accept a grapheme_mode: bool parameter and, when true,
validate length by counting grapheme clusters (e.g. using the regex module's \X
or a grapheme library) and validate characters using Unicode categories (letters
+ combining marks) instead of str.isalpha(); keep the existing fast codepath for
grapheme_mode=False. Then update callers (load_kaikki_words,
load_hunspell_words, load_kbbi_words) to pass grapheme_mode based on the
language configuration (e.g., languages in EXTRA_SOURCES that require
grapheme-mode) so grapheme-mode languages like Hindi are handled correctly.
In `@tests/test_word_lists.py`:
- Around line 40-47: Both test_supplement_words_are_5_letters and
test_daily_words_are_5_letters currently use len(w) and need the same
grapheme-aware logic as test_all_words_are_5_letters: load the language config
via load_language_config(lang), check config.get("grapheme_mode") == "true",
import grapheme when needed, and compute invalid = [(w, grapheme.length(w)) for
w in words if grapheme.length(w) != 5] otherwise fall back to invalid = [(w,
len(w)) for w in words if len(w) != 5]; update those two tests to use the same
config/grapheme handling (referencing variables/functions config,
load_language_config, grapheme, words, and invalid).
In `@webapp/data/languages/id/id_daily_words.txt`:
- Line 196: Remove the offensive entries 'bitch', 'nigga', and 'pussy' from the
Indonesian daily word list (delete those exact tokens from the list), ensure the
file remains properly newline-separated with no extra blank lines, run a quick
grep/search to confirm no other profane tokens remain, and commit the cleaned
file with a clear message indicating removal of profanity.
- Around line 224-326: The id_daily_words.txt list contains English/foreign
words (e.g., break, clear, count, cream, cross and others noted) causing "daily
contamination" — remove or replace all non-Indonesian entries from
webapp/data/languages/id/id_daily_words.txt; specifically scan for and delete
the listed offenders (break, clear, count, cream, cross, force, front, human,
music, until, etc.), re-run the provided verification regexes to confirm no
common English tokens remain, and ensure the file only contains valid Indonesian
words so the "0% daily contamination" claim holds.
In `@webapp/data/languages/ms/ms_daily_words.txt`:
- Line 192: Remove or replace the six English tokens found in the Malay daily
word list: "bitch", "didnt", "doesn", "pussy", "thats", and "youre" in
ms_daily_words.txt; either delete them or substitute each with a valid Malay
word of equivalent form, preserving the file's plain-text line-per-word format
and encoding, and ensure any downstream word-counts or validation scripts still
pass after the change.
In `@webapp/data/languages/sq/language_config.json`:
- Line 8: The "right_to_left" field in language_config.json is currently a
string ("false"); change its value to a boolean false (right_to_left: false) so
consumers performing boolean checks receive the correct type; update the
"right_to_left" entry in webapp/data/languages/sq/language_config.json (and
verify other language_config.json files for similar stringified booleans) to use
the boolean literal instead of a quoted string.
In `@webapp/data/languages/tl/tl_daily_words.txt`:
- Line 263: The daily word list contains clear non-Tagalog/noise entries such as
the token "bitch" in tl_daily_words.txt (and similar entries at the other
reported positions); remove these non-Tagalog/noise tokens from the file and
instead re-run the generation pipeline with the language-filtering step enabled
so the file is regenerated systematically (ensure the filter logic that
validates Tagalog tokens is applied before writing tl_daily_words.txt and that
the pipeline emits only validated entries).
In `@webapp/data/languages/ur/ur_daily_words.txt`:
- Around line 1-2000: Daily answer pool contains OCR/noise-corrupted tokens that
must be removed or flagged; scan webapp/data/languages/ur/ur_daily_words.txt and
prune entries matching the example corrupt tokens (e.g., "أہغاد", "اطءلہ",
"اپددر", "خہجءز", "ضآؤاط", "وففوہ", "ھمممم", "یلئڈی") by either deleting them or
moving them to a QA bucket, add an automated validation step (Unicode
script/regex) to warn on non-standard Urdu/Arabic letter sequences and
punctuation, and regenerate the list so only valid lexical tokens remain (keep
records of pruned tokens for manual review).
In `@webapp/data/languages/uz/SOURCES.md`:
- Around line 1-2: The SOURCES.md currently only contains a header and lacks
dataset provenance; update webapp/data/languages/uz/SOURCES.md to list each
Uzbek dataset used with its name, canonical source URL, license identifier
(e.g., CC-BY-4.0, CC0), and attribution/contributor info so licensing can be
audited; ensure each entry follows a consistent bullet or table format and
include any dataset-specific notes (e.g., subset, preprocessing) to make
provenance unambiguous.
In `@webapp/data/languages/uz/uz_5words.txt`:
- Around line 1-567: The uz_5words.txt file contains 18 entries that use the
modifier letter apostrophe (U+02BB) and therefore are 6 codepoints (e.g. toʻrt,
oʻyin, doʻst, oʻlar, oʻtov, urugʻ, boʻsh, gʻozi, gʻarb, boʻri, etc.), violating
the 5-codepoint constraint; fix by either replacing each listed 6-codepoint word
with a true 5-codepoint Uzbek word (ensure replacements are 5 Unicode codepoints
exactly) or enable grapheme-aware length handling for Uzbek so sequences like oʻ
and gʻ are treated as single graphemes (adjust the validator/config to set
grapheme_mode for Uzbek); update the entries for the specific words mentioned
(toʻrt, oʻyin, doʻst, oʻlar, oʻtov, urugʻ, boʻsh, gʻozi, gʻarb, boʻri and the
remaining problematic tokens) accordingly.
In `@webapp/data/languages/yo/SOURCES.md`:
- Around line 1-2: The SOURCES.md for Yoruba currently only contains a header
and lacks provenance; update webapp/data/languages/yo/SOURCES.md to include
per-asset source entries (source URL, license, extraction date),
processing/normalization steps applied (tokenization, filtering, deduplication,
scripts used), and a mapping from each Yoruba asset filename to its source entry
so the dataset is auditable and reproducible; use the existing "# Yoruba
Language Data — Sources" header as the anchor and follow the proposed template
fields (source URL, license, extraction date, normalization steps) for each
listed asset.
In `@webapp/data/languages/yo/yo_keyboard.json`:
- Around line 30-42: The keyboard JSON row currently containing
"⇨","z","x","c","v","b","n","m","ẹ","ọ","ṣ","⌫" needs to include Yoruba tonal
vowels (à, á, è, é, ì, í, ò, ó, ù, ú) and their uppercase forms so users can
type marked words; update webapp/data/languages/yo/yo_keyboard.json to add those
characters into the appropriate rows (near the vowel keys where "ẹ","ọ","ṣ"
appear) and also update the character set file yo_characters.txt to include all
tonal vowels and their capital variants (À, Á, È, É, Ì, Í, Ò, Ó, Ù, Ú) alongside
existing characters so the game recognizes them.
---
Minor comments:
In `@webapp/app.py`:
- Around line 162-165: When use_graphemes is True the list comprehension for
_5words filters by word.strip() and word_len(word) == 5 but does not normalize
case; update the grapheme branch that constructs _5words to also lowercase
entries (e.g., apply word.lower() or call .casefold() on the retained word) so
normalization matches the non-grapheme branch; touch the list comprehension that
references use_graphemes, _5words, and word_len to incorporate the lowercasing.
In `@webapp/data/languages/ms/ms_5words_supplement.txt`:
- Line 1: The supplement loader currently can add blank lines as empty strings
into supplemental_words; update the list comprehension that builds
supplemental_words (the one using language_characters[lang]) to call
word.strip() once, skip any entries where word.strip() is falsy, and then
validate characters, e.g., compute s = word.strip() and use if s and all(char in
language_characters[lang] for char in s) so blank lines are excluded.
In `@webapp/data/languages/ms/ms_daily_words.txt`:
- Line 72: The word list contains probable OCR/transcription errors (entries
'aslng', 'begku', 'beium', 'boieh'); run a validation pass against a Malay
dictionary or spell-checker and either correct these tokens to their likely
forms ('aslng' → 'asing', 'beium' → 'belum', 'boieh' → 'boleh') or remove
ambiguous entries (e.g., verify 'begku' — correct to 'beku' or 'beguk' only
after confirmation). Update the ms_daily_words.txt entries accordingly and add a
short unit/scripted check that flags non-dictionary tokens (so future OCR
artifacts are caught) referencing these tokens as examples.
In `@webapp/data/languages/tl/language_config.json`:
- Around line 40-58: The Tagalog language_config.json's "ui" object is missing
eight keys present in other language configs (guess_distribution,
haptic_feedback, haptic_feedback_desc, install_app_desc, report_issue,
sound_effects, sound_effects_desc, view_source); add these keys to the "ui"
object in language_config.json with appropriate Tagalog translations (or
temporary English fallbacks) so the UI won't display undefined for those
labels—update the same "ui" block that contains settings, dark_mode,
keyboard_layout, etc., ensuring key names exactly match the other language
files.
In `@webapp/data/languages/tl/tl_daily_words.txt`:
- Line 367: Remove duplicated word entries to prevent sampling bias: delete the
extra occurrences of "konde" and "sukat" so each appears only once in the
tl_daily_words word list; locate the duplicate tokens "konde" and "sukat" (the
second occurrences in the file) and remove those duplicate lines, leaving one
canonical instance of each word and preserving file encoding/newline
conventions.
In `@webapp/data/languages/ur/ur_5words_supplement.txt`:
- Line 1: The supplemental Urdu 5-letter word file ur_5words_supplement.txt is
empty; add a curated list of additional 5-letter Urdu words (one per line) to
supplement ur_5words.txt so the app has broader coverage—use high-frequency
corpora and wordlists (e.g., news corpora, OSCAR, or internal frequency lists)
to extract valid 5-character Perso‑Arabic script tokens, deduplicate against
webapp/data/languages/ur/ur_5words.txt, normalize Unicode shaping/diacritics
consistently with ur_5words.txt, and save the final sorted, newline-separated
set back into ur_5words_supplement.txt.
In `@webapp/data/languages/ur/ur_keyboard.json`:
- Line 5: Update the "label" value for the Urdu keyboard entry to use the
native-script name instead of the English word; locate the JSON object
containing the "label" key (currently `"label": "Urdu"`) in ur_keyboard.json and
replace the value with the native-script string (e.g., `"اردو"`) so the keyboard
displays the localized name in the UI.
In `@webapp/data/languages/yo/yo_5words.txt`:
- Line 88: Remove duplicate word entries from the Yoruba word list by locating
the repeated tokens "ọkuta" and "ijẹbu" and deleting the extra occurrences so
each word appears only once; ensure you perform a file-wide de-duplication
(compare full normalized lines, trimming whitespace) and preserve one canonical
instance of each duplicate to avoid skewing selection weights.
---
Nitpick comments:
In `@tests/conftest.py`:
- Around line 122-125: The function is_grapheme_mode currently only recognizes
the literal string "true" from load_language_config, so JSON boolean true or
other truthy values are ignored; update is_grapheme_mode to read the
grapheme_mode value into a variable and accept both boolean True and
case-insensitive string "true" (and generally truthy values returned by the
config) when returning True; reference the is_grapheme_mode function and the
config.get("grapheme_mode") lookup to implement this tolerant check.
In `@tests/test_daily_word.py`:
- Line 19: The test duplicates grapheme/character-count logic that already
exists as the word_length helper in tests/conftest.py; remove the duplicated
grapheme logic in tests/test_daily_word.py (both where it appears around the top
import area and again at lines 129-136) and instead import and call word_length
from tests.conftest (add word_length to the from tests.conftest import ... list
alongside ALL_LANGUAGES, load_language_config, load_word_list) where length
calculation is needed, ensuring any variable names (e.g., the local length
variable) match the helper's return.
In `@tests/test_word_lists.py`:
- Around line 42-45: Move the inline import of the grapheme module to the
top-level imports of tests/test_word_lists.py so it isn't re-imported on each
test run; remove the in-function "import grapheme" and leave the conditional
that uses grapheme.length unchanged (the variable invalid and the config check
can remain), ensuring grapheme is imported once at module scope and referenced
by name in the existing block.
In `@webapp/app.py`:
- Around line 149-151: The grapheme import is inside load_words, which is
suboptimal; move the import to module level with the other imports and remove
the local import inside the function. Update the top of the module to include
"import grapheme" (or alias as _grapheme if that convention is used elsewhere)
and then use that module inside load_words (function name: load_words) instead
of re-importing it locally.
In `@webapp/data/languages/uz/uz_characters.txt`:
- Line 26: Line 26 of uz_characters.txt uses U+02BB (ʻ) while other Uzbek assets
may use U+2019 (’) or U+0027 (') or U+02BC (ʼ); run the provided scan across all
Uzbek assets (uz_* .txt and keyboard/word-list JSONs) to detect which apostrophe
codepoints appear, choose the canonical codepoint your project uses (e.g. the
one already present in keyboard JSONs or word lists), and replace all
non-canonical variants with that canonical codepoint (including updating
uz_characters.txt line 26) so all Uzbek character/keyboard/word-list files use a
single apostrophe codepoint consistently.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 545a75c9-ea2f-4473-9c16-d7f4616cb056
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (71)
frontend/src/game.tsfrontend/src/graphemes.tsfrontend/src/types/index.tspyproject.tomlscripts/add_language.pyscripts/download_sources.pyscripts/improve_word_lists.pytests/conftest.pytests/test_daily_word.pytests/test_word_lists.pywebapp/app.pywebapp/data/languages/bn/SOURCES.mdwebapp/data/languages/bn/bn_5words.txtwebapp/data/languages/bn/bn_characters.txtwebapp/data/languages/bn/bn_keyboard.jsonwebapp/data/languages/bn/language_config.jsonwebapp/data/languages/hi/SOURCES.mdwebapp/data/languages/hi/hi_5words.txtwebapp/data/languages/hi/hi_characters.txtwebapp/data/languages/hi/hi_keyboard.jsonwebapp/data/languages/hi/language_config.jsonwebapp/data/languages/id/SOURCES.mdwebapp/data/languages/id/id_5words.txtwebapp/data/languages/id/id_5words_supplement.txtwebapp/data/languages/id/id_characters.txtwebapp/data/languages/id/id_daily_words.txtwebapp/data/languages/id/id_keyboard.jsonwebapp/data/languages/id/language_config.jsonwebapp/data/languages/mr/SOURCES.mdwebapp/data/languages/mr/language_config.jsonwebapp/data/languages/mr/mr_5words.txtwebapp/data/languages/mr/mr_characters.txtwebapp/data/languages/mr/mr_keyboard.jsonwebapp/data/languages/ms/SOURCES.mdwebapp/data/languages/ms/language_config.jsonwebapp/data/languages/ms/ms_5words.txtwebapp/data/languages/ms/ms_5words_supplement.txtwebapp/data/languages/ms/ms_characters.txtwebapp/data/languages/ms/ms_daily_words.txtwebapp/data/languages/ms/ms_keyboard.jsonwebapp/data/languages/sq/SOURCES.mdwebapp/data/languages/sq/language_config.jsonwebapp/data/languages/sq/sq_5words.txtwebapp/data/languages/sq/sq_5words_supplement.txtwebapp/data/languages/sq/sq_characters.txtwebapp/data/languages/sq/sq_daily_words.txtwebapp/data/languages/sq/sq_keyboard.jsonwebapp/data/languages/tl/SOURCES.mdwebapp/data/languages/tl/language_config.jsonwebapp/data/languages/tl/tl_5words.txtwebapp/data/languages/tl/tl_5words_supplement.txtwebapp/data/languages/tl/tl_characters.txtwebapp/data/languages/tl/tl_daily_words.txtwebapp/data/languages/tl/tl_keyboard.jsonwebapp/data/languages/ur/SOURCES.mdwebapp/data/languages/ur/language_config.jsonwebapp/data/languages/ur/ur_5words.txtwebapp/data/languages/ur/ur_5words_supplement.txtwebapp/data/languages/ur/ur_characters.txtwebapp/data/languages/ur/ur_daily_words.txtwebapp/data/languages/ur/ur_keyboard.jsonwebapp/data/languages/uz/SOURCES.mdwebapp/data/languages/uz/language_config.jsonwebapp/data/languages/uz/uz_5words.txtwebapp/data/languages/uz/uz_characters.txtwebapp/data/languages/uz/uz_keyboard.jsonwebapp/data/languages/yo/SOURCES.mdwebapp/data/languages/yo/language_config.jsonwebapp/data/languages/yo/yo_5words.txtwebapp/data/languages/yo/yo_characters.txtwebapp/data/languages/yo/yo_keyboard.json
| def _get_wordfreq_5letter(lang_code: str) -> dict[str, float]: | ||
| """Get 5-letter words from wordfreq. Lighter than improve_word_lists version | ||
| (no char_set needed since we filter by script pattern instead).""" | ||
| try: | ||
| from wordfreq import top_n_list, zipf_frequency | ||
| except ImportError: | ||
| print(" wordfreq not installed, skipping") | ||
| return {} | ||
|
|
||
| words = {} | ||
| try: | ||
| for w in top_n_list(lang_code, 200000): | ||
| w = w.lower() | ||
| if len(w) == 5 and w.isalpha(): | ||
| words[w] = zipf_frequency(w, lang_code) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
for code in hi mr bn; do
file="$(fd -a "^${code}_5words\.txt$" webapp/data/languages | head -n1 || true)"
[[ -n "${file}" ]] || continue
python - "$code" "$file" <<'PY'
import sys, unicodedata
from pathlib import Path
code = sys.argv[1]
path = Path(sys.argv[2])
for raw in path.read_text(encoding="utf-8").splitlines():
word = raw.strip()
if word and (len(word) != 5 or not word.isalpha()):
cats = [unicodedata.category(ch) for ch in word]
print(f"{code}: current filter would skip {word!r} len={len(word)} isalpha={word.isalpha()} categories={cats}")
break
PY
done
rg -n 'len\(w\) == 5|len\(word\) == 5|isalpha\(\)' scripts/add_language.pyRepository: Hugo0/wordle
Length of output: 654
🏁 Script executed:
#!/bin/bash
# Check context around problematic lines
echo "=== Line 56 context ==="
sed -n '50,65p' scripts/add_language.py
echo -e "\n=== Lines 542-556 (original range) ==="
sed -n '542,556p' scripts/add_language.py
echo -e "\n=== Lines 565-578 (also applies range) ==="
sed -n '565,578p' scripts/add_language.py
echo -e "\n=== Lines 700-710 (keyboard context) ==="
sed -n '700,710p' scripts/add_language.pyRepository: Hugo0/wordle
Length of output: 2378
Finish the bootstrapper's grapheme-aware word filtering.
len(...) == 5 and isalpha() are codepoint-based, so valid 5-grapheme Hindi/Marathi/Bengali entries with combining marks get dropped. Test data confirms words like 'अपलाभिया' (8 codepoints with Mc/Mn categories), 'तक्षशिला' (8 codepoints), and 'স্পাইগিরি' (9 codepoints) fail these filters and cannot appear in the generated word lists. This prevents the bootstrapper from recreating the grapheme-mode languages added in this PR.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/add_language.py` around lines 542 - 556, Replace the codepoint-based
filters in _get_wordfreq_5letter (the len(w) == 5 and w.isalpha() checks) with
grapheme-cluster-aware logic: import the third-party regex module and compute
clusters = regex.findall(r'\X', w); require len(clusters) == 5 and that each
cluster contains at least one letter (check characters' Unicode category
startswith 'L' via unicodedata.category) to allow base+combining-mark graphemes;
if regex isn't available, fall back to the existing behavior or log and skip
gracefully. This keeps the function name and overall loop intact while ensuring
Hindi/Marathi/Bengali words with combining marks are counted correctly.
| else: | ||
| # Devanagari / other: generate alphabetical keyboard from characters | ||
| # Group into rows of ~10-12 chars | ||
| rows = [] | ||
| chars = [c for c in characters if c.isalpha()] | ||
| row_size = max(10, len(chars) // 3) | ||
| for i in range(0, len(chars), row_size): | ||
| rows.append(chars[i : i + row_size]) | ||
| # Add enter/backspace to last row | ||
| if rows: | ||
| rows[-1] = ["⇨"] + rows[-1] + ["⌫"] | ||
| else: | ||
| rows = [["⇨", "⌫"]] | ||
| return { | ||
| "default": "alphabetical", | ||
| "layouts": {"alphabetical": {"label": "Alphabetical", "rows": rows}}, | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
for code in hi mr bn; do
file="$(fd -a "^${code}_characters\.txt$" webapp/data/languages | head -n1 || true)"
[[ -n "${file}" ]] || continue
python - "$code" "$file" <<'PY'
import sys, unicodedata
from pathlib import Path
code = sys.argv[1]
path = Path(sys.argv[2])
dropped = []
for ch in path.read_text(encoding="utf-8").splitlines():
if ch and not ch.isalpha():
dropped.append(f"{ch!r} {unicodedata.name(ch, 'UNKNOWN')} {unicodedata.category(ch)}")
if dropped:
print(f"{code}: characters current generator would drop")
for item in dropped[:10]:
print(f" {item}")
PY
done
rg -n 'chars = \[c for c in characters if c\.isalpha\(\)\]' scripts/add_language.pyRepository: Hugo0/wordle
Length of output: 1247
Don't strip combining marks from generated non-Latin keyboards.
c.isalpha() filters out diacritical marks essential for Indian scripts. Hindi, Marathi, and Bengali character files all contain vowel signs, anusvara, visarga, and other combining marks (Unicode categories Mn, Mc) that are stripped by this filter, making auto-generated keyboards unable to type words present in the generated word list.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/add_language.py` around lines 699 - 715, The current generation
filters characters with c.isalpha(), which drops Unicode combining marks (Mn,
Mc) needed for Devanagari and other Indic scripts; update the filtering in the
chars list comprehension to keep both letter and mark categories (use
unicodedata.category and include characters where category starts with 'L' or
'M') so vowel signs, anusvara, visarga, etc. are preserved when building rows,
leaving the rest of the row logic (row_size, rows, adding "⇨"/"⌫", and returning
the layouts) unchanged.
| try: | ||
| data = json.loads(json_file.read_text(encoding="utf-8")) | ||
| words = sorted(w for w in data.keys() if len(w) == 5 and w.isalpha() and w == w.lower()) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
for code in hi mr bn; do
file="$(fd -a "^${code}_5words\.txt$" webapp/data/languages | head -n1 || true)"
[[ -n "${file}" ]] || continue
python - "$code" "$file" <<'PY'
import sys, unicodedata
from pathlib import Path
code = sys.argv[1]
path = Path(sys.argv[2])
for raw in path.read_text(encoding="utf-8").splitlines():
word = raw.strip()
if word and (len(word) != 5 or not word.isalpha()):
cats = [unicodedata.category(ch) for ch in word]
print(f"{code}: current extractor would skip {word!r} len={len(word)} isalpha={word.isalpha()} categories={cats}")
break
PY
done
rg -n 'len\(w\) == 5|len\(word\) == 5|isalpha\(\)' scripts/download_sources.pyRepository: Hugo0/wordle
Length of output: 961
Make Kaikki extraction grapheme-aware too.
The len(...) == 5 and isalpha() filters discard valid entries with combining marks. Real examples from the data: Hindi 'अपलाभिया' (len=8 with Mc marks), Marathi 'तक्षशिला' (len=8 with Mn/Mc), Bengali 'স্পাইগিরি' (len=9 with Mn/Mc) all fail these checks despite being legitimate words. These are lost at download/extraction time; fixing only the app-side loader cannot recover them.
Also applies to lines 367, 398, 423.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/download_sources.py` around lines 347 - 349, The current filter uses
len(w) == 5 and w.isalpha() which breaks on grapheme clusters and combining
marks; change the length check to count Unicode grapheme clusters (e.g., use
regex.findall(r'\X', w) and check len(...) == 5) and replace isalpha() with a
check that allows base letters plus combining marks (e.g., all(c.isalpha() or
unicodedata.combining(c) for c in w)); also use casefold() instead of lower()
for safer case comparison (w == w.casefold()). Apply these replacements to the
words = sorted(...) extraction and the other identical filter sites in the file
where the same len/isalpha/lower pattern is used.
| آؤنگا | ||
| آئندہ | ||
| آئینی | ||
| آبادی | ||
| آبشار | ||
| آتشیں | ||
| آجاتا | ||
| آرائش | ||
| آرسیی | ||
| آرڈمر | ||
| آریئر | ||
| آزادی | ||
| آسانی | ||
| آسمان | ||
| آفیسر | ||
| آمادہ | ||
| آمدنی | ||
| آمدید | ||
| آنتوں | ||
| آوروں | ||
| آکٹپس | ||
| آگئیں | ||
| آہستہ | ||
| آہنگی | ||
| أہغاد | ||
| ابتدا | ||
| ابرار | ||
| ابلاغ | ||
| اتارو | ||
| اتحاد | ||
| اترتے | ||
| اترنا | ||
| اترنے | ||
| اتفاق | ||
| اتوار | ||
| اثاثہ | ||
| اثرات | ||
| اثناء | ||
| اجارہ | ||
| اجازت | ||
| اجزاء | ||
| اجلاس | ||
| اجمود | ||
| اجنبی | ||
| احاطہ | ||
| احساس | ||
| احکام | ||
| اخبار | ||
| اخروٹ | ||
| ادارے | ||
| ادخال | ||
| ادراک | ||
| ادھار | ||
| ارادہ | ||
| اربوں | ||
| اردنی | ||
| ارسال | ||
| ارکان | ||
| ازارہ | ||
| اسامہ | ||
| استاد | ||
| اسرار | ||
| اسلئے | ||
| اسلام | ||
| اسلحہ | ||
| اسلیے | ||
| اسناد | ||
| اسٹار | ||
| اسٹاف | ||
| اسٹیج | ||
| اسٹیو | ||
| اسٹیٹ | ||
| اسپاٹ | ||
| اسکور | ||
| اسکول | ||
| اسکوپ | ||
| اسکین | ||
| اشارہ | ||
| اشارے | ||
| اشکال | ||
| اشیاء | ||
| اصرار | ||
| اصطبل | ||
| اصلاح | ||
| اصلیت | ||
| اضافہ | ||
| اضافی | ||
| اضافے | ||
| اطءلہ | ||
| اطاعت | ||
| اطراف | ||
| اطلاع | ||
| اطلاق | ||
| اظہار | ||
| اعداد | ||
| اعزاز | ||
| اعصاب | ||
| اعضاء | ||
| اعلان | ||
| اعمال | ||
| اغواء | ||
| افراد | ||
| افسوس | ||
| افواج | ||
| افواہ | ||
| اقدام | ||
| اقرار | ||
| اقسام | ||
| اقلیت | ||
| اقوام | ||
| الادا | ||
| الارم | ||
| البتہ | ||
| التجا | ||
| الجھن | ||
| الجھی | ||
| الحال | ||
| الزام | ||
| الشان | ||
| العین | ||
| الفاط | ||
| الفاظ | ||
| الموت | ||
| الویل | ||
| الینا | ||
| امداد | ||
| امراء | ||
| املاک | ||
| اموات | ||
| امکان | ||
| اناڑی | ||
| انتھک | ||
| انتہا | ||
| انتیس | ||
| انجام | ||
| انداز | ||
| اندوز | ||
| اندھا | ||
| اندھے | ||
| انسان | ||
| انصاف | ||
| انعام | ||
| انٹری | ||
| انٹیل | ||
| انڈیا | ||
| انڈین | ||
| انکار | ||
| انگلی | ||
| انگیز | ||
| انھوں | ||
| انھیں | ||
| انہوں | ||
| انہین | ||
| انہیں | ||
| اوائل | ||
| اودان | ||
| اورات | ||
| اورجب | ||
| اورہر | ||
| اوقات | ||
| اولاد | ||
| اولگا | ||
| اولین | ||
| اونچی | ||
| اونچے | ||
| اٹاری | ||
| اٹھاؤ | ||
| اٹھاو | ||
| اٹھنا | ||
| اپددر | ||
| اپریل | ||
| اپنوں | ||
| اپہاس | ||
| اچانک | ||
| اچھال | ||
| اڑانے | ||
| اکٹھا | ||
| اکٹھے | ||
| اکڑکر | ||
| اکھاڑ | ||
| اکیلا | ||
| اکیلی | ||
| اکیلے | ||
| اگرچہ | ||
| اگستس | ||
| اگلوا | ||
| اہداف | ||
| اہمیت | ||
| ایجاد | ||
| ایجنٹ | ||
| ایران | ||
| ایریا | ||
| ایمان | ||
| ایملی | ||
| اینجل | ||
| اینڈی | ||
| اینکر | ||
| ایونز | ||
| ایونٹ | ||
| ایڑھی | ||
| ایکشن | ||
| ایکٹر | ||
| ایکٹو | ||
| باؤنڈ | ||
| بائبل | ||
| بائیں | ||
| باتوں | ||
| باتیں | ||
| باخبر | ||
| بارنس | ||
| بارود | ||
| بارڈر | ||
| بازار | ||
| بالوں | ||
| بالٹک | ||
| بالٹی | ||
| بالکل | ||
| باندھ | ||
| بانڈز | ||
| باہری | ||
| باہمی | ||
| باہوں | ||
| بتاءو | ||
| بتاؤں | ||
| بتائی | ||
| بتائے | ||
| بتاتا | ||
| بتاتی | ||
| بتاتے | ||
| بتانا | ||
| بتانے | ||
| بتاوں | ||
| بتایا | ||
| بجائے | ||
| بجانے | ||
| بحالی | ||
| بحران | ||
| بحریہ | ||
| بخشوں | ||
| بدلتا | ||
| بدلتے | ||
| بدلنے | ||
| بدماش | ||
| بدنام | ||
| برآمد | ||
| براؤن | ||
| برائن | ||
| برائی | ||
| برائے | ||
| برابر | ||
| برادر | ||
| برانڈ | ||
| براوو | ||
| برباد | ||
| برتاؤ | ||
| برتری | ||
| برتھا | ||
| برخاف | ||
| برسات | ||
| برسوں | ||
| برطرف | ||
| برعکس | ||
| بریکر | ||
| بریکٹ | ||
| بزدلی | ||
| بشانہ | ||
| بظاہر | ||
| بغاوت | ||
| بغداد | ||
| بفیلو | ||
| بقایا | ||
| بلائے | ||
| بلاتا | ||
| بلاتے | ||
| بلاسٹ | ||
| بلانا | ||
| بلاوی | ||
| بلاکس | ||
| بلایا | ||
| بلبلا | ||
| بلندی | ||
| بلوچی | ||
| بلڈاگ | ||
| بلڈنگ | ||
| بلیوں | ||
| بمشکل | ||
| بناؤں | ||
| بنائی | ||
| بنائے | ||
| بناتا | ||
| بناتی | ||
| بناتے | ||
| بنانا | ||
| بنانے | ||
| بناوٹ | ||
| بنایا | ||
| بنجمن | ||
| بندوا | ||
| بندوق | ||
| بندوں | ||
| بندھن | ||
| بندھے | ||
| بنگلہ | ||
| بنیاد | ||
| بنیان | ||
| بوائے | ||
| بورنگ | ||
| بوسٹن | ||
| بولتا | ||
| بولتے | ||
| بولنا | ||
| بولنے | ||
| بولوں | ||
| بولٹن | ||
| بولیں | ||
| بوڑھا | ||
| بوڑھے | ||
| بچائی | ||
| بچاتا | ||
| بچالو | ||
| بچانا | ||
| بچانے | ||
| بچایا | ||
| بڑپپن | ||
| بڑھتا | ||
| بڑھتی | ||
| بڑھتے | ||
| بڑھنے | ||
| بڑھیں | ||
| بکارا | ||
| بکسوا | ||
| بکواس | ||
| بگرام | ||
| بگولے | ||
| بھائی | ||
| بھاری | ||
| بھاگا | ||
| بھاگو | ||
| بھاگے | ||
| بھرتی | ||
| بھرنے | ||
| بھریں | ||
| بھوری | ||
| بھولا | ||
| بھولو | ||
| بھولی | ||
| بھوکا | ||
| بھوکے | ||
| بھٹکا | ||
| بھیجا | ||
| بھیجو | ||
| بھیجی | ||
| بھیجے | ||
| بہادر | ||
| بہانا | ||
| بہانہ | ||
| بہانے | ||
| بہایا | ||
| بہبود | ||
| بہتری | ||
| بہنوں | ||
| بیاسی | ||
| بیبسی | ||
| بیجنگ | ||
| بیجوں | ||
| بیرنگ | ||
| بیروت | ||
| بیرون | ||
| بیضوی | ||
| بیلچے | ||
| بیمار | ||
| بیونس | ||
| بیٹری | ||
| بیٹوں | ||
| بیٹھا | ||
| بیٹھو | ||
| بیٹھی | ||
| بیٹھے | ||
| بیچلر | ||
| بیچنے | ||
| بیچوں | ||
| بیکار | ||
| بیہوش | ||
| بےحوش | ||
| بےکار | ||
| تائید | ||
| تابوت | ||
| تاخیر | ||
| تاریخ | ||
| تاریک | ||
| تالاب | ||
| تاوان | ||
| تاکنا | ||
| تباہی | ||
| تبدیل | ||
| تبصرہ | ||
| تبولی | ||
| تجارت | ||
| تجاست | ||
| تجاوز | ||
| تجربہ | ||
| تجربے | ||
| تجزیہ | ||
| تجوری | ||
| تجویز | ||
| تحائف | ||
| تحریر | ||
| تحریک | ||
| تحقیق | ||
| تحلیل | ||
| تحویل | ||
| تخلیق | ||
| تدفین | ||
| تدویر | ||
| تذکرے | ||
| تربیت | ||
| ترتیب | ||
| ترجمہ | ||
| ترجیح | ||
| ترسیل | ||
| ترمیم | ||
| ترکون | ||
| ترکوں | ||
| تزئین | ||
| تسبیح | ||
| تسلسل | ||
| تسلیم | ||
| تشخیص | ||
| تشریح | ||
| تشریف | ||
| تشویش | ||
| تشکیل | ||
| تصادم | ||
| تصدیق | ||
| تصویر | ||
| تعارف | ||
| تعاقب | ||
| تعالی | ||
| تعاون | ||
| تعداد | ||
| تعریف | ||
| تعلیم | ||
| تعمیر | ||
| تعمیل | ||
| تعویذ | ||
| تفتشی | ||
| تفتیش | ||
| تفریح | ||
| تفصیل | ||
| تفویض | ||
| تفہیم | ||
| تقاضہ | ||
| تقدیر | ||
| تقریب | ||
| تقریر | ||
| تقسیم | ||
| تقطیع | ||
| تلاشی | ||
| تلافی | ||
| تلوار | ||
| تمارا | ||
| تماشا | ||
| تمہیں | ||
| تناظر | ||
| تنظیم | ||
| تنقید | ||
| توازن | ||
| توسیع | ||
| تولیہ | ||
| توپاک | ||
| توڑنا | ||
| توڑنے | ||
| توکیا | ||
| توہین | ||
| تکلیف | ||
| تکمیل | ||
| تھامس | ||
| تھرمل | ||
| تھرٹی | ||
| تھنڈر | ||
| تھوڑا | ||
| تھوڑی | ||
| تھوڑے | ||
| تھیٹر | ||
| تہائی | ||
| تہارا | ||
| تہارے | ||
| تہذیب | ||
| تیاری | ||
| تیسرا | ||
| تیسری | ||
| تیسرے | ||
| تیمور | ||
| تینوں | ||
| ثقافت | ||
| جائزہ | ||
| جائیں | ||
| جارہا | ||
| جارہے | ||
| جاسوس | ||
| جامنی | ||
| جانتا | ||
| جانتی | ||
| جانتے | ||
| جانسن | ||
| جاننا | ||
| جاننے | ||
| جانور | ||
| جانوں | ||
| جانیں | ||
| جاوگی | ||
| جاپان | ||
| جاگتے | ||
| جاگنا | ||
| جاہتی | ||
| جاہیں | ||
| جایئے | ||
| جبڑوں | ||
| جتاؤں | ||
| جذبات | ||
| جرائم | ||
| جرمنی | ||
| جزیرہ | ||
| جزیرے | ||
| جسموں | ||
| جلانے | ||
| جللاد | ||
| جماتی | ||
| جماعت | ||
| جمپنگ | ||
| جنازے | ||
| جنوبی | ||
| جنوری | ||
| جنگجو | ||
| جنگلی | ||
| جنگوں | ||
| جنگیں | ||
| جنھیں | ||
| جنہوں | ||
| جنہیں | ||
| جنیوا | ||
| جوابی | ||
| جواگر | ||
| جوتوں | ||
| جولیا | ||
| جوہان | ||
| جوہری | ||
| جگائے | ||
| جگہوں | ||
| جگہیں | ||
| جھاڑو | ||
| جھجھک | ||
| جھنڈا | ||
| جھنڈے | ||
| جھونک | ||
| جھوٹا | ||
| جھوٹی | ||
| جھوٹے | ||
| جھٹلا | ||
| جھٹکا | ||
| جھپٹا | ||
| جھگڑا | ||
| جھگڑے | ||
| جہالت | ||
| جیتنے | ||
| جینرو | ||
| جیکسن | ||
| حادثہ | ||
| حادثے | ||
| حالات | ||
| حالیہ | ||
| حاملہ | ||
| حرارت | ||
| حراست | ||
| حسنسن | ||
| حضرات | ||
| حفاظت | ||
| حقائق | ||
| حقدار | ||
| حقیقت | ||
| حقیقی | ||
| حلقوں | ||
| حماقت | ||
| حمایت | ||
| حملوں | ||
| حوالے | ||
| حوروں | ||
| حوریں | ||
| حوصلہ | ||
| حکومت | ||
| حیثیت | ||
| حیران | ||
| حیوان | ||
| خاتمہ | ||
| خاتمے | ||
| خاتون | ||
| خارجہ | ||
| خارجی | ||
| خاصیت | ||
| خاموش | ||
| خانوں | ||
| خبروں | ||
| خبریں | ||
| خداؤں | ||
| خدائی | ||
| خدارا | ||
| خداوں | ||
| خدایا | ||
| خدشات | ||
| خدمات | ||
| خرابی | ||
| خراپن | ||
| خروںچ | ||
| خرگوش | ||
| خریدا | ||
| خزانہ | ||
| خزانے | ||
| خصوصی | ||
| خطرات | ||
| خلاصہ | ||
| خلیات | ||
| خواجہ | ||
| خواہش | ||
| خوراک | ||
| خہجءز | ||
| خیانت | ||
| خیموں | ||
| دائرہ | ||
| دائرے | ||
| دائیں | ||
| داخلہ | ||
| داخلی | ||
| داخلے | ||
| دالان | ||
| داڑھی | ||
| داہنے | ||
| دبانا | ||
| دبانے | ||
| درآمد | ||
| دراصل | ||
| درپیش | ||
| درکار | ||
| دستخط | ||
| دسمبر | ||
| دفاتر | ||
| دفاعی | ||
| دفتری | ||
| دلائی | ||
| دلاتا | ||
| دلاتی | ||
| دلاتے | ||
| دلانے | ||
| دلواؤ | ||
| دلچسب | ||
| دلچسپ | ||
| دلیری | ||
| دماغی | ||
| دمیتر | ||
| دوائی | ||
| دوران | ||
| دوروں | ||
| دوستو | ||
| دوستی | ||
| دوسرا | ||
| دوسری | ||
| دوسرے | ||
| دونوں | ||
| دونگا | ||
| دوپہر | ||
| دوچار | ||
| دوڑنے | ||
| دوڑوں | ||
| دوگلا | ||
| دوگنی | ||
| دوہرا | ||
| دکھاؤ | ||
| دکھاو | ||
| دکھتا | ||
| دکھتے | ||
| دھبوں | ||
| دھمکی | ||
| دھندہ | ||
| دھواں | ||
| دھونے | ||
| دھوکا | ||
| دھوکہ | ||
| دھوکے | ||
| دھچکا | ||
| دھڑوں | ||
| دھڑکن | ||
| دھیان | ||
| دھیرے | ||
| دھیما | ||
| دہائی | ||
| دہراؤ | ||
| دہندہ | ||
| دیالی | ||
| دیانا | ||
| دیجئے | ||
| دیرپا | ||
| دیوار | ||
| دیکھا | ||
| دیکھو | ||
| دیکھی | ||
| دیکھے | ||
| ذائقہ | ||
| ذخائر | ||
| ذخیرہ | ||
| ذرائع | ||
| ذریعہ | ||
| ذریعے | ||
| ذلالت | ||
| ذہجءز | ||
| ذہنوں | ||
| ذہنیت | ||
| راؤنڈ | ||
| رائفل | ||
| رابرٹ | ||
| رابطہ | ||
| رابطے | ||
| راتوں | ||
| راجرز | ||
| راستہ | ||
| راستے | ||
| راکٹس | ||
| راہیں | ||
| ربیکا | ||
| رجحان | ||
| رجمنٹ | ||
| ردعمل | ||
| رسائی | ||
| رسالت | ||
| رسانی | ||
| رسیلی | ||
| رسیوں | ||
| رعایا | ||
| رعایت | ||
| رفتار | ||
| روابط | ||
| روانہ | ||
| روایت | ||
| روبوٹ | ||
| روحوں | ||
| روشنی | ||
| رولنڈ | ||
| رولنگ | ||
| رومال | ||
| رونلڈ | ||
| روٹری | ||
| روپوش | ||
| روکتا | ||
| روکنا | ||
| روکنے | ||
| رپورٹ | ||
| رکاوٹ | ||
| رکنیت | ||
| رکھتا | ||
| رکھتی | ||
| رکھتے | ||
| رکھنا | ||
| رکھنی | ||
| رکھنے | ||
| رکھوں | ||
| رکھیں | ||
| رگڑتا | ||
| رہائش | ||
| رہائی | ||
| رہنما | ||
| رہوگے | ||
| ریاست | ||
| ریجنل | ||
| ریزرو | ||
| ریسرچ | ||
| ریشمی | ||
| ریلوے | ||
| ریمزے | ||
| ریمسی | ||
| ریورس | ||
| ریوین | ||
| ریڈار | ||
| ریڈیو | ||
| ریکٹر | ||
| زانٹی | ||
| زاویہ | ||
| زخموں | ||
| زلزلہ | ||
| زلزلے | ||
| زمانے | ||
| زندگی | ||
| زگانے | ||
| زیادہ | ||
| سائبر | ||
| سائرل | ||
| سائرن | ||
| سائنس | ||
| سابقہ | ||
| ساتھی | ||
| ساحلی | ||
| ساختہ | ||
| سادگی | ||
| ساسیں | ||
| سالار | ||
| سالسا | ||
| سالوں | ||
| سالچک | ||
| سامان | ||
| سامبو | ||
| سامری | ||
| سامنا | ||
| سامنے | ||
| سانتا | ||
| سانحہ | ||
| سانحے | ||
| سبارو | ||
| ستارہ | ||
| ستارے | ||
| ستمبر | ||
| سجایا | ||
| سخاوت | ||
| سراسر | ||
| سراہا | ||
| سرجری | ||
| سرحدی | ||
| سردار | ||
| سرسبز | ||
| سرسوں | ||
| سرغنہ | ||
| سرمئی | ||
| سرورز | ||
| سروسز | ||
| سرکشی | ||
| سرکٹس | ||
| سرینا | ||
| سعودی | ||
| سفارت | ||
| سفارش | ||
| سلائڈ | ||
| سلامت | ||
| سلسلہ | ||
| سلسلے | ||
| سلطان | ||
| سلطنت | ||
| سلویو | ||
| سلیکس | ||
| سماجی | ||
| سماعت | ||
| سمتار | ||
| سمتبر | ||
| سمجھا | ||
| سمجھی | ||
| سمجھے | ||
| سمسٹر | ||
| سمندر | ||
| سمنوی | ||
| سنائی | ||
| سناتا | ||
| سنایا | ||
| سنبھل | ||
| سنتان | ||
| سنتری | ||
| سنسنی | ||
| سنوڈن | ||
| سنوگی | ||
| سنچری | ||
| سنگین | ||
| سنہری | ||
| سنہرے | ||
| سوئنگ | ||
| سوائے | ||
| سوادج | ||
| سواری | ||
| سوراخ | ||
| سوزاک | ||
| سوچتا | ||
| سوچتی | ||
| سوچتے | ||
| سوچلو | ||
| سوچنا | ||
| سوچنی | ||
| سوچنے | ||
| سوڈان | ||
| سویرے | ||
| سویٹی | ||
| سٹائل | ||
| سٹارک | ||
| سٹریٹ | ||
| سٹیشن | ||
| سٹیفن | ||
| سٹیمپ | ||
| سٹیون | ||
| سٹیوی | ||
| سپاہی | ||
| سپریم | ||
| سپیشل | ||
| سچائی | ||
| سڑکوں | ||
| سکاؤٹ | ||
| سکتیں | ||
| سکرپٹ | ||
| سکرین | ||
| سکریپ | ||
| سکریچ | ||
| سکھاؤ | ||
| سگریٹ | ||
| سگنلز | ||
| سہارے | ||
| سہولت | ||
| سیارہ | ||
| سیارے | ||
| سیاست | ||
| سیاسی | ||
| سیدھا | ||
| سیدھی | ||
| سیدھے | ||
| سیریز | ||
| سیلاب | ||
| سیلاس | ||
| سیلمن | ||
| سینئر | ||
| سینٹر | ||
| سینکا | ||
| سیٹیں | ||
| سیڈان | ||
| سیکرٹ | ||
| سیکشن | ||
| سیکنڈ | ||
| سیکھا | ||
| سییلی | ||
| شاؤلن | ||
| شاباش | ||
| شالوم | ||
| شاپنگ | ||
| شاگرد | ||
| شخصیت | ||
| شرابا | ||
| شرابی | ||
| شراکت | ||
| شرطیہ | ||
| شرماو | ||
| شرٹوں | ||
| شریان | ||
| شعلوں | ||
| شمالی | ||
| شناخت | ||
| شوٹنگ | ||
| شکاری | ||
| شکایت | ||
| شکریہ | ||
| شکلیں | ||
| شکنیں | ||
| شگاگو | ||
| شہادت | ||
| شہروں | ||
| شہسہا | ||
| شیروں | ||
| شیطان | ||
| شیلٹر | ||
| شیپرڈ | ||
| شیڈول | ||
| صحافی | ||
| صحراء | ||
| صدیوں | ||
| صفائی | ||
| صفایا | ||
| صفحات | ||
| صندوق | ||
| صوبوں | ||
| ضآؤاط | ||
| ضرورت | ||
| ضروری | ||
| ضمانت | ||
| ضوابط | ||
| طالاب | ||
| طریقہ | ||
| طریقے | ||
| طلائی | ||
| طلسمی | ||
| طوفان | ||
| طیارہ | ||
| طیارے | ||
| ظریفی | ||
| عاجزی | ||
| عارضی | ||
| عالمی | ||
| عالیہ | ||
| عبادت | ||
| عدالت | ||
| عراقی | ||
| عربوں | ||
| عزائم | ||
| عسکری | ||
| عقائد | ||
| عقیدہ | ||
| عقیدے | ||
| علاقہ | ||
| علاقے | ||
| علامت | ||
| علاوہ | ||
| علموں | ||
| علیکم | ||
| عمارت | ||
| عملوں | ||
| عنوان | ||
| عوامی | ||
| عہدوں | ||
| غبارے | ||
| غداری | ||
| غرائب | ||
| غمزدہ | ||
| غمگین | ||
| غنڈوں | ||
| غٹاغٹ | ||
| غیرتی | ||
| فائدہ | ||
| فائدے | ||
| فائٹر | ||
| فائیو | ||
| فارسی | ||
| فارما | ||
| فاصلہ | ||
| فاصلے | ||
| فرائض | ||
| فرانس | ||
| فراہم | ||
| فرشتہ | ||
| فرعون | ||
| فروخت | ||
| فروری | ||
| فرینڈ | ||
| فرینک | ||
| فضائی | ||
| فضیلت | ||
| فلائٹ | ||
| فلسفہ | ||
| فلسفے | ||
| فلموں | ||
| فلمیں | ||
| فلٹرز | ||
| فنڈنگ | ||
| فوائد | ||
| فوارہ | ||
| فوارے | ||
| فوبیا | ||
| فوجوں | ||
| فوجیں | ||
| فورسز | ||
| فہرست | ||
| فیصلہ | ||
| فیصلے | ||
| فینکس | ||
| فیڈرل | ||
| قاعدہ | ||
| قافلے | ||
| قالین | ||
| قانون | ||
| قبیلہ | ||
| قبیلے | ||
| قدرتی | ||
| قدموں | ||
| قذافی | ||
| قربان | ||
| قریبی | ||
| قسمتی | ||
| قسمیں | ||
| قصائی | ||
| قفقاز | ||
| قواعد | ||
| قوموں | ||
| قومیت | ||
| قیادت | ||
| قیامت | ||
| قیمتی | ||
| لاؤنج | ||
| لائٹر | ||
| لائیو | ||
| لائیں | ||
| لائیے | ||
| لاتوں | ||
| لارنس | ||
| لازما | ||
| لازمی | ||
| لاشیں | ||
| لافلن | ||
| لالچی | ||
| لاٹھی | ||
| لاپتہ | ||
| لاہور | ||
| لبرٹی | ||
| لبنان | ||
| لرزاں | ||
| لطیفے | ||
| لعنتی | ||
| لفظوں | ||
| لمحات | ||
| لمحوں | ||
| لنڈسے | ||
| لنگوٹ | ||
| لنگڑے | ||
| لورین | ||
| لوسرن | ||
| لومڑی | ||
| لونگا | ||
| لوٹنا | ||
| لوٹنے | ||
| لوڈنگ | ||
| لوگوں | ||
| لڑائی | ||
| لڑاکا | ||
| لڑرہے | ||
| لڑکوں | ||
| لکھنا | ||
| لکھنے | ||
| لکھیں | ||
| لگائی | ||
| لگائے | ||
| لگاتا | ||
| لگاتے | ||
| لگانا | ||
| لگانے | ||
| لگایا | ||
| لگرہا | ||
| لہروں | ||
| لیبیا | ||
| لیجئے | ||
| لیجنڈ | ||
| ماؤنٹ | ||
| مائنس | ||
| مائیک | ||
| مابین | ||
| ماتحت | ||
| ماحول | ||
| مارتا | ||
| مارتے | ||
| مارجن | ||
| مارشل | ||
| مارنا | ||
| مارنے | ||
| ماروں | ||
| مارٹم | ||
| مارٹن | ||
| مارکس | ||
| مارکو | ||
| مارگی | ||
| ماریں | ||
| ماسٹر | ||
| ماسکو | ||
| مافیا | ||
| مالکن | ||
| مالیت | ||
| مانتا | ||
| مانتی | ||
| مانتے | ||
| ماندہ | ||
| ماننا | ||
| مانند | ||
| ماننی | ||
| ماننے | ||
| مانگو | ||
| مانگے | ||
| مانیں | ||
| مایوس | ||
| مبارک | ||
| مبتلا | ||
| مبینہ | ||
| متاثر | ||
| متجسس | ||
| متحدہ | ||
| متحمل | ||
| مترجم | ||
| متروک | ||
| متصور | ||
| متضاد | ||
| متعلق | ||
| متعین | ||
| متغیر | ||
| متوجہ | ||
| متوقع | ||
| مثالی | ||
| مجازی | ||
| مجبور | ||
| مجروح | ||
| محافظ | ||
| محبوب | ||
| محتاط | ||
| محتاظ | ||
| محترم | ||
| محدود | ||
| محروم | ||
| محسوس | ||
| محفوظ | ||
| محلوں | ||
| محکمہ | ||
| مخالف | ||
| مخبری | ||
| مختار | ||
| مختتم | ||
| مختصر | ||
| مختلف | ||
| مخروط | ||
| مخصوص | ||
| مخلوط | ||
| مخلوق | ||
| مخواہ | ||
| مداوا | ||
| مدراس | ||
| مدنظر | ||
| مذموم | ||
| مذہبی | ||
| مربوط | ||
| مرتبہ | ||
| مرتھا | ||
| مرجھا | ||
| مرحلہ | ||
| مرحلے | ||
| مرحوم | ||
| مردار | ||
| مردوں | ||
| مرموز | ||
| مروان | ||
| مرچکا | ||
| مرکزی | ||
| مرکوز | ||
| مرگئے | ||
| مرہون | ||
| مریگا | ||
| مزدور | ||
| مسئلہ | ||
| مسئلے | ||
| مسائل | ||
| مسافر | ||
| مستحق | ||
| مسترد | ||
| مستقل | ||
| مستند | ||
| مستول | ||
| مسدود | ||
| مسلسل | ||
| مسمار | ||
| مسودہ | ||
| مسوری | ||
| مسٹرد | ||
| مسکرا | ||
| مسیحی | ||
| مشاغل | ||
| مشتبہ | ||
| مشترک | ||
| مشتمل | ||
| مشرقی | ||
| مشروب | ||
| مشروط | ||
| مشغول | ||
| مشورہ | ||
| مشکوک | ||
| مشہور | ||
| مصائب | ||
| مصروف | ||
| مصلحت | ||
| مصیبت | ||
| مضبوط | ||
| مضحکہ | ||
| مضمون | ||
| مطابق | ||
| مطلوب | ||
| مطمئن | ||
| مطمعن | ||
| مظلوم | ||
| معافی | ||
| معبود | ||
| معجزہ | ||
| معدنی | ||
| معذرت | ||
| معذور | ||
| معرفت | ||
| معروف | ||
| معزرت | ||
| معصوم | ||
| معلوم | ||
| معمول | ||
| معموں | ||
| معنوں | ||
| معیار | ||
| مغربی | ||
| مغفرت | ||
| مفرور | ||
| مفلوج | ||
| مقاصد | ||
| مقالہ | ||
| مقامی | ||
| مقبول | ||
| مقدار | ||
| مقدمہ | ||
| مقدمے | ||
| ملاتے | ||
| ملازم | ||
| ملانے | ||
| ملاکر | ||
| ملایا | ||
| ملحقہ | ||
| ملعون | ||
| ملٹری | ||
| ملکیت | ||
| ممالک | ||
| ممنوع | ||
| ممکنہ | ||
| مناسب | ||
| مناظر | ||
| منافق | ||
| منانے | ||
| منتخب | ||
| منتظر | ||
| منتظم | ||
| منتقل | ||
| منتیں | ||
| منجمد | ||
| منحصر | ||
| منحوس | ||
| منزلہ | ||
| منسلک | ||
| منسوب | ||
| منسوخ | ||
| منطقی | ||
| منظور | ||
| منعقد | ||
| منفرد | ||
| منقطع | ||
| منٹوں | ||
| منہدم | ||
| منیجر | ||
| مواقع | ||
| موجود | ||
| مورٹز | ||
| مورگن | ||
| موزوں | ||
| موساد | ||
| موصول | ||
| موضوع | ||
| مولوی | ||
| موونگ | ||
| مویشی | ||
| مٹانے | ||
| مٹھاس | ||
| مچانا | ||
| مچھلی | ||
| مکانی | ||
| مکاوت | ||
| مہاجر | ||
| مہارت | ||
| مہاشی | ||
| مہریں | ||
| مہمان | ||
| مہنگا | ||
| مہنگے | ||
| مہودی | ||
| مہینہ | ||
| مہینے | ||
| میدان | ||
| میراث | ||
| میرین | ||
| میریٹ | ||
| میزیں | ||
| میلنگ | ||
| میمبر | ||
| مینار | ||
| مینڈی | ||
| میوزک | ||
| میٹرو | ||
| میٹنگ | ||
| میٹھی | ||
| میڈرڈ | ||
| میڈیا | ||
| نااہل | ||
| نابود | ||
| نادان | ||
| نادیہ | ||
| ناراض | ||
| نارمل | ||
| ناستے | ||
| ناشتا | ||
| ناقوس | ||
| نامزد | ||
| ناموں | ||
| ناپاک | ||
| ناچتی | ||
| ناکام | ||
| نایاب | ||
| نبٹنا | ||
| نتائج | ||
| نتیجہ | ||
| نتیجے | ||
| نراشا | ||
| نرسنگ | ||
| نزدیک | ||
| نشانہ | ||
| نشانی | ||
| نشانے | ||
| نصیحت | ||
| نظریں | ||
| نظریہ | ||
| نقصان | ||
| نمائش | ||
| نمبرز | ||
| نمونہ | ||
| نمونے | ||
| نمٹنے | ||
| نوازی | ||
| نوشتہ | ||
| نوعیت | ||
| نومبر | ||
| نوکری | ||
| نکالا | ||
| نکالو | ||
| نکالی | ||
| نکالے | ||
| نکلتا | ||
| نکلتے | ||
| نکلنا | ||
| نکلنے | ||
| نکلیں | ||
| نگاری | ||
| نگلنا | ||
| نہایت | ||
| نیشنل | ||
| نیوٹن | ||
| نیٹلی | ||
| نیکدل | ||
| نےٹلی | ||
| وائرس | ||
| وائٹل | ||
| وائیٹ | ||
| وارنٹ | ||
| واریر | ||
| واقعہ | ||
| واقعی | ||
| واقعے | ||
| والدہ | ||
| والوں | ||
| والکر | ||
| والیس | ||
| واپسی | ||
| وبالا | ||
| وراست | ||
| ورانہ | ||
| ورکنگ | ||
| وزٹرز | ||
| وسائل | ||
| وصولی | ||
| وضاحت | ||
| وعدوں | ||
| وغیرہ | ||
| وفاقی | ||
| وففوہ | ||
| وقتوں | ||
| وقوعہ | ||
| ولینٹ | ||
| ونڈوز | ||
| وکلاء | ||
| ویران | ||
| ویشیا | ||
| ویچلن | ||
| ویڈیو | ||
| ویکسی | ||
| ویگاس | ||
| ٹائمر | ||
| ٹائمز | ||
| ٹائٹس | ||
| ٹائٹن | ||
| ٹاورز | ||
| ٹاکنگ | ||
| ٹرائل | ||
| ٹرالی | ||
| ٹروجن | ||
| ٹرکوں | ||
| ٹریفک | ||
| ٹریلر | ||
| ٹرینر | ||
| ٹریور | ||
| ٹریول | ||
| ٹریکر | ||
| ٹریکی | ||
| ٹوائی | ||
| ٹوبیس | ||
| ٹونگا | ||
| ٹوٹتا | ||
| ٹوکری | ||
| ٹوکیو | ||
| ٹویٹر | ||
| ٹپکاو | ||
| ٹھنڈا | ||
| ٹھنڈی | ||
| ٹھنڈے | ||
| ٹھوڑی | ||
| ٹھوکر | ||
| ٹھٹھہ | ||
| ٹھہرو | ||
| ٹھہرے | ||
| ٹہلنے | ||
| ٹیموں | ||
| ٹینڈر | ||
| ٹیڑھی | ||
| ٹیکسی | ||
| پاؤلو | ||
| پاؤنڈ | ||
| پاؤڈر | ||
| پائلٹ | ||
| پابند | ||
| پاتال | ||
| پادری | ||
| پارٹی | ||
| پاستا | ||
| پالتا | ||
| پالنے | ||
| پتائی | ||
| پتلون | ||
| پتیوں | ||
| پجاما | ||
| پذیری | ||
| پرائر | ||
| پرامن | ||
| پرامڈ | ||
| پرانا | ||
| پرانی | ||
| پرانے | ||
| پرجوش | ||
| پرستی | ||
| پرندہ | ||
| پرندے | ||
| پرواز | ||
| پرواہ | ||
| پریمی | ||
| پستول | ||
| پسندی | ||
| پسینہ | ||
| پسینے | ||
| پشاور | ||
| پلانٹ | ||
| پلندے | ||
| پناہی | ||
| پنجرا | ||
| پنجری | ||
| پنجرے | ||
| پندرہ | ||
| پنکھے | ||
| پوجھو | ||
| پورٹل | ||
| پورٹو | ||
| پوسٹر | ||
| پولیس | ||
| پوچھا | ||
| پوچھو | ||
| پوچھے | ||
| پٹاخہ | ||
| پٹانگ | ||
| پٹھوں | ||
| پٹیشن | ||
| پچارا | ||
| پچاسی | ||
| پچھلا | ||
| پچھلی | ||
| پچھلے | ||
| پڑتال | ||
| پڑھتا | ||
| پڑھتی | ||
| پڑھتے | ||
| پڑھنا | ||
| پڑھنے | ||
| پکارا | ||
| پکارے | ||
| پکانا | ||
| پکانے | ||
| پکاکر | ||
| پکایا | ||
| پکڑنا | ||
| پکڑنے | ||
| پکڑوں | ||
| پگھلا | ||
| پھاٹک | ||
| پھرنے | ||
| پھریں | ||
| پھنسا | ||
| پھنسے | ||
| پھوڑا | ||
| پھیری | ||
| پھیلا | ||
| پھیلی | ||
| پھینک | ||
| پہاڑی | ||
| پہنتے | ||
| پہننے | ||
| پہنچا | ||
| پہنچے | ||
| پہنیں | ||
| پہچان | ||
| پہیلی | ||
| پہیوں | ||
| پیئرس | ||
| پیارا | ||
| پیاری | ||
| پیارے | ||
| پیاسا | ||
| پیانو | ||
| پیداش | ||
| پیروں | ||
| پیروی | ||
| پیسنا | ||
| پیسوں | ||
| پیشاب | ||
| پیشکش | ||
| پیشگی | ||
| پیغام | ||
| پینسل | ||
| پینشن | ||
| پیوست | ||
| پیٹرن | ||
| پیٹرک | ||
| پیٹیو | ||
| پیپلز | ||
| پیچھا | ||
| پیچھے | ||
| پیڑوں | ||
| چارجر | ||
| چالاک | ||
| چالوں | ||
| چالیس | ||
| چاندی | ||
| چاوڈر | ||
| چاہئے | ||
| چاہتا | ||
| چاہتی | ||
| چاہتے | ||
| چاہنے | ||
| چاہوں | ||
| چاہیں | ||
| چاہیے | ||
| چجرسی | ||
| چرایا | ||
| چروکی | ||
| چرھتا | ||
| چلاؤں | ||
| چلائی | ||
| چلائے | ||
| چلاتا | ||
| چلاتی | ||
| چلاتے | ||
| چلانا | ||
| چلانے | ||
| چلاوں | ||
| چلایا | ||
| چمکیں | ||
| چوبیس | ||
| چوتھا | ||
| چوتھی | ||
| چوتھے | ||
| چوروں | ||
| چولہا | ||
| چومنے | ||
| چونکا | ||
| چونکہ | ||
| چوٹوں | ||
| چوڑیل | ||
| چوہوں | ||
| چڑھنا | ||
| چڑھنے | ||
| چڑھیں | ||
| چکانی | ||
| چکاگو | ||
| چکایا | ||
| چھاتی | ||
| چھاپا | ||
| چھاپہ | ||
| چھاپے | ||
| چھتری | ||
| چھتوں | ||
| چھدرت | ||
| چھوئے | ||
| چھوری | ||
| چھونا | ||
| چھونے | ||
| چھوٹا | ||
| چھوٹی | ||
| چھوٹے | ||
| چھوڑا | ||
| چھوڑو | ||
| چھوڑے | ||
| چھپنے | ||
| چھینک | ||
| چہروں | ||
| چیئرز | ||
| چیخنا | ||
| چیخنے | ||
| چیزوں | ||
| چیزیں | ||
| چیلنج | ||
| چیمبر | ||
| چینلز | ||
| چیٹنگ | ||
| ڈارون | ||
| ڈالتا | ||
| ڈالرز | ||
| ڈالنا | ||
| ڈالنے | ||
| ڈالوں | ||
| ڈالیں | ||
| ڈامنو | ||
| ڈاکٹر | ||
| ڈبلیو | ||
| ڈرامہ | ||
| ڈرامے | ||
| ڈرانا | ||
| ڈرانے | ||
| ڈرپوک | ||
| ڈریگن | ||
| ڈسپلے | ||
| ڈمپنگ | ||
| ڈنڈوں | ||
| ڈوئچے | ||
| ڈویژن | ||
| ڈکارڈ | ||
| ڈھادو | ||
| ڈھونڈ | ||
| ڈھکنا | ||
| ڈھکنے | ||
| ڈھیلے | ||
| ڈیاگو | ||
| ڈیلٹا | ||
| ڈیمین | ||
| ڈینیل | ||
| ڈیوٹی | ||
| ڈیٹنگ | ||
| کاربن | ||
| کارسن | ||
| کاروں | ||
| کارٹر | ||
| کارکن | ||
| کارگو | ||
| کاریں | ||
| کاغذی | ||
| کالنگ | ||
| کاموں | ||
| کانوں | ||
| کانٹا | ||
| کانٹے | ||
| کاٹنے | ||
| کاٹیج | ||
| کاپتہ | ||
| کاپٹر | ||
| کراؤں | ||
| کرائی | ||
| کراتی | ||
| کرافٹ | ||
| کرانے | ||
| کراچی | ||
| کرایا | ||
| کرایہ | ||
| کردار | ||
| کردوں | ||
| کردیا | ||
| کردیں | ||
| کررہا | ||
| کررہی | ||
| کررہے | ||
| کرسمس | ||
| کرسٹن | ||
| کرسکو | ||
| کرفیو | ||
| کرلوں | ||
| کرلیا | ||
| کرمنل | ||
| کرنسی | ||
| کرنکل | ||
| کرنیں | ||
| کرواؤ | ||
| کروگی | ||
| کروگے | ||
| کرکرا | ||
| کریڈٹ | ||
| کریگا | ||
| کشائی | ||
| کشمیر | ||
| کفارہ | ||
| کلارک | ||
| کلاسک | ||
| کلوزڈ | ||
| کلپنا | ||
| کلیدی | ||
| کماتا | ||
| کماتے | ||
| کمانا | ||
| کمانڈ | ||
| کمانے | ||
| کمایا | ||
| کمزور | ||
| کمشنر | ||
| کمپنی | ||
| کمیشن | ||
| کمینہ | ||
| کمینی | ||
| کمینے | ||
| کمیٹی | ||
| کنارہ | ||
| کنارے | ||
| کندھے | ||
| کنوؤں | ||
| کنورٹ | ||
| کنویں | ||
| کنکشن | ||
| کوئنز | ||
| کوائف | ||
| کوبھی | ||
| کودنے | ||
| کوشاں | ||
| کونسا | ||
| کونسل | ||
| کونسی | ||
| کونسے | ||
| کونور | ||
| کونوں | ||
| کووئی | ||
| کوڑھی | ||
| کوژیہ | ||
| کویتی | ||
| کٹھور | ||
| کٹہرے | ||
| کپتان | ||
| کپڑوں | ||
| کھائی | ||
| کھابہ | ||
| کھاتا | ||
| کھاتی | ||
| کھاتے | ||
| کھانا | ||
| کھانے | ||
| کھایا | ||
| کھروں | ||
| کھسکی | ||
| کھلتا | ||
| کھلنے | ||
| کھمبے | ||
| کھودو | ||
| کھولا | ||
| کھولو | ||
| کھولے | ||
| کھونا | ||
| کھونے | ||
| کھچڑی | ||
| کھڑکی | ||
| کھیتی | ||
| کھیلو | ||
| کھینچ | ||
| کہانی | ||
| کہاوت | ||
| کہاہے | ||
| کیبنٹ | ||
| کیجئے | ||
| کیجیے | ||
| کیطرف | ||
| کیلئے | ||
| کیلبر | ||
| کیلون | ||
| کیمبل | ||
| کیمرا | ||
| کیمرہ | ||
| کیمرے | ||
| کیمپس | ||
| کیمڈن | ||
| کینچی | ||
| کینڈی | ||
| کیٹیا | ||
| کیپلر | ||
| کیپٹل | ||
| کیپٹن | ||
| کےلئے | ||
| گائیڈ | ||
| گابھا | ||
| گارڈز | ||
| گانٹھ | ||
| گاہوں | ||
| گراتے | ||
| گرافر | ||
| گرانے | ||
| گردوں | ||
| گرنٹس | ||
| گروہی | ||
| گرہیں | ||
| گرینس | ||
| گرینڈ | ||
| گزارا | ||
| گزارو | ||
| گزارے | ||
| گزرتا | ||
| گزرتے | ||
| گزرنا | ||
| گزشتہ | ||
| گفتگو | ||
| گلابی | ||
| گلبرٹ | ||
| گلرمو | ||
| گلمور | ||
| گلیوں | ||
| گمراہ | ||
| گمشدہ | ||
| گمنام | ||
| گندگی | ||
| گنڈوں | ||
| گنگنا | ||
| گواہی | ||
| گودام | ||
| گورنر | ||
| گوروں | ||
| گورڈن | ||
| گولسن | ||
| گولڈن | ||
| گونگے | ||
| گھائل | ||
| گھبرا | ||
| گھروں | ||
| گھسنا | ||
| گھسنے | ||
| گھسیٹ | ||
| گھلنے | ||
| گھنٹہ | ||
| گھنٹی | ||
| گھنٹے | ||
| گھوسٹ | ||
| گھونٹ | ||
| گھونپ | ||
| گھوڑا | ||
| گھوڑی | ||
| گھوڑے | ||
| گھٹتی | ||
| گھٹنے | ||
| گھٹیا | ||
| گیارہ | ||
| گیراج | ||
| ھاںسی | ||
| ھمممم | ||
| ھیںچو | ||
| ہاربر | ||
| ہارنے | ||
| ہاورڈ | ||
| ہتکڑی | ||
| ہجآتہ | ||
| ہدایت | ||
| ہفتوں | ||
| ہلاتا | ||
| ہلاکت | ||
| ہمارا | ||
| ہماری | ||
| ہمارے | ||
| ہمدرد | ||
| ہمممم | ||
| ہموار | ||
| ہمیشہ | ||
| ہنستے | ||
| ہنسلی | ||
| ہنسنا | ||
| ہواؤں | ||
| ہوائی | ||
| ہوتیں | ||
| ہوجاؤ | ||
| ہوجاو | ||
| ہورہا | ||
| ہورہی | ||
| ہوسکا | ||
| ہوسکے | ||
| ہونگی | ||
| ہونگے | ||
| ہوچکا | ||
| ہوچکے | ||
| ہوگئی | ||
| ہوگئے | ||
| ہوگیا | ||
| ہوںگے | ||
| ہٹائی | ||
| ہٹیئے | ||
| ہڈیوں | ||
| ہڑتال | ||
| ہںسنا | ||
| ہینری | ||
| ہینڈل | ||
| ہینگر | ||
| ہیومن | ||
| ہیوگو | ||
| ہیکرز | ||
| ہیکنگ | ||
| ہیکٹر | ||
| یاترہ | ||
| یاتنا | ||
| یادوں | ||
| یافتہ | ||
| یقینا | ||
| یقینی | ||
| یلئڈی | ||
| یلرجی | ||
| یوراج | ||
| یورپی | ||
| یونین | ||
| یووتی | ||
| یہسان | ||
| یہودی | ||
| ییومن |
There was a problem hiding this comment.
Daily answer pool contains likely-corrupted tokens.
There are several entries that look non-lexical or OCR-corrupted (e.g., Line 25 أہغاد, Line 89 اطءلہ, Line 170 اپددر, Line 625 خہجءز, Line 968 ضآؤاط, Line 1451 وففوہ, Line 1935 ھمممم, Line 1992 یلئڈی). If these are selected as daily answers, puzzle quality drops sharply.
Please prune/regenerate these before shipping.
Example cleanup diff (non-exhaustive)
-أہغاد
-اطءلہ
-اپددر
-خہجءز
-ضآؤاط
-وففوہ
-ھمممم
-یلئڈیIf useful, I can draft a repeatable cleanup script/issue template for lexicon QA (noise filtering + manual review bucket).
🧰 Tools
🪛 LanguageTool
[whitespace] ~1-~1: آیا منظور شما «"آئنده"» است؟
Context: آؤنگا آئندہ آئینی آبادی آبشار آتشیں آجاتا آرائش آرس...
(ReplaceLettersInSameLangs)
[whitespace] ~15-~15: آیا منظور شما «"آماده"» است؟
Context: ...سیی آرڈمر آریئر آزادی آسانی آسمان آفیسر آمادہ آمدنی آمدید آنتوں آوروں آکٹپس آگئیں آہس...
(ReplaceLettersInSameLangs)
[whitespace] ~22-~22: آیا منظور شما «"آهسته"» است؟
Context: ...ادہ آمدنی آمدید آنتوں آوروں آکٹپس آگئیں آہستہ آہنگی أہغاد ابتدا ابرار ابلاغ اتارو اتح...
(ReplaceLettersInSameLangs)
[whitespace] ~23-~23: آیا منظور شما «"آهنگی"» است؟
Context: ...دنی آمدید آنتوں آوروں آکٹپس آگئیں آہستہ آہنگی أہغاد ابتدا ابرار ابلاغ اتارو اتحاد اتر...
(ReplaceLettersInSameLangs)
[whitespace] ~24-~24: آیا منظور شما «"أهغاد"» است؟
Context: ...دید آنتوں آوروں آکٹپس آگئیں آہستہ آہنگی أہغاد ابتدا ابرار ابلاغ اتارو اتحاد اترتے اتر...
(ReplaceLettersInSameLangs)
[whitespace] ~35-~35: آیا منظور شما «"اثاثه"» است؟
Context: ...ارو اتحاد اترتے اترنا اترنے اتفاق اتوار اثاثہ اثرات اثناء اجارہ اجازت اجزاء اجلاس اجم...
(ReplaceLettersInSameLangs)
[whitespace] ~38-~38: آیا منظور شما «"اجاره"» است؟
Context: ...رنا اترنے اتفاق اتوار اثاثہ اثرات اثناء اجارہ اجازت اجزاء اجلاس اجمود اجنبی احاطہ احس...
(ReplaceLettersInSameLangs)
[whitespace] ~44-~44: آیا منظور شما «"احاطه"» است؟
Context: ...ناء اجارہ اجازت اجزاء اجلاس اجمود اجنبی احاطہ احساس احکام اخبار اخروٹ ادارے ادخال ادر...
(ReplaceLettersInSameLangs)
[whitespace] ~52-~52: آیا منظور شما «"ادهار"» است؟
Context: ...ساس احکام اخبار اخروٹ ادارے ادخال ادراک ادھار ارادہ اربوں اردنی ارسال ارکان ازارہ اسا...
(ReplaceLettersInSameLangs)
[whitespace] ~53-~53: آیا منظور شما «"اراده"» است؟
Context: ...کام اخبار اخروٹ ادارے ادخال ادراک ادھار ارادہ اربوں اردنی ارسال ارکان ازارہ اسامہ است...
(ReplaceLettersInSameLangs)
[whitespace] ~58-~58: آیا منظور شما «"ازاره"» است؟
Context: ...راک ادھار ارادہ اربوں اردنی ارسال ارکان ازارہ اسامہ استاد اسرار اسلئے اسلام اسلحہ اسل...
(ReplaceLettersInSameLangs)
[whitespace] ~59-~59: آیا منظور شما «"اسامه"» است؟
Context: ...ھار ارادہ اربوں اردنی ارسال ارکان ازارہ اسامہ استاد اسرار اسلئے اسلام اسلحہ اسلیے اسن...
(ReplaceLettersInSameLangs)
[whitespace] ~64-~64: آیا منظور شما «"اسلحه"» است؟
Context: ...کان ازارہ اسامہ استاد اسرار اسلئے اسلام اسلحہ اسلیے اسناد اسٹار اسٹاف اسٹیج اسٹیو اسٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~77-~77: آیا منظور شما «"اشاره"» است؟
Context: ...ٹیو اسٹیٹ اسپاٹ اسکور اسکول اسکوپ اسکین اشارہ اشارے اشکال اشیاء اصرار اصطبل اصلاح اصل...
(ReplaceLettersInSameLangs)
[whitespace] ~85-~85: آیا منظور شما «"اضافه"» است؟
Context: ...ارے اشکال اشیاء اصرار اصطبل اصلاح اصلیت اضافہ اضافی اضافے اطءلہ اطاعت اطراف اطلاع اطل...
(ReplaceLettersInSameLangs)
[whitespace] ~88-~88: آیا منظور شما «"اطءله"» است؟
Context: ...رار اصطبل اصلاح اصلیت اضافہ اضافی اضافے اطءلہ اطاعت اطراف اطلاع اطلاق اظہار اعداد اعز...
(ReplaceLettersInSameLangs)
[whitespace] ~93-~93: آیا منظور شما «"اظهار"» است؟
Context: ...افی اضافے اطءلہ اطاعت اطراف اطلاع اطلاق اظہار اعداد اعزاز اعصاب اعضاء اعلان اعمال اغو...
(ReplaceLettersInSameLangs)
[whitespace] ~104-~104: آیا منظور شما «"افواه"» است؟
Context: ...ضاء اعلان اعمال اغواء افراد افسوس افواج افواہ اقدام اقرار اقسام اقلیت اقوام الادا الا...
(ReplaceLettersInSameLangs)
[whitespace] ~112-~112: آیا منظور شما «"البته"» است؟
Context: ...دام اقرار اقسام اقلیت اقوام الادا الارم البتہ التجا الجھن الجھی الحال الزام الشان الع...
(ReplaceLettersInSameLangs)
[whitespace] ~114-~114: آیا منظور شما «"الجهن"» است؟
Context: ...سام اقلیت اقوام الادا الارم البتہ التجا الجھن الجھی الحال الزام الشان العین الفاط الف...
(ReplaceLettersInSameLangs)
[whitespace] ~115-~115: آیا منظور شما «"الجهی"» است؟
Context: ...لیت اقوام الادا الارم البتہ التجا الجھن الجھی الحال الزام الشان العین الفاط الفاظ الم...
(ReplaceLettersInSameLangs)
[whitespace] ~131-~131: آیا منظور شما «"انتهک"» است؟
Context: ...ینا امداد امراء املاک اموات امکان اناڑی انتھک انتہا انتیس انجام انداز اندوز اندھا اند...
(ReplaceLettersInSameLangs)
[whitespace] ~132-~132: آیا منظور شما «"انتها"» است؟
Context: ...داد امراء املاک اموات امکان اناڑی انتھک انتہا انتیس انجام انداز اندوز اندھا اندھے انس...
(ReplaceLettersInSameLangs)
[whitespace] ~137-~137: آیا منظور شما «"اندها"» است؟
Context: ...اڑی انتھک انتہا انتیس انجام انداز اندوز اندھا اندھے انسان انصاف انعام انٹری انٹیل انڈ...
(ReplaceLettersInSameLangs)
[whitespace] ~138-~138: آیا منظور شما «"اندهے"» است؟
Context: ...تھک انتہا انتیس انجام انداز اندوز اندھا اندھے انسان انصاف انعام انٹری انٹیل انڈیا انڈ...
(ReplaceLettersInSameLangs)
[whitespace] ~149-~149: آیا منظور شما «"انهوں"» است؟
Context: ...ٹری انٹیل انڈیا انڈین انکار انگلی انگیز انھوں انھیں انہوں انہین انہیں اوائل اودان اور...
(ReplaceLettersInSameLangs)
[whitespace] ~150-~150: آیا منظور شما «"انهیں"» است؟
Context: ...ٹیل انڈیا انڈین انکار انگلی انگیز انھوں انھیں انہوں انہین انہیں اوائل اودان اورات اور...
(ReplaceLettersInSameLangs)
[whitespace] ~151-~151: آیا منظور شما «"انهوں"» است؟
Context: ...ڈیا انڈین انکار انگلی انگیز انھوں انھیں انہوں انہین انہیں اوائل اودان اورات اورجب اور...
(ReplaceLettersInSameLangs)
[whitespace] ~152-~152: آیا منظور شما «"انهین"» است؟
Context: ...ڈین انکار انگلی انگیز انھوں انھیں انہوں انہین انہیں اوائل اودان اورات اورجب اورہر اوق...
(ReplaceLettersInSameLangs)
[whitespace] ~153-~153: آیا منظور شما «"انهیں"» است؟
Context: ...کار انگلی انگیز انھوں انھیں انہوں انہین انہیں اوائل اودان اورات اورجب اورہر اوقات اول...
(ReplaceLettersInSameLangs)
[whitespace] ~158-~158: آیا منظور شما «"اورهر"» است؟
Context: ...ہوں انہین انہیں اوائل اودان اورات اورجب اورہر اوقات اولاد اولگا اولین اونچی اونچے اٹا...
(ReplaceLettersInSameLangs)
[whitespace] ~166-~166: آیا منظور شما «"اٹهاؤ"» است؟
Context: ...قات اولاد اولگا اولین اونچی اونچے اٹاری اٹھاؤ اٹھاو اٹھنا اپددر اپریل اپنوں اپہاس اچا...
(ReplaceLettersInSameLangs)
[whitespace] ~167-~167: آیا منظور شما «"اٹهاو"» است؟
Context: ...لاد اولگا اولین اونچی اونچے اٹاری اٹھاؤ اٹھاو اٹھنا اپددر اپریل اپنوں اپہاس اچانک اچھ...
(ReplaceLettersInSameLangs)
[whitespace] ~168-~168: آیا منظور شما «"اٹهنا"» است؟
Context: ...لگا اولین اونچی اونچے اٹاری اٹھاؤ اٹھاو اٹھنا اپددر اپریل اپنوں اپہاس اچانک اچھال اڑا...
(ReplaceLettersInSameLangs)
[whitespace] ~172-~172: آیا منظور شما «"اپهاس"» است؟
Context: ...اری اٹھاؤ اٹھاو اٹھنا اپددر اپریل اپنوں اپہاس اچانک اچھال اڑانے اکٹھا اکٹھے اکڑکر اکھ...
(ReplaceLettersInSameLangs)
[whitespace] ~174-~174: آیا منظور شما «"اچهال"» است؟
Context: ...ھاو اٹھنا اپددر اپریل اپنوں اپہاس اچانک اچھال اڑانے اکٹھا اکٹھے اکڑکر اکھاڑ اکیلا اکی...
(ReplaceLettersInSameLangs)
[whitespace] ~176-~176: آیا منظور شما «"اکٹها"» است؟
Context: ...ددر اپریل اپنوں اپہاس اچانک اچھال اڑانے اکٹھا اکٹھے اکڑکر اکھاڑ اکیلا اکیلی اکیلے اگر...
(ReplaceLettersInSameLangs)
[whitespace] ~177-~177: آیا منظور شما «"اکٹهے"» است؟
Context: ...ریل اپنوں اپہاس اچانک اچھال اڑانے اکٹھا اکٹھے اکڑکر اکھاڑ اکیلا اکیلی اکیلے اگرچہ اگس...
(ReplaceLettersInSameLangs)
[whitespace] ~179-~179: آیا منظور شما «"اکهاڑ"» است؟
Context: ...ہاس اچانک اچھال اڑانے اکٹھا اکٹھے اکڑکر اکھاڑ اکیلا اکیلی اکیلے اگرچہ اگستس اگلوا اہد...
(ReplaceLettersInSameLangs)
[whitespace] ~183-~183: آیا منظور شما «"اگرچه"» است؟
Context: ...ٹھا اکٹھے اکڑکر اکھاڑ اکیلا اکیلی اکیلے اگرچہ اگستس اگلوا اہداف اہمیت ایجاد ایجنٹ ایر...
(ReplaceLettersInSameLangs)
[whitespace] ~186-~186: آیا منظور شما «"اهداف"» است؟
Context: ...ھاڑ اکیلا اکیلی اکیلے اگرچہ اگستس اگلوا اہداف اہمیت ایجاد ایجنٹ ایران ایریا ایمان ایم...
(ReplaceLettersInSameLangs)
[whitespace] ~187-~187: آیا منظور شما «"اهمیت"» است؟
Context: ...یلا اکیلی اکیلے اگرچہ اگستس اگلوا اہداف اہمیت ایجاد ایجنٹ ایران ایریا ایمان ایملی این...
(ReplaceLettersInSameLangs)
[whitespace] ~199-~199: آیا منظور شما «"ایڑهی"» است؟
Context: ...مان ایملی اینجل اینڈی اینکر ایونز ایونٹ ایڑھی ایکشن ایکٹر ایکٹو باؤنڈ بائبل بائیں بات...
(ReplaceLettersInSameLangs)
[whitespace] ~217-~217: آیا منظور شما «"بانده"» است؟
Context: ...رود بارڈر بازار بالوں بالٹک بالٹی بالکل باندھ بانڈز باہری باہمی باہوں بتاءو بتاؤں بتا...
(ReplaceLettersInSameLangs)
[whitespace] ~219-~219: آیا منظور شما «"باهری"» است؟
Context: ...زار بالوں بالٹک بالٹی بالکل باندھ بانڈز باہری باہمی باہوں بتاءو بتاؤں بتائی بتائے بتا...
(ReplaceLettersInSameLangs)
[whitespace] ~220-~220: آیا منظور شما «"باهمی"» است؟
Context: ...لوں بالٹک بالٹی بالکل باندھ بانڈز باہری باہمی باہوں بتاءو بتاؤں بتائی بتائے بتاتا بتا...
(ReplaceLettersInSameLangs)
[whitespace] ~221-~221: آیا منظور شما «"باهوں"» است؟
Context: ...لٹک بالٹی بالکل باندھ بانڈز باہری باہمی باہوں بتاءو بتاؤں بتائی بتائے بتاتا بتاتی بتا...
(ReplaceLettersInSameLangs)
[whitespace] ~237-~237: آیا منظور شما «"بحریه"» است؟
Context: ...انے بتاوں بتایا بجائے بجانے بحالی بحران بحریہ بخشوں بدلتا بدلتے بدلنے بدماش بدنام برآ...
(ReplaceLettersInSameLangs)
[whitespace] ~256-~256: آیا منظور شما «"برتها"» است؟
Context: ...ابر برادر برانڈ براوو برباد برتاؤ برتری برتھا برخاف برسات برسوں برطرف برعکس بریکر بری...
(ReplaceLettersInSameLangs)
[whitespace] ~265-~265: آیا منظور شما «"بشانه"» است؟
Context: ...سات برسوں برطرف برعکس بریکر بریکٹ بزدلی بشانہ بظاہر بغاوت بغداد بفیلو بقایا بلائے بلا...
(ReplaceLettersInSameLangs)
[whitespace] ~266-~266: آیا منظور شما «"بظاهر"» است؟
Context: ...سوں برطرف برعکس بریکر بریکٹ بزدلی بشانہ بظاہر بغاوت بغداد بفیلو بقایا بلائے بلاتا بلا...
(ReplaceLettersInSameLangs)
[whitespace] ~300-~300: آیا منظور شما «"بندهن"» است؟
Context: ...انے بناوٹ بنایا بنجمن بندوا بندوق بندوں بندھن بندھے بنگلہ بنیاد بنیان بوائے بورنگ بوس...
(ReplaceLettersInSameLangs)
[whitespace] ~301-~301: آیا منظور شما «"بندهے"» است؟
Context: ...اوٹ بنایا بنجمن بندوا بندوق بندوں بندھن بندھے بنگلہ بنیاد بنیان بوائے بورنگ بوسٹن بول...
(ReplaceLettersInSameLangs)
[whitespace] ~302-~302: آیا منظور شما «"بنگله"» است؟
Context: ...ایا بنجمن بندوا بندوق بندوں بندھن بندھے بنگلہ بنیاد بنیان بوائے بورنگ بوسٹن بولتا بول...
(ReplaceLettersInSameLangs)
[whitespace] ~315-~315: آیا منظور شما «"بوڑها"» است؟
Context: ...لتا بولتے بولنا بولنے بولوں بولٹن بولیں بوڑھا بوڑھے بچائی بچاتا بچالو بچانا بچانے بچا...
(ReplaceLettersInSameLangs)
[whitespace] ~316-~316: آیا منظور شما «"بوڑهے"» است؟
Context: ...لتے بولنا بولنے بولوں بولٹن بولیں بوڑھا بوڑھے بچائی بچاتا بچالو بچانا بچانے بچایا بڑپ...
(ReplaceLettersInSameLangs)
[whitespace] ~324-~324: آیا منظور شما «"بڑهتا"» است؟
Context: ...ائی بچاتا بچالو بچانا بچانے بچایا بڑپپن بڑھتا بڑھتی بڑھتے بڑھنے بڑھیں بکارا بکسوا بکو...
(ReplaceLettersInSameLangs)
[whitespace] ~325-~325: آیا منظور شما «"بڑهتی"» است؟
Context: ...اتا بچالو بچانا بچانے بچایا بڑپپن بڑھتا بڑھتی بڑھتے بڑھنے بڑھیں بکارا بکسوا بکواس بگر...
(ReplaceLettersInSameLangs)
[whitespace] ~326-~326: آیا منظور شما «"بڑهتے"» است؟
Context: ...الو بچانا بچانے بچایا بڑپپن بڑھتا بڑھتی بڑھتے بڑھنے بڑھیں بکارا بکسوا بکواس بگرام بگو...
(ReplaceLettersInSameLangs)
[whitespace] ~327-~327: آیا منظور شما «"بڑهنے"» است؟
Context: ...انا بچانے بچایا بڑپپن بڑھتا بڑھتی بڑھتے بڑھنے بڑھیں بکارا بکسوا بکواس بگرام بگولے بھا...
(ReplaceLettersInSameLangs)
[whitespace] ~328-~328: آیا منظور شما «"بڑهیں"» است؟
Context: ...انے بچایا بڑپپن بڑھتا بڑھتی بڑھتے بڑھنے بڑھیں بکارا بکسوا بکواس بگرام بگولے بھائی بھا...
(ReplaceLettersInSameLangs)
[whitespace] ~334-~334: آیا منظور شما «"بهائی"» است؟
Context: ...ھنے بڑھیں بکارا بکسوا بکواس بگرام بگولے بھائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھر...
(ReplaceLettersInSameLangs)
[whitespace] ~335-~335: آیا منظور شما «"بهاری"» است؟
Context: ...ھیں بکارا بکسوا بکواس بگرام بگولے بھائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھو...
(ReplaceLettersInSameLangs)
[whitespace] ~336-~336: آیا منظور شما «"بهاگا"» است؟
Context: ...ارا بکسوا بکواس بگرام بگولے بھائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھو...
(ReplaceLettersInSameLangs)
[whitespace] ~337-~337: آیا منظور شما «"بهاگو"» است؟
Context: ...سوا بکواس بگرام بگولے بھائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھو...
(ReplaceLettersInSameLangs)
[whitespace] ~338-~338: آیا منظور شما «"بهاگے"» است؟
Context: ...واس بگرام بگولے بھائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھو...
(ReplaceLettersInSameLangs)
[whitespace] ~339-~339: آیا منظور شما «"بهرتی"» است؟
Context: ...رام بگولے بھائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھولی بھو...
(ReplaceLettersInSameLangs)
[whitespace] ~340-~340: آیا منظور شما «"بهرنے"» است؟
Context: ...ولے بھائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھولی بھوکا بھو...
(ReplaceLettersInSameLangs)
[whitespace] ~341-~341: آیا منظور شما «"بهریں"» است؟
Context: ...ائی بھاری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~342-~342: آیا منظور شما «"بهوری"» است؟
Context: ...اری بھاگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھی...
(ReplaceLettersInSameLangs)
[whitespace] ~343-~343: آیا منظور شما «"بهولا"» است؟
Context: ...اگا بھاگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھی...
(ReplaceLettersInSameLangs)
[whitespace] ~344-~344: آیا منظور شما «"بهولو"» است؟
Context: ...اگو بھاگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھی...
(ReplaceLettersInSameLangs)
[whitespace] ~345-~345: آیا منظور شما «"بهولی"» است؟
Context: ...اگے بھرتی بھرنے بھریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھی...
(ReplaceLettersInSameLangs)
[whitespace] ~346-~346: آیا منظور شما «"بهوکا"» است؟
Context: ...رتی بھرنے بھریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہا...
(ReplaceLettersInSameLangs)
[whitespace] ~347-~347: آیا منظور شما «"بهوکے"» است؟
Context: ...رنے بھریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہا...
(ReplaceLettersInSameLangs)
[whitespace] ~348-~348: آیا منظور شما «"بهٹکا"» است؟
Context: ...ریں بھوری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہا...
(ReplaceLettersInSameLangs)
[whitespace] ~349-~349: آیا منظور شما «"بهیجا"» است؟
Context: ...وری بھولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہا...
(ReplaceLettersInSameLangs)
[whitespace] ~350-~350: آیا منظور شما «"بهیجو"» است؟
Context: ...ولا بھولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہا...
(ReplaceLettersInSameLangs)
[whitespace] ~351-~351: آیا منظور شما «"بهیجی"» است؟
Context: ...ولو بھولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہب...
(ReplaceLettersInSameLangs)
[whitespace] ~352-~352: آیا منظور شما «"بهیجے"» است؟
Context: ...ولی بھوکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہبود بہت...
(ReplaceLettersInSameLangs)
[whitespace] ~353-~353: آیا منظور شما «"بهادر"» است؟
Context: ...وکا بھوکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہبود بہتری بہن...
(ReplaceLettersInSameLangs)
[whitespace] ~354-~354: آیا منظور شما «"بهانا"» است؟
Context: ...وکے بھٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہبود بہتری بہنوں بیا...
(ReplaceLettersInSameLangs)
[whitespace] ~355-~355: آیا منظور شما «"بهانه"» است؟
Context: ...ٹکا بھیجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہبود بہتری بہنوں بیاسی بیب...
(ReplaceLettersInSameLangs)
[whitespace] ~356-~356: آیا منظور شما «"بهانے"» است؟
Context: ...یجا بھیجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہبود بہتری بہنوں بیاسی بیبسی بیج...
(ReplaceLettersInSameLangs)
[whitespace] ~357-~357: آیا منظور شما «"بهایا"» است؟
Context: ...یجو بھیجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہبود بہتری بہنوں بیاسی بیبسی بیجنگ بیج...
(ReplaceLettersInSameLangs)
[whitespace] ~358-~358: آیا منظور شما «"بهبود"» است؟
Context: ...یجی بھیجے بہادر بہانا بہانہ بہانے بہایا بہبود بہتری بہنوں بیاسی بیبسی بیجنگ بیجوں بیر...
(ReplaceLettersInSameLangs)
[whitespace] ~359-~359: آیا منظور شما «"بهتری"» است؟
Context: ...یجے بہادر بہانا بہانہ بہانے بہایا بہبود بہتری بہنوں بیاسی بیبسی بیجنگ بیجوں بیرنگ بیر...
(ReplaceLettersInSameLangs)
[whitespace] ~360-~360: آیا منظور شما «"بهنوں"» است؟
Context: ...ادر بہانا بہانہ بہانے بہایا بہبود بہتری بہنوں بیاسی بیبسی بیجنگ بیجوں بیرنگ بیروت بیر...
(ReplaceLettersInSameLangs)
[whitespace] ~374-~374: آیا منظور شما «"بیٹها"» است؟
Context: ...رون بیضوی بیلچے بیمار بیونس بیٹری بیٹوں بیٹھا بیٹھو بیٹھی بیٹھے بیچلر بیچنے بیچوں بیک...
(ReplaceLettersInSameLangs)
[whitespace] ~375-~375: آیا منظور شما «"بیٹهو"» است؟
Context: ...ضوی بیلچے بیمار بیونس بیٹری بیٹوں بیٹھا بیٹھو بیٹھی بیٹھے بیچلر بیچنے بیچوں بیکار بیہ...
(ReplaceLettersInSameLangs)
[whitespace] ~376-~376: آیا منظور شما «"بیٹهی"» است؟
Context: ...لچے بیمار بیونس بیٹری بیٹوں بیٹھا بیٹھو بیٹھی بیٹھے بیچلر بیچنے بیچوں بیکار بیہوش بےح...
(ReplaceLettersInSameLangs)
[whitespace] ~377-~377: آیا منظور شما «"بیٹهے"» است؟
Context: ...مار بیونس بیٹری بیٹوں بیٹھا بیٹھو بیٹھی بیٹھے بیچلر بیچنے بیچوں بیکار بیہوش بےحوش بےک...
(ReplaceLettersInSameLangs)
[whitespace] ~382-~382: آیا منظور شما «"بیهوش"» است؟
Context: ...ٹھو بیٹھی بیٹھے بیچلر بیچنے بیچوں بیکار بیہوش بےحوش بےکار تائید تابوت تاخیر تاریخ تار...
(ReplaceLettersInSameLangs)
[whitespace] ~393-~393: آیا منظور شما «"تباهی"» است؟
Context: ...بوت تاخیر تاریخ تاریک تالاب تاوان تاکنا تباہی تبدیل تبصرہ تبولی تجارت تجاست تجاوز تجر...
(ReplaceLettersInSameLangs)
[whitespace] ~395-~395: آیا منظور شما «"تبصره"» است؟
Context: ...ریخ تاریک تالاب تاوان تاکنا تباہی تبدیل تبصرہ تبولی تجارت تجاست تجاوز تجربہ تجربے تجز...
(ReplaceLettersInSameLangs)
[whitespace] ~400-~400: آیا منظور شما «"تجربه"» است؟
Context: ...اہی تبدیل تبصرہ تبولی تجارت تجاست تجاوز تجربہ تجربے تجزیہ تجوری تجویز تحائف تحریر تحر...
(ReplaceLettersInSameLangs)
[whitespace] ~402-~402: آیا منظور شما «"تجزیه"» است؟
Context: ...صرہ تبولی تجارت تجاست تجاوز تجربہ تجربے تجزیہ تجوری تجویز تحائف تحریر تحریک تحقیق تحل...
(ReplaceLettersInSameLangs)
[whitespace] ~417-~417: آیا منظور شما «"ترجمه"» است؟
Context: ...ویل تخلیق تدفین تدویر تذکرے تربیت ترتیب ترجمہ ترجیح ترسیل ترمیم ترکون ترکوں تزئین تسب...
(ReplaceLettersInSameLangs)
[whitespace] ~450-~450: آیا منظور شما «"تفهیم"» است؟
Context: ...میل تعویذ تفتشی تفتیش تفریح تفصیل تفویض تفہیم تقاضہ تقدیر تقریب تقریر تقسیم تقطیع تلا...
(ReplaceLettersInSameLangs)
[whitespace] ~451-~451: آیا منظور شما «"تقاضه"» است؟
Context: ...ویذ تفتشی تفتیش تفریح تفصیل تفویض تفہیم تقاضہ تقدیر تقریب تقریر تقسیم تقطیع تلاشی تلا...
(ReplaceLettersInSameLangs)
[whitespace] ~462-~462: آیا منظور شما «"تمهیں"» است؟
Context: ...سیم تقطیع تلاشی تلافی تلوار تمارا تماشا تمہیں تناظر تنظیم تنقید توازن توسیع تولیہ توپ...
(ReplaceLettersInSameLangs)
[whitespace] ~468-~468: آیا منظور شما «"تولیه"» است؟
Context: ...اشا تمہیں تناظر تنظیم تنقید توازن توسیع تولیہ توپاک توڑنا توڑنے توکیا توہین تکلیف تکم...
(ReplaceLettersInSameLangs)
[whitespace] ~473-~473: آیا منظور شما «"توهین"» است؟
Context: ...ازن توسیع تولیہ توپاک توڑنا توڑنے توکیا توہین تکلیف تکمیل تھامس تھرمل تھرٹی تھنڈر تھو...
(ReplaceLettersInSameLangs)
[whitespace] ~476-~476: آیا منظور شما «"تهامس"» است؟
Context: ...پاک توڑنا توڑنے توکیا توہین تکلیف تکمیل تھامس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھی...
(ReplaceLettersInSameLangs)
[whitespace] ~477-~477: آیا منظور شما «"تهرمل"» است؟
Context: ...ڑنا توڑنے توکیا توہین تکلیف تکمیل تھامس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہا...
(ReplaceLettersInSameLangs)
[whitespace] ~478-~478: آیا منظور شما «"تهرٹی"» است؟
Context: ...ڑنے توکیا توہین تکلیف تکمیل تھامس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہا...
(ReplaceLettersInSameLangs)
[whitespace] ~479-~479: آیا منظور شما «"تهنڈر"» است؟
Context: ...کیا توہین تکلیف تکمیل تھامس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہا...
(ReplaceLettersInSameLangs)
[whitespace] ~480-~480: آیا منظور شما «"تهوڑا"» است؟
Context: ...ہین تکلیف تکمیل تھامس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذ...
(ReplaceLettersInSameLangs)
[whitespace] ~481-~481: آیا منظور شما «"تهوڑی"» است؟
Context: ...لیف تکمیل تھامس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذیب تیا...
(ReplaceLettersInSameLangs)
[whitespace] ~482-~482: آیا منظور شما «"تهوڑے"» است؟
Context: ...میل تھامس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذیب تیاری تیس...
(ReplaceLettersInSameLangs)
[whitespace] ~483-~483: آیا منظور شما «"تهیٹر"» است؟
Context: ...امس تھرمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذیب تیاری تیسرا تیس...
(ReplaceLettersInSameLangs)
[whitespace] ~484-~484: آیا منظور شما «"تهائی"» است؟
Context: ...رمل تھرٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذیب تیاری تیسرا تیسری تیس...
(ReplaceLettersInSameLangs)
[whitespace] ~485-~485: آیا منظور شما «"تهارا"» است؟
Context: ...رٹی تھنڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذیب تیاری تیسرا تیسری تیسرے تیم...
(ReplaceLettersInSameLangs)
[whitespace] ~486-~486: آیا منظور شما «"تهارے"» است؟
Context: ...نڈر تھوڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذیب تیاری تیسرا تیسری تیسرے تیمور تین...
(ReplaceLettersInSameLangs)
[whitespace] ~487-~487: آیا منظور شما «"تهذیب"» است؟
Context: ...وڑا تھوڑی تھوڑے تھیٹر تہائی تہارا تہارے تہذیب تیاری تیسرا تیسری تیسرے تیمور تینوں ثقا...
(ReplaceLettersInSameLangs)
[whitespace] ~495-~495: آیا منظور شما «"جائزه"» است؟
Context: ...اری تیسرا تیسری تیسرے تیمور تینوں ثقافت جائزہ جائیں جارہا جارہے جاسوس جامنی جانتا جان...
(ReplaceLettersInSameLangs)
[whitespace] ~497-~497: آیا منظور شما «"جارها"» است؟
Context: ...سری تیسرے تیمور تینوں ثقافت جائزہ جائیں جارہا جارہے جاسوس جامنی جانتا جانتی جانتے جان...
(ReplaceLettersInSameLangs)
[whitespace] ~498-~498: آیا منظور شما «"جارهے"» است؟
Context: ...سرے تیمور تینوں ثقافت جائزہ جائیں جارہا جارہے جاسوس جامنی جانتا جانتی جانتے جانسن جان...
(ReplaceLettersInSameLangs)
[whitespace] ~514-~514: آیا منظور شما «"جاهتی"» است؟
Context: ...نور جانوں جانیں جاوگی جاپان جاگتے جاگنا جاہتی جاہیں جایئے جبڑوں جتاؤں جذبات جرائم جرم...
(ReplaceLettersInSameLangs)
[whitespace] ~515-~515: آیا منظور شما «"جاهیں"» است؟
Context: ...نوں جانیں جاوگی جاپان جاگتے جاگنا جاہتی جاہیں جایئے جبڑوں جتاؤں جذبات جرائم جرمنی جزی...
(ReplaceLettersInSameLangs)
[whitespace] ~522-~522: آیا منظور شما «"جزیره"» است؟
Context: ...ہیں جایئے جبڑوں جتاؤں جذبات جرائم جرمنی جزیرہ جزیرے جسموں جلانے جللاد جماتی جماعت جمپ...
(ReplaceLettersInSameLangs)
[whitespace] ~537-~537: آیا منظور شما «"جنهیں"» است؟
Context: ...ازے جنوبی جنوری جنگجو جنگلی جنگوں جنگیں جنھیں جنہوں جنہیں جنیوا جوابی جواگر جوتوں جول...
(ReplaceLettersInSameLangs)
[whitespace] ~538-~538: آیا منظور شما «"جنهوں"» است؟
Context: ...وبی جنوری جنگجو جنگلی جنگوں جنگیں جنھیں جنہوں جنہیں جنیوا جوابی جواگر جوتوں جولیا جوہ...
(ReplaceLettersInSameLangs)
[whitespace] ~539-~539: آیا منظور شما «"جنهیں"» است؟
Context: ...وری جنگجو جنگلی جنگوں جنگیں جنھیں جنہوں جنہیں جنیوا جوابی جواگر جوتوں جولیا جوہان جوہ...
(ReplaceLettersInSameLangs)
[whitespace] ~545-~545: آیا منظور شما «"جوهان"» است؟
Context: ...ہوں جنہیں جنیوا جوابی جواگر جوتوں جولیا جوہان جوہری جگائے جگہوں جگہیں جھاڑو جھجھک جھن...
(ReplaceLettersInSameLangs)
[whitespace] ~546-~546: آیا منظور شما «"جوهری"» است؟
Context: ...ہیں جنیوا جوابی جواگر جوتوں جولیا جوہان جوہری جگائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھن...
(ReplaceLettersInSameLangs)
[whitespace] ~548-~548: آیا منظور شما «"جگهوں"» است؟
Context: ...ابی جواگر جوتوں جولیا جوہان جوہری جگائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھو...
(ReplaceLettersInSameLangs)
[whitespace] ~549-~549: آیا منظور شما «"جگهیں"» است؟
Context: ...اگر جوتوں جولیا جوہان جوہری جگائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھو...
(ReplaceLettersInSameLangs)
[whitespace] ~550-~550: آیا منظور شما «"جهاڑو"» است؟
Context: ...توں جولیا جوہان جوہری جگائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھو...
(ReplaceLettersInSameLangs)
[whitespace] ~551-~551: آیا منظور شما «"جهجهک"» است؟
Context: ...لیا جوہان جوہری جگائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~552-~552: آیا منظور شما «"جهنڈا"» است؟
Context: ...ہان جوہری جگائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~553-~553: آیا منظور شما «"جهنڈے"» است؟
Context: ...ہری جگائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپ...
(ReplaceLettersInSameLangs)
[whitespace] ~554-~554: آیا منظور شما «"جهونک"» است؟
Context: ...ائے جگہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگ...
(ReplaceLettersInSameLangs)
[whitespace] ~555-~555: آیا منظور شما «"جهوٹا"» است؟
Context: ...ہوں جگہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگ...
(ReplaceLettersInSameLangs)
[whitespace] ~556-~556: آیا منظور شما «"جهوٹی"» است؟
Context: ...ہیں جھاڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہا...
(ReplaceLettersInSameLangs)
[whitespace] ~557-~557: آیا منظور شما «"جهوٹے"» است؟
Context: ...اڑو جھجھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہالت جیت...
(ReplaceLettersInSameLangs)
[whitespace] ~558-~558: آیا منظور شما «"جهٹلا"» است؟
Context: ...جھک جھنڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہالت جیتنے جین...
(ReplaceLettersInSameLangs)
[whitespace] ~559-~559: آیا منظور شما «"جهٹکا"» است؟
Context: ...نڈا جھنڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہالت جیتنے جینرو جیک...
(ReplaceLettersInSameLangs)
[whitespace] ~560-~560: آیا منظور شما «"جهپٹا"» است؟
Context: ...نڈے جھونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہالت جیتنے جینرو جیکسن حاد...
(ReplaceLettersInSameLangs)
[whitespace] ~561-~561: آیا منظور شما «"جهگڑا"» است؟
Context: ...ونک جھوٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہالت جیتنے جینرو جیکسن حادثہ حاد...
(ReplaceLettersInSameLangs)
[whitespace] ~562-~562: آیا منظور شما «"جهگڑے"» است؟
Context: ...وٹا جھوٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہالت جیتنے جینرو جیکسن حادثہ حادثے حال...
(ReplaceLettersInSameLangs)
[whitespace] ~563-~563: آیا منظور شما «"جهالت"» است؟
Context: ...وٹی جھوٹے جھٹلا جھٹکا جھپٹا جھگڑا جھگڑے جہالت جیتنے جینرو جیکسن حادثہ حادثے حالات حال...
(ReplaceLettersInSameLangs)
[whitespace] ~567-~567: آیا منظور شما «"حادثه"» است؟
Context: ...پٹا جھگڑا جھگڑے جہالت جیتنے جینرو جیکسن حادثہ حادثے حالات حالیہ حاملہ حرارت حراست حسن...
(ReplaceLettersInSameLangs)
[whitespace] ~570-~570: آیا منظور شما «"حالیه"» است؟
Context: ...الت جیتنے جینرو جیکسن حادثہ حادثے حالات حالیہ حاملہ حرارت حراست حسنسن حضرات حفاظت حقا...
(ReplaceLettersInSameLangs)
[whitespace] ~571-~571: آیا منظور شما «"حامله"» است؟
Context: ...تنے جینرو جیکسن حادثہ حادثے حالات حالیہ حاملہ حرارت حراست حسنسن حضرات حفاظت حقائق حقد...
(ReplaceLettersInSameLangs)
[whitespace] ~588-~588: آیا منظور شما «"حوصله"» است؟
Context: ...قوں حماقت حمایت حملوں حوالے حوروں حوریں حوصلہ حکومت حیثیت حیران حیوان خاتمہ خاتمے خات...
(ReplaceLettersInSameLangs)
[whitespace] ~593-~593: آیا منظور شما «"خاتمه"» است؟
Context: ...روں حوریں حوصلہ حکومت حیثیت حیران حیوان خاتمہ خاتمے خاتون خارجہ خارجی خاصیت خاموش خان...
(ReplaceLettersInSameLangs)
[whitespace] ~596-~596: آیا منظور شما «"خارجه"» است؟
Context: ...ومت حیثیت حیران حیوان خاتمہ خاتمے خاتون خارجہ خارجی خاصیت خاموش خانوں خبروں خبریں خدا...
(ReplaceLettersInSameLangs)
[whitespace] ~615-~615: آیا منظور شما «"خزانه"» است؟
Context: ...شات خدمات خرابی خراپن خروںچ خرگوش خریدا خزانہ خزانے خصوصی خطرات خلاصہ خلیات خواجہ خوا...
(ReplaceLettersInSameLangs)
[whitespace] ~619-~619: آیا منظور شما «"خلاصه"» است؟
Context: ...وںچ خرگوش خریدا خزانہ خزانے خصوصی خطرات خلاصہ خلیات خواجہ خواہش خوراک خہجءز خیانت خیم...
(ReplaceLettersInSameLangs)
[whitespace] ~621-~621: آیا منظور شما «"خواجه"» است؟
Context: ...یدا خزانہ خزانے خصوصی خطرات خلاصہ خلیات خواجہ خواہش خوراک خہجءز خیانت خیموں دائرہ دائ...
(ReplaceLettersInSameLangs)
[whitespace] ~622-~622: آیا منظور شما «"خواهش"» است؟
Context: ...انہ خزانے خصوصی خطرات خلاصہ خلیات خواجہ خواہش خوراک خہجءز خیانت خیموں دائرہ دائرے دائ...
(ReplaceLettersInSameLangs)
[whitespace] ~624-~624: آیا منظور شما «"خهجءز"» است؟
Context: ...وصی خطرات خلاصہ خلیات خواجہ خواہش خوراک خہجءز خیانت خیموں دائرہ دائرے دائیں داخلہ داخ...
(ReplaceLettersInSameLangs)
[whitespace] ~627-~627: آیا منظور شما «"دائره"» است؟
Context: ...یات خواجہ خواہش خوراک خہجءز خیانت خیموں دائرہ دائرے دائیں داخلہ داخلی داخلے دالان داڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~630-~630: آیا منظور شما «"داخله"» است؟
Context: ...راک خہجءز خیانت خیموں دائرہ دائرے دائیں داخلہ داخلی داخلے دالان داڑھی داہنے دبانا دبا...
(ReplaceLettersInSameLangs)
[whitespace] ~634-~634: آیا منظور شما «"داڑهی"» است؟
Context: ...ئرہ دائرے دائیں داخلہ داخلی داخلے دالان داڑھی داہنے دبانا دبانے درآمد دراصل درپیش درک...
(ReplaceLettersInSameLangs)
[whitespace] ~635-~635: آیا منظور شما «"داهنے"» است؟
Context: ...ئرے دائیں داخلہ داخلی داخلے دالان داڑھی داہنے دبانا دبانے درآمد دراصل درپیش درکار دست...
(ReplaceLettersInSameLangs)
[whitespace] ~668-~668: آیا منظور شما «"دوپهر"» است؟
Context: ...ستو دوستی دوسرا دوسری دوسرے دونوں دونگا دوپہر دوچار دوڑنے دوڑوں دوگلا دوگنی دوہرا دکھ...
(ReplaceLettersInSameLangs)
[whitespace] ~674-~674: آیا منظور شما «"دوهرا"» است؟
Context: ...نگا دوپہر دوچار دوڑنے دوڑوں دوگلا دوگنی دوہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھن...
(ReplaceLettersInSameLangs)
[whitespace] ~675-~675: آیا منظور شما «"دکهاؤ"» است؟
Context: ...پہر دوچار دوڑنے دوڑوں دوگلا دوگنی دوہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھو...
(ReplaceLettersInSameLangs)
[whitespace] ~676-~676: آیا منظور شما «"دکهاو"» است؟
Context: ...چار دوڑنے دوڑوں دوگلا دوگنی دوہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھو...
(ReplaceLettersInSameLangs)
[whitespace] ~677-~677: آیا منظور شما «"دکهتا"» است؟
Context: ...ڑنے دوڑوں دوگلا دوگنی دوہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھو...
(ReplaceLettersInSameLangs)
[whitespace] ~678-~678: آیا منظور شما «"دکهتے"» است؟
Context: ...ڑوں دوگلا دوگنی دوہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھو...
(ReplaceLettersInSameLangs)
[whitespace] ~679-~679: آیا منظور شما «"دهبوں"» است؟
Context: ...گلا دوگنی دوہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھو...
(ReplaceLettersInSameLangs)
[whitespace] ~680-~680: آیا منظور شما «"دهمکی"» است؟
Context: ...گنی دوہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچ...
(ReplaceLettersInSameLangs)
[whitespace] ~681-~681: آیا منظور شما «"دهنده"» است؟
Context: ...ہرا دکھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~682-~682: آیا منظور شما «"دهواں"» است؟
Context: ...ھاؤ دکھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~683-~683: آیا منظور شما «"دهونے"» است؟
Context: ...ھاو دکھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھی...
(ReplaceLettersInSameLangs)
[whitespace] ~684-~684: آیا منظور شما «"دهوکا"» است؟
Context: ...ھتا دکھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھی...
(ReplaceLettersInSameLangs)
[whitespace] ~685-~685: آیا منظور شما «"دهوکه"» است؟
Context: ...ھتے دھبوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھی...
(ReplaceLettersInSameLangs)
[whitespace] ~686-~686: آیا منظور شما «"دهوکے"» است؟
Context: ...بوں دھمکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہا...
(ReplaceLettersInSameLangs)
[whitespace] ~687-~687: آیا منظور شما «"دهچکا"» است؟
Context: ...مکی دھندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہر...
(ReplaceLettersInSameLangs)
[whitespace] ~688-~688: آیا منظور شما «"دهڑوں"» است؟
Context: ...ندہ دھواں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہن...
(ReplaceLettersInSameLangs)
[whitespace] ~689-~689: آیا منظور شما «"دهڑکن"» است؟
Context: ...واں دھونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہندہ دیا...
(ReplaceLettersInSameLangs)
[whitespace] ~690-~690: آیا منظور شما «"دهیان"» است؟
Context: ...ونے دھوکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہندہ دیالی دیا...
(ReplaceLettersInSameLangs)
[whitespace] ~691-~691: آیا منظور شما «"دهیرے"» است؟
Context: ...وکا دھوکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہندہ دیالی دیانا دیج...
(ReplaceLettersInSameLangs)
[whitespace] ~692-~692: آیا منظور شما «"دهیما"» است؟
Context: ...وکہ دھوکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہندہ دیالی دیانا دیجئے دیر...
(ReplaceLettersInSameLangs)
[whitespace] ~693-~693: آیا منظور شما «"دهائی"» است؟
Context: ...وکے دھچکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہندہ دیالی دیانا دیجئے دیرپا دیو...
(ReplaceLettersInSameLangs)
[whitespace] ~694-~694: آیا منظور شما «"دهراؤ"» است؟
Context: ...چکا دھڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہندہ دیالی دیانا دیجئے دیرپا دیوار دیک...
(ReplaceLettersInSameLangs)
[whitespace] ~695-~695: آیا منظور شما «"دهنده"» است؟
Context: ...ڑوں دھڑکن دھیان دھیرے دھیما دہائی دہراؤ دہندہ دیالی دیانا دیجئے دیرپا دیوار دیکھا دیک...
(ReplaceLettersInSameLangs)
[whitespace] ~701-~701: آیا منظور شما «"دیکها"» است؟
Context: ...راؤ دہندہ دیالی دیانا دیجئے دیرپا دیوار دیکھا دیکھو دیکھی دیکھے ذائقہ ذخائر ذخیرہ ذرا...
(ReplaceLettersInSameLangs)
[whitespace] ~702-~702: آیا منظور شما «"دیکهو"» است؟
Context: ...ندہ دیالی دیانا دیجئے دیرپا دیوار دیکھا دیکھو دیکھی دیکھے ذائقہ ذخائر ذخیرہ ذرائع ذری...
(ReplaceLettersInSameLangs)
[whitespace] ~703-~703: آیا منظور شما «"دیکهی"» است؟
Context: ...الی دیانا دیجئے دیرپا دیوار دیکھا دیکھو دیکھی دیکھے ذائقہ ذخائر ذخیرہ ذرائع ذریعہ ذری...
(ReplaceLettersInSameLangs)
[whitespace] ~704-~704: آیا منظور شما «"دیکهے"» است؟
Context: ...انا دیجئے دیرپا دیوار دیکھا دیکھو دیکھی دیکھے ذائقہ ذخائر ذخیرہ ذرائع ذریعہ ذریعے ذلا...
(ReplaceLettersInSameLangs)
[whitespace] ~705-~705: آیا منظور شما «"ذائقه"» است؟
Context: ...جئے دیرپا دیوار دیکھا دیکھو دیکھی دیکھے ذائقہ ذخائر ذخیرہ ذرائع ذریعہ ذریعے ذلالت ذہج...
(ReplaceLettersInSameLangs)
[whitespace] ~707-~707: آیا منظور شما «"ذخیره"» است؟
Context: ...وار دیکھا دیکھو دیکھی دیکھے ذائقہ ذخائر ذخیرہ ذرائع ذریعہ ذریعے ذلالت ذہجءز ذہنوں ذہن...
(ReplaceLettersInSameLangs)
[whitespace] ~709-~709: آیا منظور شما «"ذریعه"» است؟
Context: ...کھو دیکھی دیکھے ذائقہ ذخائر ذخیرہ ذرائع ذریعہ ذریعے ذلالت ذہجءز ذہنوں ذہنیت راؤنڈ رائ...
(ReplaceLettersInSameLangs)
[whitespace] ~712-~712: آیا منظور شما «"ذهجءز"» است؟
Context: ...ئقہ ذخائر ذخیرہ ذرائع ذریعہ ذریعے ذلالت ذہجءز ذہنوں ذہنیت راؤنڈ رائفل رابرٹ رابطہ راب...
(ReplaceLettersInSameLangs)
[whitespace] ~713-~713: آیا منظور شما «"ذهنوں"» است؟
Context: ...ائر ذخیرہ ذرائع ذریعہ ذریعے ذلالت ذہجءز ذہنوں ذہنیت راؤنڈ رائفل رابرٹ رابطہ رابطے رات...
(ReplaceLettersInSameLangs)
[whitespace] ~714-~714: آیا منظور شما «"ذهنیت"» است؟
Context: ...یرہ ذرائع ذریعہ ذریعے ذلالت ذہجءز ذہنوں ذہنیت راؤنڈ رائفل رابرٹ رابطہ رابطے راتوں راج...
(ReplaceLettersInSameLangs)
[whitespace] ~718-~718: آیا منظور شما «"رابطه"» است؟
Context: ...الت ذہجءز ذہنوں ذہنیت راؤنڈ رائفل رابرٹ رابطہ رابطے راتوں راجرز راستہ راستے راکٹس راہ...
(ReplaceLettersInSameLangs)
[whitespace] ~722-~722: آیا منظور شما «"راسته"» است؟
Context: ...ؤنڈ رائفل رابرٹ رابطہ رابطے راتوں راجرز راستہ راستے راکٹس راہیں ربیکا رجحان رجمنٹ ردع...
(ReplaceLettersInSameLangs)
[whitespace] ~725-~725: آیا منظور شما «"راهیں"» است؟
Context: ...بطہ رابطے راتوں راجرز راستہ راستے راکٹس راہیں ربیکا رجحان رجمنٹ ردعمل رسائی رسالت رسا...
(ReplaceLettersInSameLangs)
[whitespace] ~739-~739: آیا منظور شما «"روانه"» است؟
Context: ...انی رسیلی رسیوں رعایا رعایت رفتار روابط روانہ روایت روبوٹ روحوں روشنی رولنڈ رولنگ روم...
(ReplaceLettersInSameLangs)
[whitespace] ~756-~756: آیا منظور شما «"رکهتا"» است؟
Context: ...پوش روکتا روکنا روکنے رپورٹ رکاوٹ رکنیت رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھ...
(ReplaceLettersInSameLangs)
[whitespace] ~757-~757: آیا منظور شما «"رکهتی"» است؟
Context: ...کتا روکنا روکنے رپورٹ رکاوٹ رکنیت رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~758-~758: آیا منظور شما «"رکهتے"» است؟
Context: ...کنا روکنے رپورٹ رکاوٹ رکنیت رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہا...
(ReplaceLettersInSameLangs)
[whitespace] ~759-~759: آیا منظور شما «"رکهنا"» است؟
Context: ...کنے رپورٹ رکاوٹ رکنیت رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہا...
(ReplaceLettersInSameLangs)
[whitespace] ~760-~760: آیا منظور شما «"رکهنی"» است؟
Context: ...ورٹ رکاوٹ رکنیت رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہائی رہن...
(ReplaceLettersInSameLangs)
[whitespace] ~761-~761: آیا منظور شما «"رکهنے"» است؟
Context: ...اوٹ رکنیت رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہائی رہنما رہو...
(ReplaceLettersInSameLangs)
[whitespace] ~762-~762: آیا منظور شما «"رکهوں"» است؟
Context: ...نیت رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہائی رہنما رہوگے ریا...
(ReplaceLettersInSameLangs)
[whitespace] ~763-~763: آیا منظور شما «"رکهیں"» است؟
Context: ...ھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہائی رہنما رہوگے ریاست ریج...
(ReplaceLettersInSameLangs)
[whitespace] ~765-~765: آیا منظور شما «"رهائش"» است؟
Context: ...ھتے رکھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہائی رہنما رہوگے ریاست ریجنل ریزرو ریس...
(ReplaceLettersInSameLangs)
[whitespace] ~766-~766: آیا منظور شما «"رهائی"» است؟
Context: ...ھنا رکھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہائی رہنما رہوگے ریاست ریجنل ریزرو ریسرچ ریش...
(ReplaceLettersInSameLangs)
[whitespace] ~767-~767: آیا منظور شما «"رهنما"» است؟
Context: ...ھنی رکھنے رکھوں رکھیں رگڑتا رہائش رہائی رہنما رہوگے ریاست ریجنل ریزرو ریسرچ ریشمی ریل...
(ReplaceLettersInSameLangs)
[whitespace] ~768-~768: آیا منظور شما «"رهوگے"» است؟
Context: ...ھنے رکھوں رکھیں رگڑتا رہائش رہائی رہنما رہوگے ریاست ریجنل ریزرو ریسرچ ریشمی ریلوے ریم...
(ReplaceLettersInSameLangs)
[whitespace] ~783-~783: آیا منظور شما «"زاویه"» است؟
Context: ...مسی ریورس ریوین ریڈار ریڈیو ریکٹر زانٹی زاویہ زخموں زلزلہ زلزلے زمانے زندگی زگانے زیا...
(ReplaceLettersInSameLangs)
[whitespace] ~785-~785: آیا منظور شما «"زلزله"» است؟
Context: ...وین ریڈار ریڈیو ریکٹر زانٹی زاویہ زخموں زلزلہ زلزلے زمانے زندگی زگانے زیادہ سائبر سائ...
(ReplaceLettersInSameLangs)
[whitespace] ~790-~790: آیا منظور شما «"زیاده"» است؟
Context: ...ویہ زخموں زلزلہ زلزلے زمانے زندگی زگانے زیادہ سائبر سائرل سائرن سائنس سابقہ ساتھی ساح...
(ReplaceLettersInSameLangs)
[whitespace] ~795-~795: آیا منظور شما «"سابقه"» است؟
Context: ...دگی زگانے زیادہ سائبر سائرل سائرن سائنس سابقہ ساتھی ساحلی ساختہ سادگی ساسیں سالار سال...
(ReplaceLettersInSameLangs)
[whitespace] ~796-~796: آیا منظور شما «"ساتهی"» است؟
Context: ...انے زیادہ سائبر سائرل سائرن سائنس سابقہ ساتھی ساحلی ساختہ سادگی ساسیں سالار سالسا سال...
(ReplaceLettersInSameLangs)
[whitespace] ~798-~798: آیا منظور شما «"ساخته"» است؟
Context: ...ئبر سائرل سائرن سائنس سابقہ ساتھی ساحلی ساختہ سادگی ساسیں سالار سالسا سالوں سالچک سام...
(ReplaceLettersInSameLangs)
[whitespace] ~811-~811: آیا منظور شما «"سانحه"» است؟
Context: ...لچک سامان سامبو سامری سامنا سامنے سانتا سانحہ سانحے سبارو ستارہ ستارے ستمبر سجایا سخا...
(ReplaceLettersInSameLangs)
[whitespace] ~814-~814: آیا منظور شما «"ستاره"» است؟
Context: ...مری سامنا سامنے سانتا سانحہ سانحے سبارو ستارہ ستارے ستمبر سجایا سخاوت سراسر سراہا سرج...
(ReplaceLettersInSameLangs)
[whitespace] ~820-~820: آیا منظور شما «"سراها"» است؟
Context: ...ارو ستارہ ستارے ستمبر سجایا سخاوت سراسر سراہا سرجری سرحدی سردار سرسبز سرسوں سرغنہ سرم...
(ReplaceLettersInSameLangs)
[whitespace] ~826-~826: آیا منظور شما «"سرغنه"» است؟
Context: ...اسر سراہا سرجری سرحدی سردار سرسبز سرسوں سرغنہ سرمئی سرورز سروسز سرکشی سرکٹس سرینا سعو...
(ReplaceLettersInSameLangs)
[whitespace] ~838-~838: آیا منظور شما «"سلسله"» است؟
Context: ...کٹس سرینا سعودی سفارت سفارش سلائڈ سلامت سلسلہ سلسلے سلطان سلطنت سلویو سلیکس سماجی سما...
(ReplaceLettersInSameLangs)
[whitespace] ~848-~848: آیا منظور شما «"سمجها"» است؟
Context: ...طنت سلویو سلیکس سماجی سماعت سمتار سمتبر سمجھا سمجھی سمجھے سمسٹر سمندر سمنوی سنائی سنا...
(ReplaceLettersInSameLangs)
[whitespace] ~849-~849: آیا منظور شما «"سمجهی"» است؟
Context: ...ویو سلیکس سماجی سماعت سمتار سمتبر سمجھا سمجھی سمجھے سمسٹر سمندر سمنوی سنائی سناتا سنا...
(ReplaceLettersInSameLangs)
[whitespace] ~850-~850: آیا منظور شما «"سمجهے"» است؟
Context: ...یکس سماجی سماعت سمتار سمتبر سمجھا سمجھی سمجھے سمسٹر سمندر سمنوی سنائی سناتا سنایا سنب...
(ReplaceLettersInSameLangs)
[whitespace] ~857-~857: آیا منظور شما «"سنبهل"» است؟
Context: ...جھے سمسٹر سمندر سمنوی سنائی سناتا سنایا سنبھل سنتان سنتری سنسنی سنوڈن سنوگی سنچری سنگ...
(ReplaceLettersInSameLangs)
[whitespace] ~865-~865: آیا منظور شما «"سنهری"» است؟
Context: ...تان سنتری سنسنی سنوڈن سنوگی سنچری سنگین سنہری سنہرے سوئنگ سوائے سوادج سواری سوراخ سوز...
(ReplaceLettersInSameLangs)
[whitespace] ~866-~866: آیا منظور شما «"سنهرے"» است؟
Context: ...تری سنسنی سنوڈن سنوگی سنچری سنگین سنہری سنہرے سوئنگ سوائے سوادج سواری سوراخ سوزاک سوچ...
(ReplaceLettersInSameLangs)
[whitespace] ~891-~891: آیا منظور شما «"سپاهی"» است؟
Context: ...ارک سٹریٹ سٹیشن سٹیفن سٹیمپ سٹیون سٹیوی سپاہی سپریم سپیشل سچائی سڑکوں سکاؤٹ سکتیں سکر...
(ReplaceLettersInSameLangs)
[whitespace] ~902-~902: آیا منظور شما «"سکهاؤ"» است؟
Context: ...کوں سکاؤٹ سکتیں سکرپٹ سکرین سکریپ سکریچ سکھاؤ سگریٹ سگنلز سہارے سہولت سیارہ سیارے سیا...
(ReplaceLettersInSameLangs)
[whitespace] ~905-~905: آیا منظور شما «"سهارے"» است؟
Context: ...رپٹ سکرین سکریپ سکریچ سکھاؤ سگریٹ سگنلز سہارے سہولت سیارہ سیارے سیاست سیاسی سیدھا سید...
(ReplaceLettersInSameLangs)
[whitespace] ~906-~906: آیا منظور شما «"سهولت"» است؟
Context: ...رین سکریپ سکریچ سکھاؤ سگریٹ سگنلز سہارے سہولت سیارہ سیارے سیاست سیاسی سیدھا سیدھی سید...
(ReplaceLettersInSameLangs)
[whitespace] ~907-~907: آیا منظور شما «"سیاره"» است؟
Context: ...ریپ سکریچ سکھاؤ سگریٹ سگنلز سہارے سہولت سیارہ سیارے سیاست سیاسی سیدھا سیدھی سیدھے سیر...
(ReplaceLettersInSameLangs)
[whitespace] ~911-~911: آیا منظور شما «"سیدها"» است؟
Context: ...نلز سہارے سہولت سیارہ سیارے سیاست سیاسی سیدھا سیدھی سیدھے سیریز سیلاب سیلاس سیلمن سین...
(ReplaceLettersInSameLangs)
[whitespace] ~912-~912: آیا منظور شما «"سیدهی"» است؟
Context: ...ارے سہولت سیارہ سیارے سیاست سیاسی سیدھا سیدھی سیدھے سیریز سیلاب سیلاس سیلمن سینئر سین...
(ReplaceLettersInSameLangs)
[whitespace] ~913-~913: آیا منظور شما «"سیدهے"» است؟
Context: ...ولت سیارہ سیارے سیاست سیاسی سیدھا سیدھی سیدھے سیریز سیلاب سیلاس سیلمن سینئر سینٹر سین...
(ReplaceLettersInSameLangs)
[whitespace] ~926-~926: آیا منظور شما «"سیکها"» است؟
Context: ...نٹر سینکا سیٹیں سیڈان سیکرٹ سیکشن سیکنڈ سیکھا سییلی شاؤلن شاباش شالوم شاپنگ شاگرد شخص...
(ReplaceLettersInSameLangs)
[whitespace] ~937-~937: آیا منظور شما «"شرطیه"» است؟
Context: ...لوم شاپنگ شاگرد شخصیت شرابا شرابی شراکت شرطیہ شرماو شرٹوں شریان شعلوں شمالی شناخت شوٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~947-~947: آیا منظور شما «"شکریه"» است؟
Context: ...یان شعلوں شمالی شناخت شوٹنگ شکاری شکایت شکریہ شکلیں شکنیں شگاگو شہادت شہروں شہسہا شیر...
(ReplaceLettersInSameLangs)
[whitespace] ~951-~951: آیا منظور شما «"شهادت"» است؟
Context: ...ٹنگ شکاری شکایت شکریہ شکلیں شکنیں شگاگو شہادت شہروں شہسہا شیروں شیطان شیلٹر شیپرڈ شیڈ...
(ReplaceLettersInSameLangs)
[whitespace] ~952-~952: آیا منظور شما «"شهروں"» است؟
Context: ...اری شکایت شکریہ شکلیں شکنیں شگاگو شہادت شہروں شہسہا شیروں شیطان شیلٹر شیپرڈ شیڈول صحا...
(ReplaceLettersInSameLangs)
[whitespace] ~953-~953: آیا منظور شما «"شهسها"» است؟
Context: ...ایت شکریہ شکلیں شکنیں شگاگو شہادت شہروں شہسہا شیروں شیطان شیلٹر شیپرڈ شیڈول صحافی صحر...
(ReplaceLettersInSameLangs)
[whitespace] ~973-~973: آیا منظور شما «"طریقه"» است؟
Context: ...بوں ضآؤاط ضرورت ضروری ضمانت ضوابط طالاب طریقہ طریقے طلائی طلسمی طوفان طیارہ طیارے ظری...
(ReplaceLettersInSameLangs)
[whitespace] ~978-~978: آیا منظور شما «"طیاره"» است؟
Context: ...ابط طالاب طریقہ طریقے طلائی طلسمی طوفان طیارہ طیارے ظریفی عاجزی عارضی عالمی عالیہ عبا...
(ReplaceLettersInSameLangs)
[whitespace] ~984-~984: آیا منظور شما «"عالیه"» است؟
Context: ...فان طیارہ طیارے ظریفی عاجزی عارضی عالمی عالیہ عبادت عدالت عراقی عربوں عزائم عسکری عقا...
(ReplaceLettersInSameLangs)
[whitespace] ~992-~992: آیا منظور شما «"عقیده"» است؟
Context: ...ادت عدالت عراقی عربوں عزائم عسکری عقائد عقیدہ عقیدے علاقہ علاقے علامت علاوہ علموں علی...
(ReplaceLettersInSameLangs)
[whitespace] ~994-~994: آیا منظور شما «"علاقه"» است؟
Context: ...اقی عربوں عزائم عسکری عقائد عقیدہ عقیدے علاقہ علاقے علامت علاوہ علموں علیکم عمارت عمل...
(ReplaceLettersInSameLangs)
[whitespace] ~997-~997: آیا منظور شما «"علاوه"» است؟
Context: ...کری عقائد عقیدہ عقیدے علاقہ علاقے علامت علاوہ علموں علیکم عمارت عملوں عنوان عوامی عہد...
(ReplaceLettersInSameLangs)
[whitespace] ~1004-~1004: آیا منظور شما «"عهدوں"» است؟
Context: ...اوہ علموں علیکم عمارت عملوں عنوان عوامی عہدوں غبارے غداری غرائب غمزدہ غمگین غنڈوں غٹا...
(ReplaceLettersInSameLangs)
[whitespace] ~1008-~1008: آیا منظور شما «"غمزده"» است؟
Context: ...لوں عنوان عوامی عہدوں غبارے غداری غرائب غمزدہ غمگین غنڈوں غٹاغٹ غیرتی فائدہ فائدے فائ...
(ReplaceLettersInSameLangs)
[whitespace] ~1013-~1013: آیا منظور شما «"فائده"» است؟
Context: ...اری غرائب غمزدہ غمگین غنڈوں غٹاغٹ غیرتی فائدہ فائدے فائٹر فائیو فارسی فارما فاصلہ فاص...
(ReplaceLettersInSameLangs)
[whitespace] ~1019-~1019: آیا منظور شما «"فاصله"» است؟
Context: ...رتی فائدہ فائدے فائٹر فائیو فارسی فارما فاصلہ فاصلے فرائض فرانس فراہم فرشتہ فرعون فرو...
(ReplaceLettersInSameLangs)
[whitespace] ~1023-~1023: آیا منظور شما «"فراهم"» است؟
Context: ...ئیو فارسی فارما فاصلہ فاصلے فرائض فرانس فراہم فرشتہ فرعون فروخت فروری فرینڈ فرینک فضا...
(ReplaceLettersInSameLangs)
[whitespace] ~1024-~1024: آیا منظور شما «"فرشته"» است؟
Context: ...رسی فارما فاصلہ فاصلے فرائض فرانس فراہم فرشتہ فرعون فروخت فروری فرینڈ فرینک فضائی فضی...
(ReplaceLettersInSameLangs)
[whitespace] ~1033-~1033: آیا منظور شما «"فلسفه"» است؟
Context: ...وخت فروری فرینڈ فرینک فضائی فضیلت فلائٹ فلسفہ فلسفے فلموں فلمیں فلٹرز فنڈنگ فوائد فوا...
(ReplaceLettersInSameLangs)
[whitespace] ~1040-~1040: آیا منظور شما «"فواره"» است؟
Context: ...سفہ فلسفے فلموں فلمیں فلٹرز فنڈنگ فوائد فوارہ فوارے فوبیا فوجوں فوجیں فورسز فہرست فیص...
(ReplaceLettersInSameLangs)
[whitespace] ~1046-~1046: آیا منظور شما «"فهرست"» است؟
Context: ...ائد فوارہ فوارے فوبیا فوجوں فوجیں فورسز فہرست فیصلہ فیصلے فینکس فیڈرل قاعدہ قافلے قال...
(ReplaceLettersInSameLangs)
[whitespace] ~1047-~1047: آیا منظور شما «"فیصله"» است؟
Context: ...ارہ فوارے فوبیا فوجوں فوجیں فورسز فہرست فیصلہ فیصلے فینکس فیڈرل قاعدہ قافلے قالین قان...
(ReplaceLettersInSameLangs)
[whitespace] ~1051-~1051: آیا منظور شما «"قاعده"» است؟
Context: ...جیں فورسز فہرست فیصلہ فیصلے فینکس فیڈرل قاعدہ قافلے قالین قانون قبیلہ قبیلے قدرتی قدم...
(ReplaceLettersInSameLangs)
[whitespace] ~1055-~1055: آیا منظور شما «"قبیله"» است؟
Context: ...صلے فینکس فیڈرل قاعدہ قافلے قالین قانون قبیلہ قبیلے قدرتی قدموں قذافی قربان قریبی قسم...
(ReplaceLettersInSameLangs)
[whitespace] ~1084-~1084: آیا منظور شما «"لاٹهی"» است؟
Context: ...توں لارنس لازما لازمی لاشیں لافلن لالچی لاٹھی لاپتہ لاہور لبرٹی لبنان لرزاں لطیفے لعن...
(ReplaceLettersInSameLangs)
[whitespace] ~1085-~1085: آیا منظور شما «"لاپته"» است؟
Context: ...رنس لازما لازمی لاشیں لافلن لالچی لاٹھی لاپتہ لاہور لبرٹی لبنان لرزاں لطیفے لعنتی لفظ...
(ReplaceLettersInSameLangs)
[whitespace] ~1086-~1086: آیا منظور شما «"لاهور"» است؟
Context: ...زما لازمی لاشیں لافلن لالچی لاٹھی لاپتہ لاہور لبرٹی لبنان لرزاں لطیفے لعنتی لفظوں لمح...
(ReplaceLettersInSameLangs)
[whitespace] ~1108-~1108: آیا منظور شما «"لڑرهے"» است؟
Context: ...نگا لوٹنا لوٹنے لوڈنگ لوگوں لڑائی لڑاکا لڑرہے لڑکوں لکھنا لکھنے لکھیں لگائی لگائے لگا...
(ReplaceLettersInSameLangs)
[whitespace] ~1110-~1110: آیا منظور شما «"لکهنا"» است؟
Context: ...ٹنے لوڈنگ لوگوں لڑائی لڑاکا لڑرہے لڑکوں لکھنا لکھنے لکھیں لگائی لگائے لگاتا لگاتے لگا...
(ReplaceLettersInSameLangs)
[whitespace] ~1111-~1111: آیا منظور شما «"لکهنے"» است؟
Context: ...ڈنگ لوگوں لڑائی لڑاکا لڑرہے لڑکوں لکھنا لکھنے لکھیں لگائی لگائے لگاتا لگاتے لگانا لگا...
(ReplaceLettersInSameLangs)
[whitespace] ~1112-~1112: آیا منظور شما «"لکهیں"» است؟
Context: ...گوں لڑائی لڑاکا لڑرہے لڑکوں لکھنا لکھنے لکھیں لگائی لگائے لگاتا لگاتے لگانا لگانے لگا...
(ReplaceLettersInSameLangs)
[whitespace] ~1120-~1120: آیا منظور شما «"لگرها"» است؟
Context: ...ائی لگائے لگاتا لگاتے لگانا لگانے لگایا لگرہا لہروں لیبیا لیجئے لیجنڈ ماؤنٹ مائنس مائ...
(ReplaceLettersInSameLangs)
[whitespace] ~1121-~1121: آیا منظور شما «"لهروں"» است؟
Context: ...ائے لگاتا لگاتے لگانا لگانے لگایا لگرہا لہروں لیبیا لیجئے لیجنڈ ماؤنٹ مائنس مائیک ماب...
(ReplaceLettersInSameLangs)
[whitespace] ~1152-~1152: آیا منظور شما «"مانده"» است؟
Context: ...سکو مافیا مالکن مالیت مانتا مانتی مانتے ماندہ ماننا مانند ماننی ماننے مانگو مانگے مان...
(ReplaceLettersInSameLangs)
[whitespace] ~1163-~1163: آیا منظور شما «"مبینه"» است؟
Context: ...ننے مانگو مانگے مانیں مایوس مبارک مبتلا مبینہ متاثر متجسس متحدہ متحمل مترجم متروک متص...
(ReplaceLettersInSameLangs)
[whitespace] ~1166-~1166: آیا منظور شما «"متحده"» است؟
Context: ...نیں مایوس مبارک مبتلا مبینہ متاثر متجسس متحدہ متحمل مترجم متروک متصور متضاد متعلق متع...
(ReplaceLettersInSameLangs)
[whitespace] ~1175-~1175: آیا منظور شما «"متوجه"» است؟
Context: ...رجم متروک متصور متضاد متعلق متعین متغیر متوجہ متوقع مثالی مجازی مجبور مجروح محافظ محب...
(ReplaceLettersInSameLangs)
[whitespace] ~1191-~1191: آیا منظور شما «"محکمه"» است؟
Context: ...تاظ محترم محدود محروم محسوس محفوظ محلوں محکمہ مخالف مخبری مختار مختتم مختصر مختلف مخر...
(ReplaceLettersInSameLangs)
[whitespace] ~1202-~1202: آیا منظور شما «"مخواه"» است؟
Context: ...تتم مختصر مختلف مخروط مخصوص مخلوط مخلوق مخواہ مداوا مدراس مدنظر مذموم مذہبی مربوط مرت...
(ReplaceLettersInSameLangs)
[whitespace] ~1207-~1207: آیا منظور شما «"مذهبی"» است؟
Context: ...لوط مخلوق مخواہ مداوا مدراس مدنظر مذموم مذہبی مربوط مرتبہ مرتھا مرجھا مرحلہ مرحلے مرح...
(ReplaceLettersInSameLangs)
[whitespace] ~1209-~1209: آیا منظور شما «"مرتبه"» است؟
Context: ...واہ مداوا مدراس مدنظر مذموم مذہبی مربوط مرتبہ مرتھا مرجھا مرحلہ مرحلے مرحوم مردار مرد...
(ReplaceLettersInSameLangs)
[whitespace] ~1210-~1210: آیا منظور شما «"مرتها"» است؟
Context: ...اوا مدراس مدنظر مذموم مذہبی مربوط مرتبہ مرتھا مرجھا مرحلہ مرحلے مرحوم مردار مردوں مرم...
(ReplaceLettersInSameLangs)
[whitespace] ~1211-~1211: آیا منظور شما «"مرجها"» است؟
Context: ...راس مدنظر مذموم مذہبی مربوط مرتبہ مرتھا مرجھا مرحلہ مرحلے مرحوم مردار مردوں مرموز مرو...
(ReplaceLettersInSameLangs)
[whitespace] ~1212-~1212: آیا منظور شما «"مرحله"» است؟
Context: ...نظر مذموم مذہبی مربوط مرتبہ مرتھا مرجھا مرحلہ مرحلے مرحوم مردار مردوں مرموز مروان مرچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1223-~1223: آیا منظور شما «"مرهون"» است؟
Context: ...دوں مرموز مروان مرچکا مرکزی مرکوز مرگئے مرہون مریگا مزدور مسئلہ مسئلے مسائل مسافر مست...
(ReplaceLettersInSameLangs)
[whitespace] ~1226-~1226: آیا منظور شما «"مسئله"» است؟
Context: ...چکا مرکزی مرکوز مرگئے مرہون مریگا مزدور مسئلہ مسئلے مسائل مسافر مستحق مسترد مستقل مست...
(ReplaceLettersInSameLangs)
[whitespace] ~1238-~1238: آیا منظور شما «"مسوده"» است؟
Context: ...ترد مستقل مستند مستول مسدود مسلسل مسمار مسودہ مسوری مسٹرد مسکرا مسیحی مشاغل مشتبہ مشت...
(ReplaceLettersInSameLangs)
[whitespace] ~1244-~1244: آیا منظور شما «"مشتبه"» است؟
Context: ...مار مسودہ مسوری مسٹرد مسکرا مسیحی مشاغل مشتبہ مشترک مشتمل مشرقی مشروب مشروط مشغول مشو...
(ReplaceLettersInSameLangs)
[whitespace] ~1251-~1251: آیا منظور شما «"مشوره"» است؟
Context: ...تبہ مشترک مشتمل مشرقی مشروب مشروط مشغول مشورہ مشکوک مشہور مصائب مصروف مصلحت مصیبت مضب...
(ReplaceLettersInSameLangs)
[whitespace] ~1253-~1253: آیا منظور شما «"مشهور"» است؟
Context: ...تمل مشرقی مشروب مشروط مشغول مشورہ مشکوک مشہور مصائب مصروف مصلحت مصیبت مضبوط مضحکہ مضم...
(ReplaceLettersInSameLangs)
[whitespace] ~1259-~1259: آیا منظور شما «"مضحکه"» است؟
Context: ...کوک مشہور مصائب مصروف مصلحت مصیبت مضبوط مضحکہ مضمون مطابق مطلوب مطمئن مطمعن مظلوم معا...
(ReplaceLettersInSameLangs)
[misspelling] ~1264-~1264: اشتباه محتمل املائی پیداشده: مطمئن.
Context: ...یبت مضبوط مضحکہ مضمون مطابق مطلوب مطمئن مطمعن مظلوم معافی معبود معجزہ معدنی معذرت معذ...
(FA_SIMPLE_REPLACE)
[whitespace] ~1268-~1268: آیا منظور شما «"معجزه"» است؟
Context: ...ابق مطلوب مطمئن مطمعن مظلوم معافی معبود معجزہ معدنی معذرت معذور معرفت معروف معزرت معص...
(ReplaceLettersInSameLangs)
[whitespace] ~1286-~1286: آیا منظور شما «"مقاله"» است؟
Context: ...نوں معیار مغربی مغفرت مفرور مفلوج مقاصد مقالہ مقامی مقبول مقدار مقدمہ مقدمے ملاتے ملا...
(ReplaceLettersInSameLangs)
[whitespace] ~1290-~1290: آیا منظور شما «"مقدمه"» است؟
Context: ...رور مفلوج مقاصد مقالہ مقامی مقبول مقدار مقدمہ مقدمے ملاتے ملازم ملانے ملاکر ملایا ملح...
(ReplaceLettersInSameLangs)
[whitespace] ~1297-~1297: آیا منظور شما «"ملحقه"» است؟
Context: ...دمہ مقدمے ملاتے ملازم ملانے ملاکر ملایا ملحقہ ملعون ملٹری ملکیت ممالک ممنوع ممکنہ منا...
(ReplaceLettersInSameLangs)
[whitespace] ~1303-~1303: آیا منظور شما «"ممکنه"» است؟
Context: ...ایا ملحقہ ملعون ملٹری ملکیت ممالک ممنوع ممکنہ مناسب مناظر منافق منانے منتخب منتظر منت...
(ReplaceLettersInSameLangs)
[whitespace] ~1316-~1316: آیا منظور شما «"منزله"» است؟
Context: ...تظر منتظم منتقل منتیں منجمد منحصر منحوس منزلہ منسلک منسوب منسوخ منطقی منظور منعقد منف...
(ReplaceLettersInSameLangs)
[whitespace] ~1326-~1326: آیا منظور شما «"منهدم"» است؟
Context: ...سوخ منطقی منظور منعقد منفرد منقطع منٹوں منہدم منیجر مواقع موجود مورٹز مورگن موزوں موس...
(ReplaceLettersInSameLangs)
[whitespace] ~1340-~1340: آیا منظور شما «"مٹهاس"» است؟
Context: ...ساد موصول موضوع مولوی موونگ مویشی مٹانے مٹھاس مچانا مچھلی مکانی مکاوت مہاجر مہارت مہا...
(ReplaceLettersInSameLangs)
[whitespace] ~1342-~1342: آیا منظور شما «"مچهلی"» است؟
Context: ...ضوع مولوی موونگ مویشی مٹانے مٹھاس مچانا مچھلی مکانی مکاوت مہاجر مہارت مہاشی مہریں مہم...
(ReplaceLettersInSameLangs)
[whitespace] ~1345-~1345: آیا منظور شما «"مهاجر"» است؟
Context: ...یشی مٹانے مٹھاس مچانا مچھلی مکانی مکاوت مہاجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہو...
(ReplaceLettersInSameLangs)
[whitespace] ~1346-~1346: آیا منظور شما «"مهارت"» است؟
Context: ...انے مٹھاس مچانا مچھلی مکانی مکاوت مہاجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہی...
(ReplaceLettersInSameLangs)
[whitespace] ~1347-~1347: آیا منظور شما «"مهاشی"» است؟
Context: ...ھاس مچانا مچھلی مکانی مکاوت مہاجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہی...
(ReplaceLettersInSameLangs)
[whitespace] ~1348-~1348: آیا منظور شما «"مهریں"» است؟
Context: ...انا مچھلی مکانی مکاوت مہاجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہینے مید...
(ReplaceLettersInSameLangs)
[whitespace] ~1349-~1349: آیا منظور شما «"مهمان"» است؟
Context: ...ھلی مکانی مکاوت مہاجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہینے میدان میر...
(ReplaceLettersInSameLangs)
[whitespace] ~1350-~1350: آیا منظور شما «"مهنگا"» است؟
Context: ...انی مکاوت مہاجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہینے میدان میراث میر...
(ReplaceLettersInSameLangs)
[whitespace] ~1351-~1351: آیا منظور شما «"مهنگے"» است؟
Context: ...اوت مہاجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہینے میدان میراث میرین میر...
(ReplaceLettersInSameLangs)
[whitespace] ~1352-~1352: آیا منظور شما «"مهودی"» است؟
Context: ...اجر مہارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہینے میدان میراث میرین میریٹ میز...
(ReplaceLettersInSameLangs)
[whitespace] ~1353-~1353: آیا منظور شما «"مهینه"» است؟
Context: ...ارت مہاشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہینے میدان میراث میرین میریٹ میزیں میل...
(ReplaceLettersInSameLangs)
[whitespace] ~1354-~1354: آیا منظور شما «"مهینے"» است؟
Context: ...اشی مہریں مہمان مہنگا مہنگے مہودی مہینہ مہینے میدان میراث میرین میریٹ میزیں میلنگ میم...
(ReplaceLettersInSameLangs)
[whitespace] ~1367-~1367: آیا منظور شما «"میٹهی"» است؟
Context: ...لنگ میمبر مینار مینڈی میوزک میٹرو میٹنگ میٹھی میڈرڈ میڈیا نااہل نابود نادان نادیہ نار...
(ReplaceLettersInSameLangs)
[whitespace] ~1370-~1370: آیا منظور شما «"نااهل"» است؟
Context: ...نڈی میوزک میٹرو میٹنگ میٹھی میڈرڈ میڈیا نااہل نابود نادان نادیہ ناراض نارمل ناستے ناش...
(ReplaceLettersInSameLangs)
[whitespace] ~1373-~1373: آیا منظور شما «"نادیه"» است؟
Context: ...ٹنگ میٹھی میڈرڈ میڈیا نااہل نابود نادان نادیہ ناراض نارمل ناستے ناشتا ناقوس نامزد نام...
(ReplaceLettersInSameLangs)
[whitespace] ~1387-~1387: آیا منظور شما «"نتیجه"» است؟
Context: ...موں ناپاک ناچتی ناکام نایاب نبٹنا نتائج نتیجہ نتیجے نراشا نرسنگ نزدیک نشانہ نشانی نشا...
(ReplaceLettersInSameLangs)
[whitespace] ~1392-~1392: آیا منظور شما «"نشانه"» است؟
Context: ...ٹنا نتائج نتیجہ نتیجے نراشا نرسنگ نزدیک نشانہ نشانی نشانے نصیحت نظریں نظریہ نقصان نما...
(ReplaceLettersInSameLangs)
[whitespace] ~1397-~1397: آیا منظور شما «"نظریه"» است؟
Context: ...سنگ نزدیک نشانہ نشانی نشانے نصیحت نظریں نظریہ نقصان نمائش نمبرز نمونہ نمونے نمٹنے نوا...
(ReplaceLettersInSameLangs)
[whitespace] ~1401-~1401: آیا منظور شما «"نمونه"» است؟
Context: ...انے نصیحت نظریں نظریہ نقصان نمائش نمبرز نمونہ نمونے نمٹنے نوازی نوشتہ نوعیت نومبر نوک...
(ReplaceLettersInSameLangs)
[whitespace] ~1405-~1405: آیا منظور شما «"نوشته"» است؟
Context: ...صان نمائش نمبرز نمونہ نمونے نمٹنے نوازی نوشتہ نوعیت نومبر نوکری نکالا نکالو نکالی نکا...
(ReplaceLettersInSameLangs)
[whitespace] ~1420-~1420: آیا منظور شما «"نهایت"» است؟
Context: ...لتا نکلتے نکلنا نکلنے نکلیں نگاری نگلنا نہایت نیشنل نیوٹن نیٹلی نیکدل نےٹلی وائرس وائ...
(ReplaceLettersInSameLangs)
[whitespace] ~1431-~1431: آیا منظور شما «"واقعه"» است؟
Context: ...کدل نےٹلی وائرس وائٹل وائیٹ وارنٹ واریر واقعہ واقعی واقعے والدہ والوں والکر والیس واپ...
(ReplaceLettersInSameLangs)
[whitespace] ~1434-~1434: آیا منظور شما «"والده"» است؟
Context: ...ئٹل وائیٹ وارنٹ واریر واقعہ واقعی واقعے والدہ والوں والکر والیس واپسی وبالا وراست ورا...
(ReplaceLettersInSameLangs)
[whitespace] ~1441-~1441: آیا منظور شما «"ورانه"» است؟
Context: ...لدہ والوں والکر والیس واپسی وبالا وراست ورانہ ورکنگ وزٹرز وسائل وصولی وضاحت وعدوں وغی...
(ReplaceLettersInSameLangs)
[whitespace] ~1448-~1448: آیا منظور شما «"وغیره"» است؟
Context: ...انہ ورکنگ وزٹرز وسائل وصولی وضاحت وعدوں وغیرہ وفاقی وففوہ وقتوں وقوعہ ولینٹ ونڈوز وکل...
(ReplaceLettersInSameLangs)
[whitespace] ~1450-~1450: آیا منظور شما «"وففوه"» است؟
Context: ...ٹرز وسائل وصولی وضاحت وعدوں وغیرہ وفاقی وففوہ وقتوں وقوعہ ولینٹ ونڈوز وکلاء ویران ویش...
(ReplaceLettersInSameLangs)
[whitespace] ~1452-~1452: آیا منظور شما «"وقوعه"» است؟
Context: ...ولی وضاحت وعدوں وغیرہ وفاقی وففوہ وقتوں وقوعہ ولینٹ ونڈوز وکلاء ویران ویشیا ویچلن ویڈ...
(ReplaceLettersInSameLangs)
[whitespace] ~1487-~1487: آیا منظور شما «"ٹهنڈا"» است؟
Context: ...بیس ٹونگا ٹوٹتا ٹوکری ٹوکیو ٹویٹر ٹپکاو ٹھنڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہ...
(ReplaceLettersInSameLangs)
[whitespace] ~1488-~1488: آیا منظور شما «"ٹهنڈی"» است؟
Context: ...نگا ٹوٹتا ٹوکری ٹوکیو ٹویٹر ٹپکاو ٹھنڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہل...
(ReplaceLettersInSameLangs)
[whitespace] ~1489-~1489: آیا منظور شما «"ٹهنڈے"» است؟
Context: ...ٹتا ٹوکری ٹوکیو ٹویٹر ٹپکاو ٹھنڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیم...
(ReplaceLettersInSameLangs)
[whitespace] ~1490-~1490: آیا منظور شما «"ٹهوڑی"» است؟
Context: ...کری ٹوکیو ٹویٹر ٹپکاو ٹھنڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیموں ٹین...
(ReplaceLettersInSameLangs)
[whitespace] ~1491-~1491: آیا منظور شما «"ٹهوکر"» است؟
Context: ...کیو ٹویٹر ٹپکاو ٹھنڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیموں ٹینڈر ٹیڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~1492-~1492: آیا منظور شما «"ٹهٹهه"» است؟
Context: ...یٹر ٹپکاو ٹھنڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیموں ٹینڈر ٹیڑھی ٹیک...
(ReplaceLettersInSameLangs)
[whitespace] ~1493-~1493: آیا منظور شما «"ٹههرو"» است؟
Context: ...کاو ٹھنڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیموں ٹینڈر ٹیڑھی ٹیکسی پاؤ...
(ReplaceLettersInSameLangs)
[whitespace] ~1494-~1494: آیا منظور شما «"ٹههرے"» است؟
Context: ...نڈا ٹھنڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیموں ٹینڈر ٹیڑھی ٹیکسی پاؤلو پاؤ...
(ReplaceLettersInSameLangs)
[whitespace] ~1495-~1495: آیا منظور شما «"ٹهلنے"» است؟
Context: ...نڈی ٹھنڈے ٹھوڑی ٹھوکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیموں ٹینڈر ٹیڑھی ٹیکسی پاؤلو پاؤنڈ پاؤ...
(ReplaceLettersInSameLangs)
[whitespace] ~1498-~1498: آیا منظور شما «"ٹیڑهی"» است؟
Context: ...وکر ٹھٹھہ ٹھہرو ٹھہرے ٹہلنے ٹیموں ٹینڈر ٹیڑھی ٹیکسی پاؤلو پاؤنڈ پاؤڈر پائلٹ پابند پات...
(ReplaceLettersInSameLangs)
[whitespace] ~1524-~1524: آیا منظور شما «"پرنده"» است؟
Context: ...امن پرامڈ پرانا پرانی پرانے پرجوش پرستی پرندہ پرندے پرواز پرواہ پریمی پستول پسندی پسی...
(ReplaceLettersInSameLangs)
[whitespace] ~1527-~1527: آیا منظور شما «"پرواه"» است؟
Context: ...انی پرانے پرجوش پرستی پرندہ پرندے پرواز پرواہ پریمی پستول پسندی پسینہ پسینے پشاور پلا...
(ReplaceLettersInSameLangs)
[whitespace] ~1531-~1531: آیا منظور شما «"پسینه"» است؟
Context: ...ندہ پرندے پرواز پرواہ پریمی پستول پسندی پسینہ پسینے پشاور پلانٹ پلندے پناہی پنجرا پنج...
(ReplaceLettersInSameLangs)
[whitespace] ~1536-~1536: آیا منظور شما «"پناهی"» است؟
Context: ...تول پسندی پسینہ پسینے پشاور پلانٹ پلندے پناہی پنجرا پنجری پنجرے پندرہ پنکھے پوجھو پور...
(ReplaceLettersInSameLangs)
[whitespace] ~1540-~1540: آیا منظور شما «"پندره"» است؟
Context: ...اور پلانٹ پلندے پناہی پنجرا پنجری پنجرے پندرہ پنکھے پوجھو پورٹل پورٹو پوسٹر پولیس پوچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1541-~1541: آیا منظور شما «"پنکهے"» است؟
Context: ...انٹ پلندے پناہی پنجرا پنجری پنجرے پندرہ پنکھے پوجھو پورٹل پورٹو پوسٹر پولیس پوچھا پوچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1542-~1542: آیا منظور شما «"پوجهو"» است؟
Context: ...ندے پناہی پنجرا پنجری پنجرے پندرہ پنکھے پوجھو پورٹل پورٹو پوسٹر پولیس پوچھا پوچھو پوچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1547-~1547: آیا منظور شما «"پوچها"» است؟
Context: ...درہ پنکھے پوجھو پورٹل پورٹو پوسٹر پولیس پوچھا پوچھو پوچھے پٹاخہ پٹانگ پٹھوں پٹیشن پچا...
(ReplaceLettersInSameLangs)
[whitespace] ~1548-~1548: آیا منظور شما «"پوچهو"» است؟
Context: ...کھے پوجھو پورٹل پورٹو پوسٹر پولیس پوچھا پوچھو پوچھے پٹاخہ پٹانگ پٹھوں پٹیشن پچارا پچا...
(ReplaceLettersInSameLangs)
[whitespace] ~1549-~1549: آیا منظور شما «"پوچهے"» است؟
Context: ...جھو پورٹل پورٹو پوسٹر پولیس پوچھا پوچھو پوچھے پٹاخہ پٹانگ پٹھوں پٹیشن پچارا پچاسی پچھ...
(ReplaceLettersInSameLangs)
[whitespace] ~1550-~1550: آیا منظور شما «"پٹاخه"» است؟
Context: ...رٹل پورٹو پوسٹر پولیس پوچھا پوچھو پوچھے پٹاخہ پٹانگ پٹھوں پٹیشن پچارا پچاسی پچھلا پچھ...
(ReplaceLettersInSameLangs)
[whitespace] ~1552-~1552: آیا منظور شما «"پٹهوں"» است؟
Context: ...سٹر پولیس پوچھا پوچھو پوچھے پٹاخہ پٹانگ پٹھوں پٹیشن پچارا پچاسی پچھلا پچھلی پچھلے پڑت...
(ReplaceLettersInSameLangs)
[whitespace] ~1556-~1556: آیا منظور شما «"پچهلا"» است؟
Context: ...چھے پٹاخہ پٹانگ پٹھوں پٹیشن پچارا پچاسی پچھلا پچھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھ...
(ReplaceLettersInSameLangs)
[whitespace] ~1557-~1557: آیا منظور شما «"پچهلی"» است؟
Context: ...اخہ پٹانگ پٹھوں پٹیشن پچارا پچاسی پچھلا پچھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھنا پڑھ...
(ReplaceLettersInSameLangs)
[whitespace] ~1558-~1558: آیا منظور شما «"پچهلے"» است؟
Context: ...انگ پٹھوں پٹیشن پچارا پچاسی پچھلا پچھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھنا پڑھنے پکا...
(ReplaceLettersInSameLangs)
[whitespace] ~1560-~1560: آیا منظور شما «"پڑهتا"» است؟
Context: ...یشن پچارا پچاسی پچھلا پچھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھنا پڑھنے پکارا پکارے پکا...
(ReplaceLettersInSameLangs)
[whitespace] ~1561-~1561: آیا منظور شما «"پڑهتی"» است؟
Context: ...ارا پچاسی پچھلا پچھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھنا پڑھنے پکارا پکارے پکانا پکا...
(ReplaceLettersInSameLangs)
[whitespace] ~1562-~1562: آیا منظور شما «"پڑهتے"» است؟
Context: ...اسی پچھلا پچھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھنا پڑھنے پکارا پکارے پکانا پکانے پکا...
(ReplaceLettersInSameLangs)
[whitespace] ~1563-~1563: آیا منظور شما «"پڑهنا"» است؟
Context: ...ھلا پچھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھنا پڑھنے پکارا پکارے پکانا پکانے پکاکر پکا...
(ReplaceLettersInSameLangs)
[whitespace] ~1564-~1564: آیا منظور شما «"پڑهنے"» است؟
Context: ...ھلی پچھلے پڑتال پڑھتا پڑھتی پڑھتے پڑھنا پڑھنے پکارا پکارے پکانا پکانے پکاکر پکایا پکڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~1574-~1574: آیا منظور شما «"پگهلا"» است؟
Context: ...انا پکانے پکاکر پکایا پکڑنا پکڑنے پکڑوں پگھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1575-~1575: آیا منظور شما «"پهاٹک"» است؟
Context: ...انے پکاکر پکایا پکڑنا پکڑنے پکڑوں پگھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1576-~1576: آیا منظور شما «"پهرنے"» است؟
Context: ...اکر پکایا پکڑنا پکڑنے پکڑوں پگھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1577-~1577: آیا منظور شما «"پهریں"» است؟
Context: ...ایا پکڑنا پکڑنے پکڑوں پگھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1578-~1578: آیا منظور شما «"پهنسا"» است؟
Context: ...ڑنا پکڑنے پکڑوں پگھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہا...
(ReplaceLettersInSameLangs)
[whitespace] ~1579-~1579: آیا منظور شما «"پهنسے"» است؟
Context: ...ڑنے پکڑوں پگھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہن...
(ReplaceLettersInSameLangs)
[whitespace] ~1580-~1580: آیا منظور شما «"پهوڑا"» است؟
Context: ...ڑوں پگھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہن...
(ReplaceLettersInSameLangs)
[whitespace] ~1581-~1581: آیا منظور شما «"پهیری"» است؟
Context: ...ھلا پھاٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہن...
(ReplaceLettersInSameLangs)
[whitespace] ~1582-~1582: آیا منظور شما «"پهیلا"» است؟
Context: ...اٹک پھرنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہن...
(ReplaceLettersInSameLangs)
[whitespace] ~1583-~1583: آیا منظور شما «"پهیلی"» است؟
Context: ...رنے پھریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہن...
(ReplaceLettersInSameLangs)
[whitespace] ~1584-~1584: آیا منظور شما «"پهینک"» است؟
Context: ...ریں پھنسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1585-~1585: آیا منظور شما «"پهاڑی"» است؟
Context: ...نسا پھنسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہی...
(ReplaceLettersInSameLangs)
[whitespace] ~1586-~1586: آیا منظور شما «"پهنتے"» است؟
Context: ...نسے پھوڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہی...
(ReplaceLettersInSameLangs)
[whitespace] ~1587-~1587: آیا منظور شما «"پهننے"» است؟
Context: ...وڑا پھیری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہیوں پیئ...
(ReplaceLettersInSameLangs)
[whitespace] ~1588-~1588: آیا منظور شما «"پهنچا"» است؟
Context: ...یری پھیلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہیوں پیئرس پیا...
(ReplaceLettersInSameLangs)
[whitespace] ~1589-~1589: آیا منظور شما «"پهنچے"» است؟
Context: ...یلا پھیلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہیوں پیئرس پیارا پیا...
(ReplaceLettersInSameLangs)
[whitespace] ~1590-~1590: آیا منظور شما «"پهنیں"» است؟
Context: ...یلی پھینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہیوں پیئرس پیارا پیاری پیا...
(ReplaceLettersInSameLangs)
[whitespace] ~1591-~1591: آیا منظور شما «"پهچان"» است؟
Context: ...ینک پہاڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہیوں پیئرس پیارا پیاری پیارے پیا...
(ReplaceLettersInSameLangs)
[whitespace] ~1592-~1592: آیا منظور شما «"پهیلی"» است؟
Context: ...اڑی پہنتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہیوں پیئرس پیارا پیاری پیارے پیاسا پیا...
(ReplaceLettersInSameLangs)
[whitespace] ~1593-~1593: آیا منظور شما «"پهیوں"» است؟
Context: ...نتے پہننے پہنچا پہنچے پہنیں پہچان پہیلی پہیوں پیئرس پیارا پیاری پیارے پیاسا پیانو پید...
(ReplaceLettersInSameLangs)
[whitespace] ~1616-~1616: آیا منظور شما «"پیچها"» است؟
Context: ...نسل پینشن پیوست پیٹرن پیٹرک پیٹیو پیپلز پیچھا پیچھے پیڑوں چارجر چالاک چالوں چالیس چان...
(ReplaceLettersInSameLangs)
[whitespace] ~1617-~1617: آیا منظور شما «"پیچهے"» است؟
Context: ...نشن پیوست پیٹرن پیٹرک پیٹیو پیپلز پیچھا پیچھے پیڑوں چارجر چالاک چالوں چالیس چاندی چاو...
(ReplaceLettersInSameLangs)
[whitespace] ~1625-~1625: آیا منظور شما «"چاهئے"» است؟
Context: ...ڑوں چارجر چالاک چالوں چالیس چاندی چاوڈر چاہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہ...
(ReplaceLettersInSameLangs)
[whitespace] ~1626-~1626: آیا منظور شما «"چاهتا"» است؟
Context: ...رجر چالاک چالوں چالیس چاندی چاوڈر چاہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہیے چجر...
(ReplaceLettersInSameLangs)
[whitespace] ~1627-~1627: آیا منظور شما «"چاهتی"» است؟
Context: ...لاک چالوں چالیس چاندی چاوڈر چاہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہیے چجرسی چرا...
(ReplaceLettersInSameLangs)
[whitespace] ~1628-~1628: آیا منظور شما «"چاهتے"» است؟
Context: ...لوں چالیس چاندی چاوڈر چاہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہیے چجرسی چرایا چرو...
(ReplaceLettersInSameLangs)
[whitespace] ~1629-~1629: آیا منظور شما «"چاهنے"» است؟
Context: ...لیس چاندی چاوڈر چاہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہیے چجرسی چرایا چروکی چرھ...
(ReplaceLettersInSameLangs)
[whitespace] ~1630-~1630: آیا منظور شما «"چاهوں"» است؟
Context: ...ندی چاوڈر چاہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہیے چجرسی چرایا چروکی چرھتا چلا...
(ReplaceLettersInSameLangs)
[whitespace] ~1631-~1631: آیا منظور شما «"چاهیں"» است؟
Context: ...وڈر چاہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہیے چجرسی چرایا چروکی چرھتا چلاؤں چلا...
(ReplaceLettersInSameLangs)
[whitespace] ~1632-~1632: آیا منظور شما «"چاهیے"» است؟
Context: ...ہئے چاہتا چاہتی چاہتے چاہنے چاہوں چاہیں چاہیے چجرسی چرایا چروکی چرھتا چلاؤں چلائی چلا...
(ReplaceLettersInSameLangs)
[whitespace] ~1636-~1636: آیا منظور شما «"چرهتا"» است؟
Context: ...ہنے چاہوں چاہیں چاہیے چجرسی چرایا چروکی چرھتا چلاؤں چلائی چلائے چلاتا چلاتی چلاتے چلا...
(ReplaceLettersInSameLangs)
[whitespace] ~1649-~1649: آیا منظور شما «"چوتها"» است؟
Context: ...اتے چلانا چلانے چلاوں چلایا چمکیں چوبیس چوتھا چوتھی چوتھے چوروں چولہا چومنے چونکا چون...
(ReplaceLettersInSameLangs)
[whitespace] ~1650-~1650: آیا منظور شما «"چوتهی"» است؟
Context: ...انا چلانے چلاوں چلایا چمکیں چوبیس چوتھا چوتھی چوتھے چوروں چولہا چومنے چونکا چونکہ چوٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~1651-~1651: آیا منظور شما «"چوتهے"» است؟
Context: ...انے چلاوں چلایا چمکیں چوبیس چوتھا چوتھی چوتھے چوروں چولہا چومنے چونکا چونکہ چوٹوں چوڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~1653-~1653: آیا منظور شما «"چولها"» است؟
Context: ...ایا چمکیں چوبیس چوتھا چوتھی چوتھے چوروں چولہا چومنے چونکا چونکہ چوٹوں چوڑیل چوہوں چڑھ...
(ReplaceLettersInSameLangs)
[whitespace] ~1656-~1656: آیا منظور شما «"چونکه"» است؟
Context: ...تھا چوتھی چوتھے چوروں چولہا چومنے چونکا چونکہ چوٹوں چوڑیل چوہوں چڑھنا چڑھنے چڑھیں چکا...
(ReplaceLettersInSameLangs)
[whitespace] ~1659-~1659: آیا منظور شما «"چوهوں"» است؟
Context: ...روں چولہا چومنے چونکا چونکہ چوٹوں چوڑیل چوہوں چڑھنا چڑھنے چڑھیں چکانی چکاگو چکایا چھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1660-~1660: آیا منظور شما «"چڑهنا"» است؟
Context: ...لہا چومنے چونکا چونکہ چوٹوں چوڑیل چوہوں چڑھنا چڑھنے چڑھیں چکانی چکاگو چکایا چھاتی چھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1661-~1661: آیا منظور شما «"چڑهنے"» است؟
Context: ...منے چونکا چونکہ چوٹوں چوڑیل چوہوں چڑھنا چڑھنے چڑھیں چکانی چکاگو چکایا چھاتی چھاپا چھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1662-~1662: آیا منظور شما «"چڑهیں"» است؟
Context: ...نکا چونکہ چوٹوں چوڑیل چوہوں چڑھنا چڑھنے چڑھیں چکانی چکاگو چکایا چھاتی چھاپا چھاپہ چھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1666-~1666: آیا منظور شما «"چهاتی"» است؟
Context: ...ہوں چڑھنا چڑھنے چڑھیں چکانی چکاگو چکایا چھاتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1667-~1667: آیا منظور شما «"چهاپا"» است؟
Context: ...ھنا چڑھنے چڑھیں چکانی چکاگو چکایا چھاتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1668-~1668: آیا منظور شما «"چهاپه"» است؟
Context: ...ھنے چڑھیں چکانی چکاگو چکایا چھاتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1669-~1669: آیا منظور شما «"چهاپے"» است؟
Context: ...ھیں چکانی چکاگو چکایا چھاتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1670-~1670: آیا منظور شما «"چهتری"» است؟
Context: ...انی چکاگو چکایا چھاتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1671-~1671: آیا منظور شما «"چهتوں"» است؟
Context: ...اگو چکایا چھاتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1672-~1672: آیا منظور شما «"چهدرت"» است؟
Context: ...ایا چھاتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1673-~1673: آیا منظور شما «"چهوئے"» است؟
Context: ...اتی چھاپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1674-~1674: آیا منظور شما «"چهوری"» است؟
Context: ...اپا چھاپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1675-~1675: آیا منظور شما «"چهونا"» است؟
Context: ...اپہ چھاپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1676-~1676: آیا منظور شما «"چهونے"» است؟
Context: ...اپے چھتری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپ...
(ReplaceLettersInSameLangs)
[whitespace] ~1677-~1677: آیا منظور شما «"چهوٹا"» است؟
Context: ...تری چھتوں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1678-~1678: آیا منظور شما «"چهوٹی"» است؟
Context: ...توں چھدرت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہر...
(ReplaceLettersInSameLangs)
[whitespace] ~1679-~1679: آیا منظور شما «"چهوٹے"» است؟
Context: ...درت چھوئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہروں چیئ...
(ReplaceLettersInSameLangs)
[whitespace] ~1680-~1680: آیا منظور شما «"چهوڑا"» است؟
Context: ...وئے چھوری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہروں چیئرز چیخ...
(ReplaceLettersInSameLangs)
[whitespace] ~1681-~1681: آیا منظور شما «"چهوڑو"» است؟
Context: ...وری چھونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہروں چیئرز چیخنا چیخ...
(ReplaceLettersInSameLangs)
[whitespace] ~1682-~1682: آیا منظور شما «"چهوڑے"» است؟
Context: ...ونا چھونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہروں چیئرز چیخنا چیخنے چیز...
(ReplaceLettersInSameLangs)
[whitespace] ~1683-~1683: آیا منظور شما «"چهپنے"» است؟
Context: ...ونے چھوٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہروں چیئرز چیخنا چیخنے چیزوں چیز...
(ReplaceLettersInSameLangs)
[whitespace] ~1684-~1684: آیا منظور شما «"چهینک"» است؟
Context: ...وٹا چھوٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہروں چیئرز چیخنا چیخنے چیزوں چیزیں چیل...
(ReplaceLettersInSameLangs)
[whitespace] ~1685-~1685: آیا منظور شما «"چهروں"» است؟
Context: ...وٹی چھوٹے چھوڑا چھوڑو چھوڑے چھپنے چھینک چہروں چیئرز چیخنا چیخنے چیزوں چیزیں چیلنج چیم...
(ReplaceLettersInSameLangs)
[whitespace] ~1705-~1705: آیا منظور شما «"ڈرامه"» است؟
Context: ...لنا ڈالنے ڈالوں ڈالیں ڈامنو ڈاکٹر ڈبلیو ڈرامہ ڈرامے ڈرانا ڈرانے ڈرپوک ڈریگن ڈسپلے ڈمپ...
(ReplaceLettersInSameLangs)
[whitespace] ~1717-~1717: آیا منظور شما «"ڈهادو"» است؟
Context: ...یگن ڈسپلے ڈمپنگ ڈنڈوں ڈوئچے ڈویژن ڈکارڈ ڈھادو ڈھونڈ ڈھکنا ڈھکنے ڈھیلے ڈیاگو ڈیلٹا ڈیم...
(ReplaceLettersInSameLangs)
[whitespace] ~1718-~1718: آیا منظور شما «"ڈهونڈ"» است؟
Context: ...پلے ڈمپنگ ڈنڈوں ڈوئچے ڈویژن ڈکارڈ ڈھادو ڈھونڈ ڈھکنا ڈھکنے ڈھیلے ڈیاگو ڈیلٹا ڈیمین ڈین...
(ReplaceLettersInSameLangs)
[whitespace] ~1719-~1719: آیا منظور شما «"ڈهکنا"» است؟
Context: ...پنگ ڈنڈوں ڈوئچے ڈویژن ڈکارڈ ڈھادو ڈھونڈ ڈھکنا ڈھکنے ڈھیلے ڈیاگو ڈیلٹا ڈیمین ڈینیل ڈیو...
(ReplaceLettersInSameLangs)
[whitespace] ~1720-~1720: آیا منظور شما «"ڈهکنے"» است؟
Context: ...ڈوں ڈوئچے ڈویژن ڈکارڈ ڈھادو ڈھونڈ ڈھکنا ڈھکنے ڈھیلے ڈیاگو ڈیلٹا ڈیمین ڈینیل ڈیوٹی ڈیٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~1721-~1721: آیا منظور شما «"ڈهیلے"» است؟
Context: ...ئچے ڈویژن ڈکارڈ ڈھادو ڈھونڈ ڈھکنا ڈھکنے ڈھیلے ڈیاگو ڈیلٹا ڈیمین ڈینیل ڈیوٹی ڈیٹنگ کار...
(ReplaceLettersInSameLangs)
[whitespace] ~1743-~1743: آیا منظور شما «"کاپته"» است؟
Context: ...لنگ کاموں کانوں کانٹا کانٹے کاٹنے کاٹیج کاپتہ کاپٹر کراؤں کرائی کراتی کرافٹ کرانے کرا...
(ReplaceLettersInSameLangs)
[whitespace] ~1752-~1752: آیا منظور شما «"کرایه"» است؟
Context: ...اؤں کرائی کراتی کرافٹ کرانے کراچی کرایا کرایہ کردار کردوں کردیا کردیں کررہا کررہی کرر...
(ReplaceLettersInSameLangs)
[whitespace] ~1757-~1757: آیا منظور شما «"کررها"» است؟
Context: ...اچی کرایا کرایہ کردار کردوں کردیا کردیں کررہا کررہی کررہے کرسمس کرسٹن کرسکو کرفیو کرل...
(ReplaceLettersInSameLangs)
[whitespace] ~1758-~1758: آیا منظور شما «"کررهی"» است؟
Context: ...ایا کرایہ کردار کردوں کردیا کردیں کررہا کررہی کررہے کرسمس کرسٹن کرسکو کرفیو کرلوں کرل...
(ReplaceLettersInSameLangs)
[whitespace] ~1759-~1759: آیا منظور شما «"کررهے"» است؟
Context: ...ایہ کردار کردوں کردیا کردیں کررہا کررہی کررہے کرسمس کرسٹن کرسکو کرفیو کرلوں کرلیا کرم...
(ReplaceLettersInSameLangs)
[whitespace] ~1778-~1778: آیا منظور شما «"کفاره"» است؟
Context: ...وگی کروگے کرکرا کریڈٹ کریگا کشائی کشمیر کفارہ کلارک کلاسک کلوزڈ کلپنا کلیدی کماتا کما...
(ReplaceLettersInSameLangs)
[whitespace] ~1794-~1794: آیا منظور شما «"کمینه"» است؟
Context: ...انڈ کمانے کمایا کمزور کمشنر کمپنی کمیشن کمینہ کمینی کمینے کمیٹی کنارہ کنارے کندھے کنو...
(ReplaceLettersInSameLangs)
[whitespace] ~1798-~1798: آیا منظور شما «"کناره"» است؟
Context: ...شنر کمپنی کمیشن کمینہ کمینی کمینے کمیٹی کنارہ کنارے کندھے کنوؤں کنورٹ کنویں کنکشن کوئ...
(ReplaceLettersInSameLangs)
[whitespace] ~1800-~1800: آیا منظور شما «"کندهے"» است؟
Context: ...یشن کمینہ کمینی کمینے کمیٹی کنارہ کنارے کندھے کنوؤں کنورٹ کنویں کنکشن کوئنز کوائف کوب...
(ReplaceLettersInSameLangs)
[whitespace] ~1807-~1807: آیا منظور شما «"کوبهی"» است؟
Context: ...دھے کنوؤں کنورٹ کنویں کنکشن کوئنز کوائف کوبھی کودنے کوشاں کونسا کونسل کونسی کونسے کون...
(ReplaceLettersInSameLangs)
[whitespace] ~1817-~1817: آیا منظور شما «"کوڑهی"» است؟
Context: ...نسا کونسل کونسی کونسے کونور کونوں کووئی کوڑھی کوژیہ کویتی کٹھور کٹہرے کپتان کپڑوں کھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1818-~1818: آیا منظور شما «"کوژیه"» است؟
Context: ...نسل کونسی کونسے کونور کونوں کووئی کوڑھی کوژیہ کویتی کٹھور کٹہرے کپتان کپڑوں کھائی کھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1820-~1820: آیا منظور شما «"کٹهور"» است؟
Context: ...نسے کونور کونوں کووئی کوڑھی کوژیہ کویتی کٹھور کٹہرے کپتان کپڑوں کھائی کھابہ کھاتا کھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1821-~1821: آیا منظور شما «"کٹهرے"» است؟
Context: ...نور کونوں کووئی کوڑھی کوژیہ کویتی کٹھور کٹہرے کپتان کپڑوں کھائی کھابہ کھاتا کھاتی کھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1824-~1824: آیا منظور شما «"کهائی"» است؟
Context: ...ڑھی کوژیہ کویتی کٹھور کٹہرے کپتان کپڑوں کھائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھا...
(ReplaceLettersInSameLangs)
[whitespace] ~1825-~1825: آیا منظور شما «"کهابه"» است؟
Context: ...ژیہ کویتی کٹھور کٹہرے کپتان کپڑوں کھائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھر...
(ReplaceLettersInSameLangs)
[whitespace] ~1826-~1826: آیا منظور شما «"کهاتا"» است؟
Context: ...یتی کٹھور کٹہرے کپتان کپڑوں کھائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھس...
(ReplaceLettersInSameLangs)
[whitespace] ~1827-~1827: آیا منظور شما «"کهاتی"» است؟
Context: ...ھور کٹہرے کپتان کپڑوں کھائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھل...
(ReplaceLettersInSameLangs)
[whitespace] ~1828-~1828: آیا منظور شما «"کهاتے"» است؟
Context: ...ہرے کپتان کپڑوں کھائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھل...
(ReplaceLettersInSameLangs)
[whitespace] ~1829-~1829: آیا منظور شما «"کهانا"» است؟
Context: ...تان کپڑوں کھائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھم...
(ReplaceLettersInSameLangs)
[whitespace] ~1830-~1830: آیا منظور شما «"کهانے"» است؟
Context: ...ڑوں کھائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1831-~1831: آیا منظور شما «"کهایا"» است؟
Context: ...ائی کھابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1832-~1832: آیا منظور شما «"کهروں"» است؟
Context: ...ابہ کھاتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1833-~1833: آیا منظور شما «"کهسکی"» است؟
Context: ...اتا کھاتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1834-~1834: آیا منظور شما «"کهلتا"» است؟
Context: ...اتی کھاتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1835-~1835: آیا منظور شما «"کهلنے"» است؟
Context: ...اتے کھانا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھونا کھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1836-~1836: آیا منظور شما «"کهمبے"» است؟
Context: ...انا کھانے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھونا کھونے کھچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1837-~1837: آیا منظور شما «"کهودو"» است؟
Context: ...انے کھایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑ...
(ReplaceLettersInSameLangs)
[whitespace] ~1838-~1838: آیا منظور شما «"کهولا"» است؟
Context: ...ایا کھروں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1839-~1839: آیا منظور شما «"کهولو"» است؟
Context: ...روں کھسکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1840-~1840: آیا منظور شما «"کهولے"» است؟
Context: ...سکی کھلتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھی...
(ReplaceLettersInSameLangs)
[whitespace] ~1841-~1841: آیا منظور شما «"کهونا"» است؟
Context: ...لتا کھلنے کھمبے کھودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہا...
(ReplaceLettersInSameLangs)
[whitespace] ~1842-~1842: آیا منظور شما «"کهونے"» است؟
Context: ...لنے کھمبے کھودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہا...
(ReplaceLettersInSameLangs)
[whitespace] ~1843-~1843: آیا منظور شما «"کهچڑی"» است؟
Context: ...مبے کھودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہا...
(ReplaceLettersInSameLangs)
[whitespace] ~1844-~1844: آیا منظور شما «"کهڑکی"» است؟
Context: ...ودو کھولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہاہے کیب...
(ReplaceLettersInSameLangs)
[whitespace] ~1845-~1845: آیا منظور شما «"کهیتی"» است؟
Context: ...ولا کھولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہاہے کیبنٹ کیج...
(ReplaceLettersInSameLangs)
[whitespace] ~1846-~1846: آیا منظور شما «"کهیلو"» است؟
Context: ...ولو کھولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہاہے کیبنٹ کیجئے کیج...
(ReplaceLettersInSameLangs)
[whitespace] ~1847-~1847: آیا منظور شما «"کهینچ"» است؟
Context: ...ولے کھونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہاہے کیبنٹ کیجئے کیجیے کیط...
(ReplaceLettersInSameLangs)
[whitespace] ~1848-~1848: آیا منظور شما «"کهانی"» است؟
Context: ...ونا کھونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہاہے کیبنٹ کیجئے کیجیے کیطرف کیل...
(ReplaceLettersInSameLangs)
[whitespace] ~1849-~1849: آیا منظور شما «"کهاوت"» است؟
Context: ...ونے کھچڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہاہے کیبنٹ کیجئے کیجیے کیطرف کیلئے کیل...
(ReplaceLettersInSameLangs)
[whitespace] ~1850-~1850: آیا منظور شما «"کهاهے"» است؟
Context: ...چڑی کھڑکی کھیتی کھیلو کھینچ کہانی کہاوت کہاہے کیبنٹ کیجئے کیجیے کیطرف کیلئے کیلبر کیل...
(ReplaceLettersInSameLangs)
[whitespace] ~1860-~1860: آیا منظور شما «"کیمره"» است؟
Context: ...جیے کیطرف کیلئے کیلبر کیلون کیمبل کیمرا کیمرہ کیمرے کیمپس کیمڈن کینچی کینڈی کیٹیا کیپ...
(ReplaceLettersInSameLangs)
[whitespace] ~1872-~1872: آیا منظور شما «"گابها"» است؟
Context: ...نڈی کیٹیا کیپلر کیپٹل کیپٹن کےلئے گائیڈ گابھا گارڈز گانٹھ گاہوں گراتے گرافر گرانے گرد...
(ReplaceLettersInSameLangs)
[whitespace] ~1874-~1874: آیا منظور شما «"گانٹه"» است؟
Context: ...پلر کیپٹل کیپٹن کےلئے گائیڈ گابھا گارڈز گانٹھ گاہوں گراتے گرافر گرانے گردوں گرنٹس گرو...
(ReplaceLettersInSameLangs)
[whitespace] ~1875-~1875: آیا منظور شما «"گاهوں"» است؟
Context: ...پٹل کیپٹن کےلئے گائیڈ گابھا گارڈز گانٹھ گاہوں گراتے گرافر گرانے گردوں گرنٹس گروہی گرہ...
(ReplaceLettersInSameLangs)
[whitespace] ~1881-~1881: آیا منظور شما «"گروهی"» است؟
Context: ...نٹھ گاہوں گراتے گرافر گرانے گردوں گرنٹس گروہی گرہیں گرینس گرینڈ گزارا گزارو گزارے گزر...
(ReplaceLettersInSameLangs)
[whitespace] ~1882-~1882: آیا منظور شما «"گرهیں"» است؟
Context: ...ہوں گراتے گرافر گرانے گردوں گرنٹس گروہی گرہیں گرینس گرینڈ گزارا گزارو گزارے گزرتا گزر...
(ReplaceLettersInSameLangs)
[whitespace] ~1891-~1891: آیا منظور شما «"گزشته"» است؟
Context: ...ینڈ گزارا گزارو گزارے گزرتا گزرتے گزرنا گزشتہ گفتگو گلابی گلبرٹ گلرمو گلمور گلیوں گمر...
(ReplaceLettersInSameLangs)
[whitespace] ~1898-~1898: آیا منظور شما «"گمراه"» است؟
Context: ...شتہ گفتگو گلابی گلبرٹ گلرمو گلمور گلیوں گمراہ گمشدہ گمنام گندگی گنڈوں گنگنا گواہی گود...
(ReplaceLettersInSameLangs)
[whitespace] ~1899-~1899: آیا منظور شما «"گمشده"» است؟
Context: ...تگو گلابی گلبرٹ گلرمو گلمور گلیوں گمراہ گمشدہ گمنام گندگی گنڈوں گنگنا گواہی گودام گور...
(ReplaceLettersInSameLangs)
[whitespace] ~1904-~1904: آیا منظور شما «"گواهی"» است؟
Context: ...یوں گمراہ گمشدہ گمنام گندگی گنڈوں گنگنا گواہی گودام گورنر گوروں گورڈن گولسن گولڈن گون...
(ReplaceLettersInSameLangs)
[whitespace] ~1912-~1912: آیا منظور شما «"گهائل"» است؟
Context: ...دام گورنر گوروں گورڈن گولسن گولڈن گونگے گھائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھن...
(ReplaceLettersInSameLangs)
[whitespace] ~1913-~1913: آیا منظور شما «"گهبرا"» است؟
Context: ...رنر گوروں گورڈن گولسن گولڈن گونگے گھائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھن...
(ReplaceLettersInSameLangs)
[whitespace] ~1914-~1914: آیا منظور شما «"گهروں"» است؟
Context: ...روں گورڈن گولسن گولڈن گونگے گھائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھن...
(ReplaceLettersInSameLangs)
[whitespace] ~1915-~1915: آیا منظور شما «"گهسنا"» است؟
Context: ...رڈن گولسن گولڈن گونگے گھائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1916-~1916: آیا منظور شما «"گهسنے"» است؟
Context: ...لسن گولڈن گونگے گھائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1917-~1917: آیا منظور شما «"گهسیٹ"» است؟
Context: ...لڈن گونگے گھائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1918-~1918: آیا منظور شما «"گهلنے"» است؟
Context: ...نگے گھائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1919-~1919: آیا منظور شما «"گهنٹه"» است؟
Context: ...ائل گھبرا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1920-~1920: آیا منظور شما «"گهنٹی"» است؟
Context: ...برا گھروں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھو...
(ReplaceLettersInSameLangs)
[whitespace] ~1921-~1921: آیا منظور شما «"گهنٹے"» است؟
Context: ...روں گھسنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~1922-~1922: آیا منظور شما «"گهوسٹ"» است؟
Context: ...سنا گھسنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~1923-~1923: آیا منظور شما «"گهونٹ"» است؟
Context: ...سنے گھسیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹ...
(ReplaceLettersInSameLangs)
[whitespace] ~1924-~1924: آیا منظور شما «"گهونپ"» است؟
Context: ...سیٹ گھلنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیا...
(ReplaceLettersInSameLangs)
[whitespace] ~1925-~1925: آیا منظور شما «"گهوڑا"» است؟
Context: ...لنے گھنٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیر...
(ReplaceLettersInSameLangs)
[whitespace] ~1926-~1926: آیا منظور شما «"گهوڑی"» است؟
Context: ...نٹہ گھنٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاں...
(ReplaceLettersInSameLangs)
[whitespace] ~1927-~1927: آیا منظور شما «"گهوڑے"» است؟
Context: ...نٹی گھنٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمم...
(ReplaceLettersInSameLangs)
[whitespace] ~1928-~1928: آیا منظور شما «"گهٹتی"» است؟
Context: ...نٹے گھوسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیں...
(ReplaceLettersInSameLangs)
[whitespace] ~1929-~1929: آیا منظور شما «"گهٹنے"» است؟
Context: ...وسٹ گھونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہار...
(ReplaceLettersInSameLangs)
[whitespace] ~1930-~1930: آیا منظور شما «"گهٹیا"» است؟
Context: ...ونٹ گھونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہار...
(ReplaceLettersInSameLangs)
[whitespace] ~1931-~1931: آیا منظور شما «"گیاره"» است؟
Context: ...ونپ گھوڑا گھوڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاو...
(ReplaceLettersInSameLangs)
[whitespace] ~1933-~1933: آیا منظور شما «"هاںسی"» است؟
Context: ...وڑی گھوڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآ...
(ReplaceLettersInSameLangs)
[whitespace] ~1934-~1934: آیا منظور شما «"همممم"» است؟
Context: ...وڑے گھٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدا...
(ReplaceLettersInSameLangs)
[whitespace] ~1935-~1935: آیا منظور شما «"هیںچو"» است؟
Context: ...ٹتی گھٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفت...
(ReplaceLettersInSameLangs)
[whitespace] ~1936-~1936: آیا منظور شما «"هاربر"» است؟
Context: ...ٹنے گھٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلا...
(ReplaceLettersInSameLangs)
[whitespace] ~1937-~1937: آیا منظور شما «"هارنے"» است؟
Context: ...ٹیا گیارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلا...
(ReplaceLettersInSameLangs)
[whitespace] ~1938-~1938: آیا منظور شما «"هاورڈ"» است؟
Context: ...ارہ گیراج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہما...
(ReplaceLettersInSameLangs)
[whitespace] ~1939-~1939: آیا منظور شما «"هتکڑی"» است؟
Context: ...راج ھاںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہما...
(ReplaceLettersInSameLangs)
[whitespace] ~1940-~1940: آیا منظور شما «"هجآته"» است؟
Context: ...ںسی ھمممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہما...
(ReplaceLettersInSameLangs)
[whitespace] ~1941-~1941: آیا منظور شما «"هدایت"» است؟
Context: ...ممم ھیںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمد...
(ReplaceLettersInSameLangs)
[whitespace] ~1942-~1942: آیا منظور شما «"هفتوں"» است؟
Context: ...ںچو ہاربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمم...
(ReplaceLettersInSameLangs)
[whitespace] ~1943-~1943: آیا منظور شما «"هلاتا"» است؟
Context: ...ربر ہارنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہمو...
(ReplaceLettersInSameLangs)
[whitespace] ~1944-~1944: آیا منظور شما «"هلاکت"» است؟
Context: ...رنے ہاورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمی...
(ReplaceLettersInSameLangs)
[whitespace] ~1945-~1945: آیا منظور شما «"همارا"» است؟
Context: ...ورڈ ہتکڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنس...
(ReplaceLettersInSameLangs)
[whitespace] ~1946-~1946: آیا منظور شما «"هماری"» است؟
Context: ...کڑی ہجآتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنس...
(ReplaceLettersInSameLangs)
[whitespace] ~1947-~1947: آیا منظور شما «"همارے"» است؟
Context: ...آتہ ہدایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنس...
(ReplaceLettersInSameLangs)
[whitespace] ~1948-~1948: آیا منظور شما «"همدرد"» است؟
Context: ...ایت ہفتوں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہوا...
(ReplaceLettersInSameLangs)
[whitespace] ~1949-~1949: آیا منظور شما «"همممم"» است؟
Context: ...توں ہلاتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوا...
(ReplaceLettersInSameLangs)
[whitespace] ~1950-~1950: آیا منظور شما «"هموار"» است؟
Context: ...اتا ہلاکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوت...
(ReplaceLettersInSameLangs)
[whitespace] ~1951-~1951: آیا منظور شما «"همیشه"» است؟
Context: ...اکت ہمارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوج...
(ReplaceLettersInSameLangs)
[whitespace] ~1952-~1952: آیا منظور شما «"هنستے"» است؟
Context: ...ارا ہماری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوج...
(ReplaceLettersInSameLangs)
[whitespace] ~1953-~1953: آیا منظور شما «"هنسلی"» است؟
Context: ...اری ہمارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہور...
(ReplaceLettersInSameLangs)
[whitespace] ~1954-~1954: آیا منظور شما «"هنسنا"» است؟
Context: ...ارے ہمدرد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہور...
(ReplaceLettersInSameLangs)
[whitespace] ~1955-~1955: آیا منظور شما «"هواؤں"» است؟
Context: ...درد ہمممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوس...
(ReplaceLettersInSameLangs)
[whitespace] ~1956-~1956: آیا منظور شما «"هوائی"» است؟
Context: ...ممم ہموار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوس...
(ReplaceLettersInSameLangs)
[whitespace] ~1957-~1957: آیا منظور شما «"هوتیں"» است؟
Context: ...وار ہمیشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہون...
(ReplaceLettersInSameLangs)
[whitespace] ~1958-~1958: آیا منظور شما «"هوجاؤ"» است؟
Context: ...یشہ ہنستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہون...
(ReplaceLettersInSameLangs)
[whitespace] ~1959-~1959: آیا منظور شما «"هوجاو"» است؟
Context: ...ستے ہنسلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1960-~1960: آیا منظور شما «"هورها"» است؟
Context: ...سلی ہنسنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچ...
(ReplaceLettersInSameLangs)
[whitespace] ~1961-~1961: آیا منظور شما «"هورهی"» است؟
Context: ...سنا ہواؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگ...
(ReplaceLettersInSameLangs)
[whitespace] ~1962-~1962: آیا منظور شما «"هوسکا"» است؟
Context: ...اؤں ہوائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگ...
(ReplaceLettersInSameLangs)
[whitespace] ~1963-~1963: آیا منظور شما «"هوسکے"» است؟
Context: ...ائی ہوتیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگ...
(ReplaceLettersInSameLangs)
[whitespace] ~1964-~1964: آیا منظور شما «"هونگی"» است؟
Context: ...تیں ہوجاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوں...
(ReplaceLettersInSameLangs)
[whitespace] ~1965-~1965: آیا منظور شما «"هونگے"» است؟
Context: ...جاؤ ہوجاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹا...
(ReplaceLettersInSameLangs)
[whitespace] ~1966-~1966: آیا منظور شما «"هوچکا"» است؟
Context: ...جاو ہورہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹی...
(ReplaceLettersInSameLangs)
[whitespace] ~1967-~1967: آیا منظور شما «"هوچکے"» است؟
Context: ...رہا ہورہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈی...
(ReplaceLettersInSameLangs)
[whitespace] ~1968-~1968: آیا منظور شما «"هوگئی"» است؟
Context: ...رہی ہوسکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑت...
(ReplaceLettersInSameLangs)
[whitespace] ~1969-~1969: آیا منظور شما «"هوگئے"» است؟
Context: ...سکا ہوسکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںس...
(ReplaceLettersInSameLangs)
[whitespace] ~1970-~1970: آیا منظور شما «"هوگیا"» است؟
Context: ...سکے ہونگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہین...
(ReplaceLettersInSameLangs)
[whitespace] ~1971-~1971: آیا منظور شما «"هوںگے"» است؟
Context: ...نگی ہونگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہین...
(ReplaceLettersInSameLangs)
[whitespace] ~1972-~1972: آیا منظور شما «"هٹائی"» است؟
Context: ...نگے ہوچکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہین...
(ReplaceLettersInSameLangs)
[whitespace] ~1973-~1973: آیا منظور شما «"هٹیئے"» است؟
Context: ...چکا ہوچکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیو...
(ReplaceLettersInSameLangs)
[whitespace] ~1974-~1974: آیا منظور شما «"هڈیوں"» است؟
Context: ...چکے ہوگئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیو...
(ReplaceLettersInSameLangs)
[whitespace] ~1975-~1975: آیا منظور شما «"هڑتال"» است؟
Context: ...گئی ہوگئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیک...
(ReplaceLettersInSameLangs)
[whitespace] ~1976-~1976: آیا منظور شما «"هںسنا"» است؟
Context: ...گئے ہوگیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیک...
(ReplaceLettersInSameLangs)
[whitespace] ~1977-~1977: آیا منظور شما «"هینری"» است؟
Context: ...گیا ہوںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیک...
(ReplaceLettersInSameLangs)
[whitespace] ~1978-~1978: آیا منظور شما «"هینڈل"» است؟
Context: ...ںگے ہٹائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یات...
(ReplaceLettersInSameLangs)
[whitespace] ~1979-~1979: آیا منظور شما «"هینگر"» است؟
Context: ...ائی ہٹیئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یاترہ یات...
(ReplaceLettersInSameLangs)
[whitespace] ~1980-~1980: آیا منظور شما «"هیومن"» است؟
Context: ...یئے ہڈیوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یاترہ یاتنا یاد...
(ReplaceLettersInSameLangs)
[whitespace] ~1981-~1981: آیا منظور شما «"هیوگو"» است؟
Context: ...یوں ہڑتال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یاترہ یاتنا یادوں یاف...
(ReplaceLettersInSameLangs)
[whitespace] ~1982-~1982: آیا منظور شما «"هیکرز"» است؟
Context: ...تال ہںسنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یاترہ یاتنا یادوں یافتہ یقی...
(ReplaceLettersInSameLangs)
[whitespace] ~1983-~1983: آیا منظور شما «"هیکنگ"» است؟
Context: ...سنا ہینری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یاترہ یاتنا یادوں یافتہ یقینا یقی...
(ReplaceLettersInSameLangs)
[whitespace] ~1984-~1984: آیا منظور شما «"هیکٹر"» است؟
Context: ...نری ہینڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یاترہ یاتنا یادوں یافتہ یقینا یقینی یلئ...
(ReplaceLettersInSameLangs)
[whitespace] ~1985-~1985: آیا منظور شما «"یاتره"» است؟
Context: ...نڈل ہینگر ہیومن ہیوگو ہیکرز ہیکنگ ہیکٹر یاترہ یاتنا یادوں یافتہ یقینا یقینی یلئڈی یلر...
(ReplaceLettersInSameLangs)
[whitespace] ~1988-~1988: آیا منظور شما «"یافته"» است؟
Context: ...وگو ہیکرز ہیکنگ ہیکٹر یاترہ یاتنا یادوں یافتہ یقینا یقینی یلئڈی یلرجی یوراج یورپی یون...
(ReplaceLettersInSameLangs)
[whitespace] ~1997-~1997: آیا منظور شما «"یهسان"» است؟
Context: ...ینی یلئڈی یلرجی یوراج یورپی یونین یووتی یہسان یہودی ییومن
(ReplaceLettersInSameLangs)
[whitespace] ~1998-~1998: آیا منظور شما «"یهودی"» است؟
Context: ...ئڈی یلرجی یوراج یورپی یونین یووتی یہسان یہودی ییومن
(ReplaceLettersInSameLangs)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/ur/ur_daily_words.txt` around lines 1 - 2000, Daily
answer pool contains OCR/noise-corrupted tokens that must be removed or flagged;
scan webapp/data/languages/ur/ur_daily_words.txt and prune entries matching the
example corrupt tokens (e.g., "أہغاد", "اطءلہ", "اپددر", "خہجءز", "ضآؤاط",
"وففوہ", "ھمممم", "یلئڈی") by either deleting them or moving them to a QA
bucket, add an automated validation step (Unicode script/regex) to warn on
non-standard Urdu/Arabic letter sequences and punctuation, and regenerate the
list so only valid lexical tokens remain (keep records of pruned tokens for
manual review).
| # Uzbek Language Data — Sources | ||
|
|
There was a problem hiding this comment.
Add Uzbek dataset source URLs and licenses (file is currently incomplete).
This file is header-only right now, so data provenance and licensing cannot be audited.
📄 Suggested patch
# Uzbek Language Data — Sources
+## FrequencyWords (OpenSubtitles)
+- URL: https://github.com/hermitdave/FrequencyWords
+- License: MIT (code), CC-BY-SA 4.0 (content)
+
+## wordfreq
+- URL: https://github.com/rspeer/wordfreq
+- License: MIT📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Uzbek Language Data — Sources | |
| # Uzbek Language Data — Sources | |
| ## FrequencyWords (OpenSubtitles) | |
| - URL: https://github.com/hermitdave/FrequencyWords | |
| - License: MIT (code), CC-BY-SA 4.0 (content) | |
| ## wordfreq | |
| - URL: https://github.com/rspeer/wordfreq | |
| - License: MIT |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/uz/SOURCES.md` around lines 1 - 2, The SOURCES.md
currently only contains a header and lacks dataset provenance; update
webapp/data/languages/uz/SOURCES.md to list each Uzbek dataset used with its
name, canonical source URL, license identifier (e.g., CC-BY-4.0, CC0), and
attribution/contributor info so licensing can be audited; ensure each entry
follows a consistent bullet or table format and include any dataset-specific
notes (e.g., subset, preprocessing) to make provenance unambiguous.
| huzur | ||
| arvoh | ||
| radiy | ||
| qizil | ||
| vatan | ||
| qabih | ||
| voris | ||
| bitta | ||
| izhor | ||
| johil | ||
| sigir | ||
| isloh | ||
| aslan | ||
| hadis | ||
| otadi | ||
| zohid | ||
| ildiz | ||
| baliq | ||
| pyotr | ||
| bugun | ||
| fason | ||
| yoqub | ||
| kuyik | ||
| sobor | ||
| nuqta | ||
| urush | ||
| yemoq | ||
| zakon | ||
| siyoh | ||
| amina | ||
| pirat | ||
| qaror | ||
| isrof | ||
| ihota | ||
| hasan | ||
| negiz | ||
| qozoq | ||
| raqam | ||
| toʻrt | ||
| ahvol | ||
| savat | ||
| mufti | ||
| kiyik | ||
| nigoh | ||
| zohir | ||
| ixlos | ||
| nufuz | ||
| sevgi | ||
| zamin | ||
| pyesa | ||
| parik | ||
| muguz | ||
| hissa | ||
| ongli | ||
| tamom | ||
| boqiy | ||
| shukr | ||
| xodim | ||
| sirka | ||
| hokim | ||
| mayiz | ||
| korol | ||
| oydek | ||
| xitob | ||
| savob | ||
| qorin | ||
| jasad | ||
| zamon | ||
| oʻyin | ||
| nomus | ||
| chili | ||
| shams | ||
| qalay | ||
| sabot | ||
| sonet | ||
| doʻst | ||
| huquq | ||
| ablah | ||
| molik | ||
| avlod | ||
| luzum | ||
| nasha | ||
| litiy | ||
| eshon | ||
| terim | ||
| zakar | ||
| momiq | ||
| zarar | ||
| demoq | ||
| oʻlar | ||
| nosir | ||
| oʻtov | ||
| kofir | ||
| iqbol | ||
| salom | ||
| pitsa | ||
| choch | ||
| muqim | ||
| davom | ||
| qatra | ||
| ssuda | ||
| oshiq | ||
| isyon | ||
| savol | ||
| hissi | ||
| bodom | ||
| rioya | ||
| salib | ||
| ovchi | ||
| hojat | ||
| ishoq | ||
| erkak | ||
| tovar | ||
| otash | ||
| birga | ||
| qarir | ||
| alayh | ||
| kanva | ||
| ichak | ||
| nahor | ||
| tamal | ||
| xitoy | ||
| sahro | ||
| aprel | ||
| takya | ||
| askar | ||
| guruh | ||
| hozir | ||
| sarob | ||
| qiyos | ||
| xatib | ||
| malta | ||
| aorta | ||
| hasad | ||
| shakl | ||
| razil | ||
| burga | ||
| urugʻ | ||
| tinch | ||
| radar | ||
| laziz | ||
| xutba | ||
| jigar | ||
| bilan | ||
| shoir | ||
| ombor | ||
| hatto | ||
| shkaf | ||
| sohil | ||
| murod | ||
| karam | ||
| iroda | ||
| karta | ||
| tulki | ||
| fitna | ||
| qomat | ||
| kelin | ||
| dabba | ||
| tavba | ||
| rajab | ||
| qaysi | ||
| teatr | ||
| xabar | ||
| mudir | ||
| halqa | ||
| seara | ||
| rusni | ||
| lager | ||
| hamza | ||
| vanna | ||
| boʻsh | ||
| niyat | ||
| olmoq | ||
| javob | ||
| tunis | ||
| sumka | ||
| iffat | ||
| sovuq | ||
| dariy | ||
| soqol | ||
| aqida | ||
| surat | ||
| ochiq | ||
| lekin | ||
| vafot | ||
| ikrom | ||
| omina | ||
| ilyos | ||
| taqvo | ||
| inson | ||
| nihon | ||
| radif | ||
| ovqat | ||
| rupor | ||
| fahsh | ||
| tilla | ||
| qasam | ||
| vazir | ||
| bobiy | ||
| bolta | ||
| issiq | ||
| shaxs | ||
| gʻozi | ||
| quruq | ||
| hamla | ||
| badan | ||
| mohir | ||
| lozim | ||
| qayiq | ||
| okean | ||
| kimyo | ||
| xayol | ||
| shina | ||
| havza | ||
| makon | ||
| buyuk | ||
| mavzu | ||
| begim | ||
| safar | ||
| sihat | ||
| baxil | ||
| buzoq | ||
| vasiy | ||
| pemza | ||
| maqol | ||
| limon | ||
| holat | ||
| qonun | ||
| muhim | ||
| bizga | ||
| sharq | ||
| tuyuq | ||
| zilol | ||
| nafas | ||
| qonli | ||
| zaboy | ||
| foniy | ||
| terak | ||
| pesha | ||
| faraz | ||
| manba | ||
| hayot | ||
| oltin | ||
| kalit | ||
| tabib | ||
| zavod | ||
| sovun | ||
| anhor | ||
| fasih | ||
| kecha | ||
| lotin | ||
| tomat | ||
| qalin | ||
| reniy | ||
| tutun | ||
| jinni | ||
| zuhra | ||
| daxma | ||
| yetti | ||
| maqom | ||
| aynan | ||
| murch | ||
| yangi | ||
| lampa | ||
| hovuz | ||
| olmos | ||
| ermoq | ||
| atama | ||
| bayon | ||
| hafta | ||
| ajdod | ||
| kabob | ||
| afyun | ||
| najib | ||
| insof | ||
| xamsa | ||
| sonli | ||
| namoz | ||
| qadim | ||
| xarip | ||
| misol | ||
| iqror | ||
| qiliq | ||
| voqea | ||
| sifat | ||
| soyuz | ||
| garov | ||
| hadya | ||
| geliy | ||
| yozuv | ||
| islom | ||
| sobiq | ||
| uchun | ||
| adyol | ||
| olcha | ||
| foyda | ||
| toifa | ||
| tatar | ||
| gʻarb | ||
| qovun | ||
| shart | ||
| tuzum | ||
| tojik | ||
| jihat | ||
| rumin | ||
| sizga | ||
| butun | ||
| ruhan | ||
| somsa | ||
| tovus | ||
| sohir | ||
| osiyo | ||
| uslub | ||
| ahmoq | ||
| paqir | ||
| vosit | ||
| pirog | ||
| ziyon | ||
| katta | ||
| qissa | ||
| daryo | ||
| raqib | ||
| urmoq | ||
| xolos | ||
| devor | ||
| uradi | ||
| fosiq | ||
| qavat | ||
| kuzni | ||
| paxta | ||
| xiyli | ||
| palov | ||
| tizim | ||
| qabul | ||
| manot | ||
| burun | ||
| akula | ||
| lahza | ||
| qolip | ||
| jasur | ||
| diniy | ||
| faqat | ||
| avval | ||
| taroq | ||
| qadar | ||
| gilam | ||
| loyiq | ||
| yunon | ||
| shayx | ||
| atrof | ||
| savdo | ||
| tuxum | ||
| qisqa | ||
| kiyim | ||
| bordi | ||
| mayak | ||
| halab | ||
| qismi | ||
| sokin | ||
| nukus | ||
| xiyla | ||
| ildam | ||
| menga | ||
| zavja | ||
| kitob | ||
| iqlim | ||
| yomon | ||
| oqmoq | ||
| aholi | ||
| irqiy | ||
| alloh | ||
| qibla | ||
| shuur | ||
| somiy | ||
| hassa | ||
| imkon | ||
| pilik | ||
| quloq | ||
| boʻri | ||
| milod | ||
| inkor | ||
| jonli | ||
| bahor | ||
| xalat | ||
| qanot | ||
| erkin | ||
| shnur | ||
| dubay | ||
| abzal | ||
| fotih | ||
| katet | ||
| oddiy | ||
| jihod | ||
| barot | ||
| tufli | ||
| sodiq | ||
| malay | ||
| hakim | ||
| beliz | ||
| nazar | ||
| xusus | ||
| sudya | ||
| dalil | ||
| osmon | ||
| yurak | ||
| muboh | ||
| baron | ||
| salat | ||
| faqir | ||
| subut | ||
| ellik | ||
| manti | ||
| janub | ||
| fozil | ||
| guvoh | ||
| zafar | ||
| insho | ||
| ispan | ||
| uymoq | ||
| jahon | ||
| keldi | ||
| axloq | ||
| kishi | ||
| shifo | ||
| ariza | ||
| nikoh | ||
| josus | ||
| elchi | ||
| qimiz | ||
| quyon | ||
| zarif | ||
| ehson | ||
| ilhom | ||
| aloqa | ||
| hovli | ||
| parij | ||
| oʻrta | ||
| unsur | ||
| kerak | ||
| mebel | ||
| talab | ||
| haqir | ||
| kohin | ||
| botil | ||
| zakot | ||
| nusxa | ||
| usmon | ||
| tojir | ||
| doira | ||
| ruhiy | ||
| eston | ||
| muhit | ||
| totli | ||
| balki | ||
| pakki | ||
| yelka | ||
| sariq | ||
| urgʻu | ||
| tarix | ||
| tovuq | ||
| jadal | ||
| qadam | ||
| sklad | ||
| qurol | ||
| marta | ||
| tuhfa | ||
| jamoa | ||
| ogʻir | ||
| arman | ||
| oybek | ||
| muzey | ||
| qomus | ||
| notiq | ||
| modda | ||
| bulut | ||
| albom | ||
| vodiy | ||
| shafe | ||
| rohat | ||
| vakil | ||
| eshik | ||
| taraf | ||
| nodir | ||
| dunyo | ||
| anjir | ||
| banan | ||
| gʻayr | ||
| hamma | ||
| kabel | ||
| sovet | ||
| sohib | ||
| jussa | ||
| zarba | ||
| barak | ||
| xamir | ||
| biroq | ||
| tuman | ||
| moyli | ||
| sabab | ||
| saxiy | ||
| idrok | ||
| mahal | ||
| arzon | ||
| suzuk | ||
| qorli | ||
| yoqut | ||
| asriy | ||
| havas | ||
| kaliy | ||
| xonim | ||
| qalam | ||
| siloh | ||
| narsa | ||
| jalab | ||
| eshak | ||
| gʻayn | ||
| kotib | ||
| adash | ||
| gunoh | ||
| osmoq | ||
| nomli | ||
| izzat | ||
| otmoq | ||
| alban | ||
| aksar | ||
| falaj | ||
| loyli | ||
| sabiy | ||
| tizza | ||
| mufid | ||
| kasal | ||
| hisob | ||
| temir | ||
| fagot | ||
| bilim | ||
| gʻayb | ||
| vujud | ||
| litva | ||
| viski | ||
| basra | ||
| qahva | ||
| ogayo | ||
| suyak | ||
| dofin | ||
| isbot | ||
| qirol | ||
| tamiz | ||
| kamol | ||
| qoida | ||
| sadaf | ||
| tariq | ||
| kapot | ||
| fojir | ||
| radio | ||
| sahar | ||
| hilol | ||
| madad | ||
| xotin | ||
| xoʻja | ||
| doimo | ||
| ilmiy | ||
| ogʻiz | ||
| okrug | ||
| nafar | ||
| etnik | ||
| irsiy | ||
| diloq |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check Uzbek language config for grapheme_mode setting
cat webapp/data/languages/uz/language_config.json | jq '.grapheme_mode'
# Count codepoint lengths of words containing the modifier apostrophe
echo "--- Words with ʻ (U+02BB) and their codepoint counts ---"
grep 'ʻ' webapp/data/languages/uz/uz_5words.txt | head -10 | while read word; do
len=$(echo -n "$word" | wc -m)
echo "$word: $len codepoints"
doneRepository: Hugo0/wordle
Length of output: 317
🏁 Script executed:
#!/bin/bash
# Count total words with apostrophe
total_with_apostrophe=$(grep -c 'ʻ' webapp/data/languages/uz/uz_5words.txt)
echo "Total words with modifier apostrophe (ʻ): $total_with_apostrophe"
# Count all words and verify total count
total_words=$(wc -l < webapp/data/languages/uz/uz_5words.txt)
echo "Total words in file: $total_words"
# Check if ALL apostrophe words are 6 codepoints
echo ""
echo "Checking if all apostrophe words are 6 codepoints:"
grep 'ʻ' webapp/data/languages/uz/uz_5words.txt | while read word; do
len=$(echo -n "$word" | wc -m)
if [ "$len" -ne 6 ]; then
echo "UNEXPECTED: $word has $len codepoints (not 6)"
fi
done | head -5
# Count how many are 6
count_6=$(grep 'ʻ' webapp/data/languages/uz/uz_5words.txt | awk '{print length($0)}' | grep -c "^6$")
echo "Words with ʻ that are 6 codepoints: $count_6 / $total_with_apostrophe"
# Verify no words without apostrophe exceed 5 codepoints
echo ""
echo "Checking words without apostrophe for length violations:"
grep -v 'ʻ' webapp/data/languages/uz/uz_5words.txt | awk '{if (length($0) != 5) print $0 " (" length($0) " codepoints)"}' | head -5Repository: Hugo0/wordle
Length of output: 279
Fix 18 Uzbek words that violate the 5-letter constraint.
The file contains 18 words with the modifier letter apostrophe (ʻ, U+02BB) that measure 6 codepoints instead of 5: toʻrt, oʻyin, doʻst, oʻlar, oʻtov, urugʻ, boʻsh, gʻozi, gʻarb, boʻri, and others. Since grapheme_mode is disabled for Uzbek, the system counts individual codepoints, and these words violate the 5-letter constraint defined by the filename uz_5words.txt.
Either replace these 18 words with alternative 5-codepoint words or enable grapheme-aware length validation for Uzbek to properly handle the oʻ and gʻ digraphs as single grapheme units.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/uz/uz_5words.txt` around lines 1 - 567, The
uz_5words.txt file contains 18 entries that use the modifier letter apostrophe
(U+02BB) and therefore are 6 codepoints (e.g. toʻrt, oʻyin, doʻst, oʻlar, oʻtov,
urugʻ, boʻsh, gʻozi, gʻarb, boʻri, etc.), violating the 5-codepoint constraint;
fix by either replacing each listed 6-codepoint word with a true 5-codepoint
Uzbek word (ensure replacements are 5 Unicode codepoints exactly) or enable
grapheme-aware length handling for Uzbek so sequences like oʻ and gʻ are treated
as single graphemes (adjust the validator/config to set grapheme_mode for
Uzbek); update the entries for the specific words mentioned (toʻrt, oʻyin,
doʻst, oʻlar, oʻtov, urugʻ, boʻsh, gʻozi, gʻarb, boʻri and the remaining
problematic tokens) accordingly.
| # Yoruba Language Data — Sources | ||
|
|
There was a problem hiding this comment.
Source provenance is missing (header-only file).
This file needs actual source links/licensing/processing notes; otherwise the dataset is not auditable or reproducible.
I can draft a SOURCES.md template (source URL, license, extraction date, normalization steps) and map it to the current Yoruba assets if you want.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/yo/SOURCES.md` around lines 1 - 2, The SOURCES.md for
Yoruba currently only contains a header and lacks provenance; update
webapp/data/languages/yo/SOURCES.md to include per-asset source entries (source
URL, license, extraction date), processing/normalization steps applied
(tokenization, filtering, deduplication, scripts used), and a mapping from each
Yoruba asset filename to its source entry so the dataset is auditable and
reproducible; use the existing "# Yoruba Language Data — Sources" header as the
anchor and follow the proposed template fields (source URL, license, extraction
date, normalization steps) for each listed asset.
| [ | ||
| "⇨", | ||
| "z", | ||
| "x", | ||
| "c", | ||
| "v", | ||
| "b", | ||
| "n", | ||
| "m", | ||
| "ẹ", | ||
| "ọ", | ||
| "ṣ", | ||
| "⌫" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if Yoruba word list contains tonal diacritics
echo "--- Checking for tonal marks in Yoruba words ---"
# Look for combining acute (U+0301), grave (U+0300), or macron (U+0304)
# Or precomposed characters with these marks
rg -o '[àáâãäåèéêëìíîïòóôõöùúûüÀÁÈÉÌÍÒÓÙÚ]' webapp/data/languages/yo/ --no-filename | sort | uniq -c | head -20
# Also check the character file
echo "--- Yoruba characters file ---"
cat webapp/data/languages/yo/yo_characters.txt 2>/dev/null || echo "File not found"Repository: Hugo0/wordle
Length of output: 315
Add tonal diacritics to keyboard and character set.
The Yoruba word list includes 163 instances of tonal diacritics (à, á, è, é, ì, í, ò, ó, ù, ú and their capitals), but the keyboard layout and character set file (yo_characters.txt) do not include these characters. This creates a functional gap—users cannot input valid Yoruba words containing tonal marks even though these words exist in the game.
To resolve:
- Add tonal-marked vowels (à, á, è, é, ì, í, ò, ó, ù, ú) to the keyboard layout
- Update
yo_characters.txtto include these characters
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/yo/yo_keyboard.json` around lines 30 - 42, The keyboard
JSON row currently containing "⇨","z","x","c","v","b","n","m","ẹ","ọ","ṣ","⌫"
needs to include Yoruba tonal vowels (à, á, è, é, ì, í, ò, ó, ù, ú) and their
uppercase forms so users can type marked words; update
webapp/data/languages/yo/yo_keyboard.json to add those characters into the
appropriate rows (near the vowel keys where "ẹ","ọ","ṣ" appear) and also update
the character set file yo_characters.txt to include all tonal vowels and their
capital variants (À, Á, È, É, Ì, Í, Ò, Ó, Ù, Ú) alongside existing characters so
the game recognizes them.
Adds scripts/profanity_blocklist.txt with common English profanity/slurs that leak into subtitle-sourced word lists (FrequencyWords). These words are filtered from daily word candidates but remain valid guesses. Fixes: bitch, nigga, pussy, whore found in Indonesian/Tagalog daily words (reported by CodeRabbit review on PR #149).
There was a problem hiding this comment.
Actionable comments posted: 16
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
webapp/app.py (1)
180-183:⚠️ Potential issue | 🟡 MinorPotential
ZeroDivisionErrorif all words are filtered out.If
_5wordsis empty after filtering (e.g., corrupted character set file), line 181 will raiseZeroDivisionError.🛡️ Proposed defensive fix
- if n_in_order / len(_5words) > 0.8: + if _5words and n_in_order / len(_5words) > 0.8: random.shuffle(_5words) print(f"{lang} words are sorted, shuffling")🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/app.py` around lines 180 - 183, The division n_in_order / len(_5words) can raise ZeroDivisionError when _5words is empty; before computing the ratio or shuffling, add a guard that checks if len(_5words) == 0 (or not _5words) and handle it (e.g., skip the check/shuffle, log an error/warning with context including lang, or return/continue from the enclosing function) so the block around the n_in_order calculation and random.shuffle(_5words) never divides by zero.
♻️ Duplicate comments (4)
webapp/data/languages/yo/SOURCES.md (1)
1-6:⚠️ Potential issue | 🟠 MajorProvenance metadata is still incomplete for reproducibility.
This now has a source URL and license, but it still misses key audit fields (e.g., extraction date, processing/normalization steps, and mapping of each Yoruba asset file to the source entry). Please expand this into full provenance docs so the dataset can be reproduced.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/yo/SOURCES.md` around lines 1 - 6, The SOURCES.md for "Yoruba Language Data — Sources" is missing full provenance; update this file to include extraction_date, extractor identity/version, exact URL(s) used with fetch timestamps, data processing/normalization steps (tokenization, filtering, encoding changes), mapping table that links each asset file name to the original Wiktionary entry identifiers or URLs, dataset version or commit hash and checksum(s) for generated files, and contact/license attribution details so the dataset can be reproduced; reference the top-level header "Yoruba Language Data — Sources" and the existing "kaikki.org (Wiktionary extract)" entry when adding these fields.webapp/data/languages/ms/ms_daily_words.txt (1)
387-387:⚠️ Potential issue | 🟠 MajorMalay daily list still contains English fragment/contraction tokens.
didnt(Line 387),doesn(Line 397),thats(Line 1822), andyoure(Line 1984) should not be in the daily pool. Please regenerate with contamination filtering enabled end-to-end.Also applies to: 397-397, 1822-1822, 1984-1984
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ms/ms_daily_words.txt` at line 387, The Malay daily-word list contains English contraction tokens ("didnt", "doesn", "thats", "youre"); remove these tokens from the list and re-run the generation pipeline with contamination filtering enabled end-to-end (enable the language-contamination filter / language-detection step in the generator) so English fragments are excluded automatically; verify the regenerated output no longer contains the listed tokens and add a regression check to the pipeline to catch English tokens in Malay lists.webapp/data/languages/tl/tl_daily_words.txt (1)
543-543:⚠️ Potential issue | 🟠 MajorDaily pool still contains obvious contamination tokens.
gmail(Line 543),https(Line 652), andnorth(Line 1295) are still in the Tagalog daily list. Please remove these via the generation pipeline (not manual edits) so filtering is systematic and repeatable.Also applies to: 652-652, 1295-1295
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/tl/tl_daily_words.txt` at line 543, The Tagalog daily-word generation pipeline is not filtering out contamination tokens like "gmail", "https", and "north"; update the pipeline (e.g., in the generateDailyWords()/buildDailyPool() flow or the token normalization/filterTokens() step) to systematically exclude these by adding a contamination stoplist and URL/email pattern checks: add exact-match exclusions for known bad tokens ("gmail","north") and a regex filter for URL/email tokens (e.g., patterns matching ^https?:// and email/domain tokens), apply the filters before finalizing the daily pool (e.g., in filterContaminants()/finalizePool()), and run the generator to regenerate the Tagalog daily list so removals are reproducible by the pipeline.scripts/improve_word_lists.py (1)
317-328:⚠️ Potential issue | 🟠 Major
load_hunspell_wordsuses codepoint-based filtering, breaks for Hindi.
EXTRA_SOURCESon line 291 includes"hi": {"leipzig", "hunspell", "kaikki"}, butload_hunspell_wordsuseslen(w) == 5 and w.isalpha()which will filter out valid Hindi words with combining marks.This affects the native dictionary used for contamination detection, potentially causing incorrect contamination flags for Hindi.
🐛 Proposed fix to support grapheme-mode
-def load_hunspell_words(lang: str) -> set[str]: +def load_hunspell_words(lang: str, grapheme_mode: bool = False) -> set[str]: """Load 5-letter words from Hunspell dictionary.""" path = HUNSPELL_DIR / f"{lang}.dic" if not path.exists(): return set() + if grapheme_mode: + import grapheme words = set() for line in path.read_text(encoding="utf-8", errors="ignore").splitlines(): # Strip affix flags after '/' w = line.split("/")[0].strip().lower() - if len(w) == 5 and w.isalpha(): - words.add(w) + if grapheme_mode: + if w and grapheme.length(w) == 5: + words.add(w) + else: + if len(w) == 5 and w.isalpha(): + words.add(w) return words🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/improve_word_lists.py` around lines 317 - 328, load_hunspell_words currently filters by codepoint length and w.isalpha(), which drops valid Hindi words with combining marks; update load_hunspell_words to count grapheme clusters instead of codepoints (so accented/combining characters count as one) by using a grapheme-aware splitter (e.g., the third-party regex module with regex.findall(r'\X', w)) and require that the grapheme sequence length == 5; additionally replace w.isalpha() with a check that the graphemes contain letters (e.g., test that at least one base character matches Unicode letter properties like \p{L} or use char.isalpha() on base graphemes) so Hindi words with combining marks are accepted while preserving alphabetic-only filtering.
🧹 Nitpick comments (6)
webapp/data/languages/nds/nds_curated_schedule.txt (1)
1-4: Consider adding an automated integrity check for curated schedule files.To prevent accidental drift, add a CI/script check that validates
daysequals the number of entries and that the file remains immutable unless regenerated.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/nds/nds_curated_schedule.txt` around lines 1 - 4, Add a CI/script integrity check that parses curated schedule files like nds_curated_schedule.txt and validates that the header metadata matches the content: verify the numeric "days:" value equals the actual number of entries below the header and that the "word_list_hash" matches a computed hash of the file body; if mismatched, fail the job and require regeneration. Implement this check as a reusable script (e.g., scripts/verify_curated_schedule) invoked by CI for the directory, and ensure it returns non-zero on mismatch or any file modification outside of regeneration so the file is treated as immutable unless the regeneration tool updates it.webapp/data/languages/uz/uz_curated_schedule.txt (1)
5-48: Curated schedule contains repeated daily words.There are duplicates in this 48-day window (e.g.,
kabob,diniy,uchun). Deduplicate during schedule generation to avoid repeated daily answers in short rotations.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/uz/uz_curated_schedule.txt` around lines 5 - 48, The curated Uzbek schedule file contains duplicate entries (e.g., "kabob", "diniy", "uchun") causing repeated daily answers; fix by deduplicating the source list before generating the 48-day rotation: update the schedule generation path (e.g., generateCuratedSchedule or buildScheduleFromCuratedList) to filter the input word list for uniqueness while preserving first-occurrence order (or dedupe the parsed contents of uz_curated_schedule.txt) so the produced schedule contains only unique daily words.webapp/data/languages/ie/ie_curated_schedule.txt (1)
1-4: Optional: Add daily_words_hash for consistency.The header is missing the
daily_words_hashfield present in other curated schedules (e.g., pt, ru, uk). While not critical, adding it would improve metadata consistency across language data files.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ie/ie_curated_schedule.txt` around lines 1 - 4, Add a daily_words_hash header entry to this file to match other curated schedules: create a `daily_words_hash: <hash>` line in the header above or alongside `word_list_hash` so the file includes `daily_words_hash`, `word_list_hash` and `days` metadata (see other language files like pt/ru/uk for the exact placement), ensuring the hash value is computed from the same frozen daily words source used for the `word_list_hash` (so MIGRATION_DAY_IDX and list generation remain consistent).scripts/freeze_past_words.py (2)
250-253: Platform-specific path splitting.Using
f.split("/")[-1]is Unix-specific. Consider usingPath(f).namefor cross-platform compatibility.♻️ Suggested fix
else: langs = sorted( - f.split("/")[-1] for f in glob.glob(str(LANGUAGES_DIR / "*")) if os.path.isdir(f) + Path(f).name for f in glob.glob(str(LANGUAGES_DIR / "*")) if os.path.isdir(f) )🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/freeze_past_words.py` around lines 250 - 253, The code that builds langs uses f.split("/")[-1], which is Unix-specific; update the comprehension that sets langs to use Path(f).name for cross-platform path handling (replace f.split("/")[-1] with Path(f).name) and add/import Path from pathlib if not already imported so LANGUAGES_DIR, the glob.glob results, and the langs variable work correctly on Windows and POSIX.
105-112: Grapheme-mode words not lowercased while non-grapheme words are.In
load_language_data, non-grapheme words are lowercased (line 111) but grapheme-mode words are not (line 109). This inconsistency could cause hash mismatches withwebapp/app.pywhich also lowercases only non-grapheme words. Verify this is intentional.Additionally, line 112 filters by character set using
c in chars for c in w, but for grapheme-mode languages, the character set may contain combining marks that need grapheme-aware iteration to validate correctly.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/freeze_past_words.py` around lines 105 - 112, The load_language_data block is inconsistent: when use_graphemes is true the words are not lowercased and the character-set filter uses per-codepoint iteration, which can cause mismatches with non-grapheme processing and incorrect validation for combining marks; update the grapheme branch (the use_graphemes conditional that imports grapheme and uses grapheme.length) to also normalize/lowercase each word consistently with the non-grapheme branch (same casing behavior as webapp/app.py) and change the post-filtering step to perform grapheme-aware iteration when use_graphemes is true (use grapheme.graphemes(word) to check each grapheme against chars) so both length-checking and character validation are grapheme-aware and casing is consistent across branches.scripts/add_language.py (1)
621-630: Frequency sort immediately undone by shuffle.Words are sorted by frequency descending (line 622) then immediately shuffled (lines 624-626). The frequency sort has no effect on the final output — all frequency information is discarded.
If this is intentional (shuffle for deterministic daily word selection), consider removing the sort or adding a comment explaining why frequency ordering isn't preserved.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/add_language.py` around lines 621 - 630, The code sorts words by frequency into sorted_words using all_words then immediately calls rng.shuffle(sorted_words), which nullifies the frequency ordering; either remove the frequency sort (delete the sorted(... key=...) line) if deterministic shuffle is the intended behavior, or preserve frequency by removing the shuffle and keeping the sorted_words order; alternatively, if you want to keep both, replace the unconditional shuffle with a clear comment explaining why frequency order is intentionally discarded (and reference the variables/function: sorted_words, all_words, rng.shuffle) so future readers understand the decision.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/freeze_past_words.py`:
- Around line 42-67: The current functions _word_hash and _day_hash return hex
string digests causing lexicographic comparisons that diverge from
webapp/app.py; change both to return the same integer form used in the app:
compute hashlib.sha256(...).digest() and convert the first 8 bytes to an integer
via int.from_bytes(..., "big"); update get_daily_word_consistent_hash to build
candidates with these integer keys (same tuple shape (key, word)), sort by the
integer key and compare numeric values against the integer day hash so selection
matches production; keep function names _word_hash, _day_hash and
get_daily_word_consistent_hash unchanged.
In `@webapp/data/languages/ar/ar_curated_schedule.txt`:
- Line 28: The frozen Arabic schedule file
webapp/data/languages/ar/ar_curated_schedule.txt contains a duplicated daily
word "بقشيش" (appears at lines referenced as 28 and 30); update the
freeze/generation step to deduplicate entries before writing the schedule by
filtering out repeated tokens (e.g., using a Set or unique-by-value filter) so
the generator emits each word only once and then regenerate
ar_curated_schedule.txt to remove the duplicate "بقشيش".
In `@webapp/data/languages/ca/ca_curated_schedule.txt`:
- Line 20: The curated schedule contains duplicate entries ("pecar" and
"ànsia"); update the schedule-generation code to enforce uniqueness (e.g.,
filter/collect items into a Set before writing) so duplicate tokens are removed
before saving the curated list, and re-generate the Catalan curated schedule to
eliminate the repeated "pecar" and "ànsia" entries; ensure the dedup step runs
in the function that produces the curated output (the generator that writes the
curated schedule file).
In `@webapp/data/languages/gl/gl_curated_schedule.txt`:
- Line 9: The schedule file gl_curated_schedule.txt contains a duplicate entry
"trema" used twice (appearing for day 3 and day 35); replace one of the
occurrences of the token "trema" with an alternative curated word that does not
appear elsewhere in the file (or remove it) so every scheduled day has a unique
word, then run a quick grep/search for "trema" to confirm only one occurrence
remains.
In `@webapp/data/languages/hr/hr_curated_schedule.txt`:
- Line 53: Remove the profane entry "kurva" from hr_curated_schedule.txt and add
it to the Croatian profanity blocklist (or the global profanity_blocklist) so it
is filtered programmatically; specifically delete the "kurva" line in
hr_curated_schedule.txt and append "kurva" to the Croatian blocklist file (e.g.,
hr_profanity or profanity_blocklist) used by the scheduler/filtering logic to
ensure it is blocked at runtime.
In `@webapp/data/languages/hu/hu_curated_schedule.txt`:
- Line 11: The curated schedule contains duplicate entries ("össze" and "tömeg")
that must be removed during schedule generation; update the schedule generation
pipeline (e.g., the generateCuratedSchedule / scheduleGenerator function that
reads hu_curated_schedule.txt) to deduplicate entries per migration window by
normalizing whitespace/case and preserving the original order (first occurrence
wins), implement a helper like dedupeScheduleEntries to filter duplicates within
each window, and add/update tests to assert no repeated answers appear in the
same migration window.
In `@webapp/data/languages/ia/ia_curated_schedule.txt`:
- Around line 5-52: The curated schedule file contains duplicate entries "grano"
and "pacto" which will repeat in the 48-day cycle; open ia_curated_schedule.txt,
remove or replace the second occurrences of "grano" and "pacto" (the duplicates
shown in the diff) with unique words so the list contains no repeats, and ensure
the total list length and ordering still satisfy the 48-day schedule (or run the
existing dedupe/validation routine after editing to confirm uniqueness).
In `@webapp/data/languages/id/id_curated_schedule.txt`:
- Around line 27-32: The curated schedule file id_curated_schedule.txt contains
a duplicated entry ("hadap") (appears in the provided diff), so remove the
duplicate occurrences and ensure each daily answer is unique in this file;
additionally, add a deduplication/validation step to the generation or CI
pipeline that scans curated schedule files (e.g., id_curated_schedule.txt) and
fails or auto-fixes when duplicate tokens are detected (implement using a Set or
check-before-append in the generator and a unit/CI check that reads each
schedule and asserts uniqueness).
In `@webapp/data/languages/nb/nb_curated_schedule.txt`:
- Line 48: The curated schedule contains an English-only token "right" that
slipped into the Norwegian frozen schedule; remove the token from the frozen
artifact, then tighten the curation pipeline's contamination filter (update the
language-detection/validation step used by the schedule generator to reject
tokens classified as English-only or with low Norwegian confidence, and add a
unit/regression test) and regenerate the frozen schedules from the canonical
source data rather than editing the frozen file manually.
In `@webapp/data/languages/ne/ne_curated_schedule.txt`:
- Around line 5-52: The Nepali curated schedule file contains excessive
duplicate entries (e.g., "अनवसर", "एसओएस", "चलअचल", "सहगमन", "एकसदन", "दलबदल",
"अनवरत") which must be de-duplicated and the schedule regenerated from a larger
word pool; remove repeated tokens so each word appears only once in
ne_curated_schedule.txt, and implement or run deduplication logic in the
schedule-generation pipeline (ensure functions that build the schedule enforce
uniqueness and a minimum vocabulary target) and/or expand the source lexicon
before re-generating the file so the final schedule contains a diverse set of
unique Nepali words of the intended length.
In `@webapp/data/languages/pl/pl_curated_schedule.txt`:
- Around line 12-15: Remove the duplicate token "deseń" from the curated weekly
schedule by keeping only one occurrence and replacing the other with the
intended unique word for that day (or a different valid entry), ensuring each
day in the week is distinct; update the line containing the second "deseń" in
the schedule file so the duplicate is eliminated and commit the corrected list.
In `@webapp/data/languages/pt/pt_curated_schedule.txt`:
- Line 23: The Portuguese term "merda" (and other non-English profanities) is
present in the Portuguese curated schedule but not included in the global
profanity blocklist; update the blocklist used by the profanity filter
(scripts/profanity_blocklist.txt) to include "merda" and other language-specific
profanities referenced in webapp/data/languages/pt/pt_curated_schedule.txt so
they are excluded during daily word selection, and ensure the
profanity-loader/validator that reads the blocklist still accepts the expanded
entries (check the code that loads the blocklist to confirm no charset/trim
issues).
In `@webapp/data/languages/tr/tr_curated_schedule.txt`:
- Line 14: The frozen schedule contains a duplicated entry "burun" (appears at
lines 14 and 20 in tr_curated_schedule), so remove the duplicate occurrence and
update the schedule to contain only one "burun"; additionally, update the
schedule-generation/deduplication logic that produces tr_curated_schedule to
filter out repeated words (e.g., use a uniqueness check or set when assembling
daily answers) so future generations cannot emit the same token twice.
In `@webapp/data/languages/uk/uk_curated_schedule.txt`:
- Around line 5-53: The curated schedule contains excessive duplication of the
word "йдучи" (appears three times); replace the two extra occurrences of "йдучи"
with two unique Ukrainian words of similar length/frequency to restore variety,
ensure the full 48-entry list contains no duplicate entries, and run a simple
uniqueness check (e.g., set membership) on the list to prevent reintroducing
duplicates; target the lines where "йдучи" appears in the schedule for
replacement.
In `@webapp/data/languages/uz/SOURCES.md`:
- Around line 3-6: Update the "## kaikki.org (Wiktionary extract)" SOURCES.md
entry to include reproducibility and attribution metadata: add a snapshot date
or revision identifier (e.g., "Snapshot date: YYYY-MM-DD" or "Wiktionary
revision ID(s)"), the exact version or export method used (e.g., dump/API export
and parameters), and explicit attribution handling details for CC-BY-SA content
(e.g., required attribution text, link-back obligations, whether modifications
were made, and how share-alike will be satisfied). Keep these fields alongside
the existing URL/License/Description under the same heading so auditors can
trace the exact source and how attribution is applied.
In `@webapp/data/languages/yo/yo_curated_schedule.txt`:
- Around line 5-52: The curated Yoruba schedule contains duplicate entries
("alase" and "bẹẹrẹ") which will repeat in the 48-day cycle; open the
yo_curated_schedule.txt list, remove or replace the second occurrences of
"alase" and "bẹẹrẹ" with unique Yoruba words so that the file contains 48
distinct words (no duplicates), and verify there are no other repeated tokens in
the list before committing.
---
Outside diff comments:
In `@webapp/app.py`:
- Around line 180-183: The division n_in_order / len(_5words) can raise
ZeroDivisionError when _5words is empty; before computing the ratio or
shuffling, add a guard that checks if len(_5words) == 0 (or not _5words) and
handle it (e.g., skip the check/shuffle, log an error/warning with context
including lang, or return/continue from the enclosing function) so the block
around the n_in_order calculation and random.shuffle(_5words) never divides by
zero.
---
Duplicate comments:
In `@scripts/improve_word_lists.py`:
- Around line 317-328: load_hunspell_words currently filters by codepoint length
and w.isalpha(), which drops valid Hindi words with combining marks; update
load_hunspell_words to count grapheme clusters instead of codepoints (so
accented/combining characters count as one) by using a grapheme-aware splitter
(e.g., the third-party regex module with regex.findall(r'\X', w)) and require
that the grapheme sequence length == 5; additionally replace w.isalpha() with a
check that the graphemes contain letters (e.g., test that at least one base
character matches Unicode letter properties like \p{L} or use char.isalpha() on
base graphemes) so Hindi words with combining marks are accepted while
preserving alphabetic-only filtering.
In `@webapp/data/languages/ms/ms_daily_words.txt`:
- Line 387: The Malay daily-word list contains English contraction tokens
("didnt", "doesn", "thats", "youre"); remove these tokens from the list and
re-run the generation pipeline with contamination filtering enabled end-to-end
(enable the language-contamination filter / language-detection step in the
generator) so English fragments are excluded automatically; verify the
regenerated output no longer contains the listed tokens and add a regression
check to the pipeline to catch English tokens in Malay lists.
In `@webapp/data/languages/tl/tl_daily_words.txt`:
- Line 543: The Tagalog daily-word generation pipeline is not filtering out
contamination tokens like "gmail", "https", and "north"; update the pipeline
(e.g., in the generateDailyWords()/buildDailyPool() flow or the token
normalization/filterTokens() step) to systematically exclude these by adding a
contamination stoplist and URL/email pattern checks: add exact-match exclusions
for known bad tokens ("gmail","north") and a regex filter for URL/email tokens
(e.g., patterns matching ^https?:// and email/domain tokens), apply the filters
before finalizing the daily pool (e.g., in filterContaminants()/finalizePool()),
and run the generator to regenerate the Tagalog daily list so removals are
reproducible by the pipeline.
In `@webapp/data/languages/yo/SOURCES.md`:
- Around line 1-6: The SOURCES.md for "Yoruba Language Data — Sources" is
missing full provenance; update this file to include extraction_date, extractor
identity/version, exact URL(s) used with fetch timestamps, data
processing/normalization steps (tokenization, filtering, encoding changes),
mapping table that links each asset file name to the original Wiktionary entry
identifiers or URLs, dataset version or commit hash and checksum(s) for
generated files, and contact/license attribution details so the dataset can be
reproduced; reference the top-level header "Yoruba Language Data — Sources" and
the existing "kaikki.org (Wiktionary extract)" entry when adding these fields.
---
Nitpick comments:
In `@scripts/add_language.py`:
- Around line 621-630: The code sorts words by frequency into sorted_words using
all_words then immediately calls rng.shuffle(sorted_words), which nullifies the
frequency ordering; either remove the frequency sort (delete the sorted(...
key=...) line) if deterministic shuffle is the intended behavior, or preserve
frequency by removing the shuffle and keeping the sorted_words order;
alternatively, if you want to keep both, replace the unconditional shuffle with
a clear comment explaining why frequency order is intentionally discarded (and
reference the variables/function: sorted_words, all_words, rng.shuffle) so
future readers understand the decision.
In `@scripts/freeze_past_words.py`:
- Around line 250-253: The code that builds langs uses f.split("/")[-1], which
is Unix-specific; update the comprehension that sets langs to use Path(f).name
for cross-platform path handling (replace f.split("/")[-1] with Path(f).name)
and add/import Path from pathlib if not already imported so LANGUAGES_DIR, the
glob.glob results, and the langs variable work correctly on Windows and POSIX.
- Around line 105-112: The load_language_data block is inconsistent: when
use_graphemes is true the words are not lowercased and the character-set filter
uses per-codepoint iteration, which can cause mismatches with non-grapheme
processing and incorrect validation for combining marks; update the grapheme
branch (the use_graphemes conditional that imports grapheme and uses
grapheme.length) to also normalize/lowercase each word consistently with the
non-grapheme branch (same casing behavior as webapp/app.py) and change the
post-filtering step to perform grapheme-aware iteration when use_graphemes is
true (use grapheme.graphemes(word) to check each grapheme against chars) so both
length-checking and character validation are grapheme-aware and casing is
consistent across branches.
In `@webapp/data/languages/ie/ie_curated_schedule.txt`:
- Around line 1-4: Add a daily_words_hash header entry to this file to match
other curated schedules: create a `daily_words_hash: <hash>` line in the header
above or alongside `word_list_hash` so the file includes `daily_words_hash`,
`word_list_hash` and `days` metadata (see other language files like pt/ru/uk for
the exact placement), ensuring the hash value is computed from the same frozen
daily words source used for the `word_list_hash` (so MIGRATION_DAY_IDX and list
generation remain consistent).
In `@webapp/data/languages/nds/nds_curated_schedule.txt`:
- Around line 1-4: Add a CI/script integrity check that parses curated schedule
files like nds_curated_schedule.txt and validates that the header metadata
matches the content: verify the numeric "days:" value equals the actual number
of entries below the header and that the "word_list_hash" matches a computed
hash of the file body; if mismatched, fail the job and require regeneration.
Implement this check as a reusable script (e.g.,
scripts/verify_curated_schedule) invoked by CI for the directory, and ensure it
returns non-zero on mismatch or any file modification outside of regeneration so
the file is treated as immutable unless the regeneration tool updates it.
In `@webapp/data/languages/uz/uz_curated_schedule.txt`:
- Around line 5-48: The curated Uzbek schedule file contains duplicate entries
(e.g., "kabob", "diniy", "uchun") causing repeated daily answers; fix by
deduplicating the source list before generating the 48-day rotation: update the
schedule generation path (e.g., generateCuratedSchedule or
buildScheduleFromCuratedList) to filter the input word list for uniqueness while
preserving first-occurrence order (or dedupe the parsed contents of
uz_curated_schedule.txt) so the produced schedule contains only unique daily
words.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 538e3b41-57e7-40d5-8ebb-e2ae14581bd8
📒 Files selected for processing (87)
scripts/add_language.pyscripts/freeze_past_words.pyscripts/improve_word_lists.pyscripts/profanity_blocklist.txttests/test_word_lists.pywebapp/app.pywebapp/data/languages/ar/ar_curated_schedule.txtwebapp/data/languages/az/az_curated_schedule.txtwebapp/data/languages/bg/bg_curated_schedule.txtwebapp/data/languages/bn/bn_curated_schedule.txtwebapp/data/languages/br/br_curated_schedule.txtwebapp/data/languages/ca/ca_curated_schedule.txtwebapp/data/languages/ckb/ckb_curated_schedule.txtwebapp/data/languages/cs/cs_curated_schedule.txtwebapp/data/languages/da/da_curated_schedule.txtwebapp/data/languages/de/de_curated_schedule.txtwebapp/data/languages/el/el_curated_schedule.txtwebapp/data/languages/en/en_curated_schedule.txtwebapp/data/languages/eo/eo_curated_schedule.txtwebapp/data/languages/es/es_curated_schedule.txtwebapp/data/languages/et/et_curated_schedule.txtwebapp/data/languages/eu/eu_curated_schedule.txtwebapp/data/languages/fa/fa_curated_schedule.txtwebapp/data/languages/fi/fi_curated_schedule.txtwebapp/data/languages/fo/fo_curated_schedule.txtwebapp/data/languages/fr/fr_curated_schedule.txtwebapp/data/languages/fur/fur_curated_schedule.txtwebapp/data/languages/fy/fy_curated_schedule.txtwebapp/data/languages/ga/ga_curated_schedule.txtwebapp/data/languages/gd/gd_curated_schedule.txtwebapp/data/languages/gl/gl_curated_schedule.txtwebapp/data/languages/he/he_curated_schedule.txtwebapp/data/languages/hi/hi_curated_schedule.txtwebapp/data/languages/hr/hr_curated_schedule.txtwebapp/data/languages/hu/hu_curated_schedule.txtwebapp/data/languages/hy/hy_curated_schedule.txtwebapp/data/languages/hyw/hyw_curated_schedule.txtwebapp/data/languages/ia/ia_curated_schedule.txtwebapp/data/languages/id/id_curated_schedule.txtwebapp/data/languages/id/id_daily_words.txtwebapp/data/languages/ie/ie_curated_schedule.txtwebapp/data/languages/is/is_curated_schedule.txtwebapp/data/languages/it/it_curated_schedule.txtwebapp/data/languages/ka/ka_curated_schedule.txtwebapp/data/languages/ko/ko_curated_schedule.txtwebapp/data/languages/la/la_curated_schedule.txtwebapp/data/languages/lb/lb_curated_schedule.txtwebapp/data/languages/lt/lt_curated_schedule.txtwebapp/data/languages/ltg/ltg_curated_schedule.txtwebapp/data/languages/lv/lv_curated_schedule.txtwebapp/data/languages/mi/mi_curated_schedule.txtwebapp/data/languages/mk/mk_curated_schedule.txtwebapp/data/languages/mn/mn_curated_schedule.txtwebapp/data/languages/mr/mr_curated_schedule.txtwebapp/data/languages/ms/ms_curated_schedule.txtwebapp/data/languages/ms/ms_daily_words.txtwebapp/data/languages/nb/nb_curated_schedule.txtwebapp/data/languages/nds/nds_curated_schedule.txtwebapp/data/languages/ne/ne_curated_schedule.txtwebapp/data/languages/nl/nl_curated_schedule.txtwebapp/data/languages/nn/nn_curated_schedule.txtwebapp/data/languages/oc/oc_curated_schedule.txtwebapp/data/languages/pau/pau_curated_schedule.txtwebapp/data/languages/pl/pl_curated_schedule.txtwebapp/data/languages/pt/pt_curated_schedule.txtwebapp/data/languages/qya/qya_curated_schedule.txtwebapp/data/languages/ro/ro_curated_schedule.txtwebapp/data/languages/ru/ru_curated_schedule.txtwebapp/data/languages/rw/rw_curated_schedule.txtwebapp/data/languages/sk/sk_curated_schedule.txtwebapp/data/languages/sl/sl_curated_schedule.txtwebapp/data/languages/sq/sq_curated_schedule.txtwebapp/data/languages/sq/sq_daily_words.txtwebapp/data/languages/sr/sr_curated_schedule.txtwebapp/data/languages/sv/sv_curated_schedule.txtwebapp/data/languages/tk/tk_curated_schedule.txtwebapp/data/languages/tl/tl_curated_schedule.txtwebapp/data/languages/tl/tl_daily_words.txtwebapp/data/languages/tlh/tlh_curated_schedule.txtwebapp/data/languages/tr/tr_curated_schedule.txtwebapp/data/languages/uk/uk_curated_schedule.txtwebapp/data/languages/ur/ur_curated_schedule.txtwebapp/data/languages/uz/SOURCES.mdwebapp/data/languages/uz/uz_curated_schedule.txtwebapp/data/languages/vi/vi_curated_schedule.txtwebapp/data/languages/yo/SOURCES.mdwebapp/data/languages/yo/yo_curated_schedule.txt
✅ Files skipped from review due to trivial changes (40)
- webapp/data/languages/fa/fa_curated_schedule.txt
- webapp/data/languages/hyw/hyw_curated_schedule.txt
- webapp/data/languages/cs/cs_curated_schedule.txt
- webapp/data/languages/da/da_curated_schedule.txt
- webapp/data/languages/en/en_curated_schedule.txt
- webapp/data/languages/ltg/ltg_curated_schedule.txt
- webapp/data/languages/sv/sv_curated_schedule.txt
- webapp/data/languages/nn/nn_curated_schedule.txt
- webapp/data/languages/bn/bn_curated_schedule.txt
- webapp/data/languages/ko/ko_curated_schedule.txt
- webapp/data/languages/he/he_curated_schedule.txt
- webapp/data/languages/br/br_curated_schedule.txt
- webapp/data/languages/lb/lb_curated_schedule.txt
- webapp/data/languages/mr/mr_curated_schedule.txt
- webapp/data/languages/it/it_curated_schedule.txt
- webapp/data/languages/eu/eu_curated_schedule.txt
- webapp/data/languages/tk/tk_curated_schedule.txt
- webapp/data/languages/fr/fr_curated_schedule.txt
- webapp/data/languages/sq/sq_curated_schedule.txt
- webapp/data/languages/fy/fy_curated_schedule.txt
- webapp/data/languages/sk/sk_curated_schedule.txt
- webapp/data/languages/vi/vi_curated_schedule.txt
- webapp/data/languages/ur/ur_curated_schedule.txt
- webapp/data/languages/mn/mn_curated_schedule.txt
- webapp/data/languages/gd/gd_curated_schedule.txt
- webapp/data/languages/fo/fo_curated_schedule.txt
- webapp/data/languages/lv/lv_curated_schedule.txt
- webapp/data/languages/mk/mk_curated_schedule.txt
- webapp/data/languages/et/et_curated_schedule.txt
- webapp/data/languages/rw/rw_curated_schedule.txt
- webapp/data/languages/la/la_curated_schedule.txt
- webapp/data/languages/oc/oc_curated_schedule.txt
- webapp/data/languages/pau/pau_curated_schedule.txt
- webapp/data/languages/es/es_curated_schedule.txt
- webapp/data/languages/ga/ga_curated_schedule.txt
- webapp/data/languages/az/az_curated_schedule.txt
- webapp/data/languages/tlh/tlh_curated_schedule.txt
- webapp/data/languages/sr/sr_curated_schedule.txt
- webapp/data/languages/nl/nl_curated_schedule.txt
- webapp/data/languages/ka/ka_curated_schedule.txt
🚧 Files skipped from review as they are similar to previous changes (2)
- webapp/data/languages/sq/sq_daily_words.txt
- webapp/data/languages/id/id_daily_words.txt
| def _word_hash(word, lang_code): | ||
| """Hash a word for consistent hashing (must match webapp/app.py).""" | ||
| key = f"{lang_code}:{word}" | ||
| return hashlib.sha256(key.encode()).hexdigest() | ||
|
|
||
|
|
||
| def _day_hash(day_idx, lang_code): | ||
| """Hash a day index for consistent hashing (must match webapp/app.py).""" | ||
| key = f"{lang_code}:day:{day_idx}" | ||
| return hashlib.sha256(key.encode()).hexdigest() | ||
|
|
||
|
|
||
| def get_daily_word_consistent_hash(words, blocklist, day_idx, lang_code): | ||
| """Consistent hashing word selection (must match webapp/app.py).""" | ||
| day_h = _day_hash(day_idx, lang_code) | ||
| candidates = [] | ||
| for word in words: | ||
| if word not in blocklist: | ||
| candidates.append((_word_hash(word, lang_code), word)) | ||
| if not candidates: | ||
| return words[0] if words else "" | ||
| candidates.sort(key=lambda x: x[0]) | ||
| for word_h, word in candidates: | ||
| if word_h >= day_h: | ||
| return word | ||
| return candidates[0][1] |
There was a problem hiding this comment.
Hash comparison type mismatch with webapp/app.py — will produce different word selections.
This script uses hashlib.sha256(...).hexdigest() (string) for hash comparisons, but webapp/app.py uses int.from_bytes(h[:8], "big") (integer). String comparison of hex digests produces lexicographic ordering while integer comparison produces numeric ordering — these yield different results.
This will cause freeze_language() to compute different words than the production app serves, breaking the historical word preservation guarantee.
🐛 Proposed fix to align with webapp/app.py
def _word_hash(word, lang_code):
"""Hash a word for consistent hashing (must match webapp/app.py)."""
key = f"{lang_code}:{word}"
- return hashlib.sha256(key.encode()).hexdigest()
+ h = hashlib.sha256(key.encode()).digest()
+ return int.from_bytes(h[:8], "big")
def _day_hash(day_idx, lang_code):
"""Hash a day index for consistent hashing (must match webapp/app.py)."""
key = f"{lang_code}:day:{day_idx}"
- return hashlib.sha256(key.encode()).hexdigest()
+ h = hashlib.sha256(key.encode()).digest()
+ return int.from_bytes(h[:8], "big")📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| def _word_hash(word, lang_code): | |
| """Hash a word for consistent hashing (must match webapp/app.py).""" | |
| key = f"{lang_code}:{word}" | |
| return hashlib.sha256(key.encode()).hexdigest() | |
| def _day_hash(day_idx, lang_code): | |
| """Hash a day index for consistent hashing (must match webapp/app.py).""" | |
| key = f"{lang_code}:day:{day_idx}" | |
| return hashlib.sha256(key.encode()).hexdigest() | |
| def get_daily_word_consistent_hash(words, blocklist, day_idx, lang_code): | |
| """Consistent hashing word selection (must match webapp/app.py).""" | |
| day_h = _day_hash(day_idx, lang_code) | |
| candidates = [] | |
| for word in words: | |
| if word not in blocklist: | |
| candidates.append((_word_hash(word, lang_code), word)) | |
| if not candidates: | |
| return words[0] if words else "" | |
| candidates.sort(key=lambda x: x[0]) | |
| for word_h, word in candidates: | |
| if word_h >= day_h: | |
| return word | |
| return candidates[0][1] | |
| def _word_hash(word, lang_code): | |
| """Hash a word for consistent hashing (must match webapp/app.py).""" | |
| key = f"{lang_code}:{word}" | |
| h = hashlib.sha256(key.encode()).digest() | |
| return int.from_bytes(h[:8], "big") | |
| def _day_hash(day_idx, lang_code): | |
| """Hash a day index for consistent hashing (must match webapp/app.py).""" | |
| key = f"{lang_code}:day:{day_idx}" | |
| h = hashlib.sha256(key.encode()).digest() | |
| return int.from_bytes(h[:8], "big") | |
| def get_daily_word_consistent_hash(words, blocklist, day_idx, lang_code): | |
| """Consistent hashing word selection (must match webapp/app.py).""" | |
| day_h = _day_hash(day_idx, lang_code) | |
| candidates = [] | |
| for word in words: | |
| if word not in blocklist: | |
| candidates.append((_word_hash(word, lang_code), word)) | |
| if not candidates: | |
| return words[0] if words else "" | |
| candidates.sort(key=lambda x: x[0]) | |
| for word_h, word in candidates: | |
| if word_h >= day_h: | |
| return word | |
| return candidates[0][1] |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/freeze_past_words.py` around lines 42 - 67, The current functions
_word_hash and _day_hash return hex string digests causing lexicographic
comparisons that diverge from webapp/app.py; change both to return the same
integer form used in the app: compute hashlib.sha256(...).digest() and convert
the first 8 bytes to an integer via int.from_bytes(..., "big"); update
get_daily_word_consistent_hash to build candidates with these integer keys (same
tuple shape (key, word)), sort by the integer key and compare numeric values
against the integer day hash so selection matches production; keep function
names _word_hash, _day_hash and get_daily_word_consistent_hash unchanged.
| تقاطع | ||
| واجبه | ||
| حواجز | ||
| بقشيش |
There was a problem hiding this comment.
Frozen Arabic schedule has a duplicate daily word.
بقشيش appears twice (Line 28 and Line 30). Please deduplicate in the freeze/generation step.
Also applies to: 30-30
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/ar/ar_curated_schedule.txt` at line 28, The frozen
Arabic schedule file webapp/data/languages/ar/ar_curated_schedule.txt contains a
duplicated daily word "بقشيش" (appears at lines referenced as 28 and 30); update
the freeze/generation step to deduplicate entries before writing the schedule by
filtering out repeated tokens (e.g., using a Set or unique-by-value filter) so
the generator emits each word only once and then regenerate
ar_curated_schedule.txt to remove the duplicate "بقشيش".
| fotin | ||
| pixar | ||
| senta | ||
| pecar |
There was a problem hiding this comment.
Catalan curated schedule contains duplicate entries.
pecar repeats (Line 20, Line 26) and ànsia repeats (Line 22, Line 48). Please enforce uniqueness when generating curated schedules.
Also applies to: 22-22, 26-26, 48-48
🧰 Tools
🪛 LanguageTool
[grammar] ~20-~20: Error de concordança.
Context: ...imm vejam obria fotin pixar senta pecar sever ànsia ganga revés vinil pecar tenda mango neb...
(CONCORDANCES_ADJ_NOM)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/ca/ca_curated_schedule.txt` at line 20, The curated
schedule contains duplicate entries ("pecar" and "ànsia"); update the
schedule-generation code to enforce uniqueness (e.g., filter/collect items into
a Set before writing) so duplicate tokens are removed before saving the curated
list, and re-generate the Catalan curated schedule to eliminate the repeated
"pecar" and "ànsia" entries; ensure the dedup step runs in the function that
produces the curated output (the generator that writes the curated schedule
file).
| cobre | ||
| torta | ||
| trema | ||
| credo |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify duplicates in gl_curated_schedule.txt
echo "=== Checking for duplicates in Galician schedule ==="
grep -v '^#' webapp/data/languages/gl/gl_curated_schedule.txt | sort | uniq -dRepository: Hugo0/wordle
Length of output: 114
🏁 Script executed:
cat -n webapp/data/languages/gl/gl_curated_schedule.txtRepository: Hugo0/wordle
Length of output: 893
Duplicate word "trema" appears on lines 8 and 40.
"trema" appears twice in the schedule—on line 8 (day 3) and line 40 (day 35). Players will see the same word on two different days, which degrades the game experience.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/gl/gl_curated_schedule.txt` at line 9, The schedule
file gl_curated_schedule.txt contains a duplicate entry "trema" used twice
(appearing for day 3 and day 35); replace one of the occurrences of the token
"trema" with an alternative curated word that does not appear elsewhere in the
file (or remove it) so every scheduled day has a unique word, then run a quick
grep/search for "trema" to confirm only one occurrence remains.
| nizak | ||
| triom | ||
| aneks | ||
| kurva |
There was a problem hiding this comment.
Profane word "kurva" in curated daily schedule.
"kurva" is a profane word (Croatian for a vulgar term). This should be filtered from the daily word schedule to avoid offending players.
Consider adding it to the Croatian blocklist or the global profanity blocklist.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/hr/hr_curated_schedule.txt` at line 53, Remove the
profane entry "kurva" from hr_curated_schedule.txt and add it to the Croatian
profanity blocklist (or the global profanity_blocklist) so it is filtered
programmatically; specifically delete the "kurva" line in
hr_curated_schedule.txt and append "kurva" to the Croatian blocklist file (e.g.,
hr_profanity or profanity_blocklist) used by the scheduler/filtering logic to
ensure it is blocked at runtime.
| papel | ||
| marka | ||
| pines | ||
| burun |
There was a problem hiding this comment.
Duplicate word appears in frozen schedule.
burun is present on both Line 14 and Line 20. Please dedupe the generated schedule to avoid repeated daily answers.
Also applies to: 20-20
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/tr/tr_curated_schedule.txt` at line 14, The frozen
schedule contains a duplicated entry "burun" (appears at lines 14 and 20 in
tr_curated_schedule), so remove the duplicate occurrence and update the schedule
to contain only one "burun"; additionally, update the
schedule-generation/deduplication logic that produces tr_curated_schedule to
filter out repeated words (e.g., use a uniqueness check or set when assembling
daily answers) so future generations cannot emit the same token twice.
| # days: 48 (MIGRATION_DAY_IDX+1 through today) | ||
| удова | ||
| взяти | ||
| обмір | ||
| мілль | ||
| викид | ||
| рибно | ||
| благо | ||
| декан | ||
| спуск | ||
| обряд | ||
| герой | ||
| траса | ||
| розум | ||
| ремзі | ||
| сідні | ||
| тьотя | ||
| захід | ||
| кожен | ||
| тромб | ||
| сокол | ||
| чехун | ||
| царюк | ||
| сцена | ||
| корея | ||
| дечим | ||
| бакал | ||
| лазор | ||
| дотла | ||
| йдучи | ||
| ерзац | ||
| рубці | ||
| йдучи | ||
| криса | ||
| натан | ||
| сукня | ||
| йдучи | ||
| пекти | ||
| бейбі | ||
| молод | ||
| індія | ||
| томмі | ||
| пасок | ||
| житло | ||
| міцно | ||
| суміш | ||
| темне | ||
| гусій | ||
| екран |
There was a problem hiding this comment.
Flag excessive word duplication in the curated schedule.
The word "йдучи" appears 3 times in the 48-day schedule (lines 34, 37, 41), with occurrences very close together. This level of repetition significantly reduces word variety and may frustrate players.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~33-~33: Не узгоджено дієслово з іменником: "йдучи" (вимагає: орудний, інфінітив, давальний) і "ерзац" (ч.р.: називний, знахідний)
Context: ...рюк сцена корея дечим бакал лазор дотла йдучи ерзац рубці йдучи криса натан сукня йдучи пек...
(UK_VERB_NOUN_INFLECTION_AGREEMENT)
[uncategorized] ~37-~37: «криса» - помилкове слово, виправлення: пацюк.
Context: ...кал лазор дотла йдучи ерзац рубці йдучи криса натан сукня йдучи пекти бейбі молод інд...
(UK_SIMPLE_REPLACE)
[uncategorized] ~50-~50: Потенційна помилка: прикметник не узгоджений з іменником: "темне": [с.р.: називний, знахідний] і "гусій": [ч.р.: називний]
Context: ...лод індія томмі пасок житло міцно суміш темне гусій екран
(UK_ADJ_NOUN_INFLECTION_AGREEMENT)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/uk/uk_curated_schedule.txt` around lines 5 - 53, The
curated schedule contains excessive duplication of the word "йдучи" (appears
three times); replace the two extra occurrences of "йдучи" with two unique
Ukrainian words of similar length/frequency to restore variety, ensure the full
48-entry list contains no duplicate entries, and run a simple uniqueness check
(e.g., set membership) on the list to prevent reintroducing duplicates; target
the lines where "йдучи" appears in the schedule for replacement.
| ## kaikki.org (Wiktionary extract) | ||
| - URL: https://kaikki.org/dictionary/Uzbek/ | ||
| - License: CC-BY-SA 3.0 (Wiktionary content) | ||
| - Description: Word list extracted from English Wiktionary's Uzbek entries |
There was a problem hiding this comment.
Source provenance is still not audit-complete for attribution compliance.
This entry lacks reproducibility metadata (snapshot date/version/revision) and explicit attribution handling details required for CC-BY-SA style content. Add those fields so licensing audits are defensible.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/uz/SOURCES.md` around lines 3 - 6, Update the "##
kaikki.org (Wiktionary extract)" SOURCES.md entry to include reproducibility and
attribution metadata: add a snapshot date or revision identifier (e.g.,
"Snapshot date: YYYY-MM-DD" or "Wiktionary revision ID(s)"), the exact version
or export method used (e.g., dump/API export and parameters), and explicit
attribution handling details for CC-BY-SA content (e.g., required attribution
text, link-back obligations, whether modifications were made, and how
share-alike will be satisfied). Keep these fields alongside the existing
URL/License/Description under the same heading so auditors can trace the exact
source and how attribution is applied.
| atọtọ | ||
| alase | ||
| dinku | ||
| disai | ||
| otupa | ||
| bẹẹrẹ | ||
| anago | ||
| iloro | ||
| ihoho | ||
| ọlọwọ | ||
| alase | ||
| ajẹlẹ | ||
| orupo | ||
| upepe | ||
| ẹgbaa | ||
| sufee | ||
| oibaa | ||
| ọkuta | ||
| joṣua | ||
| maapu | ||
| ọmọwu | ||
| oṣelu | ||
| ọjẹlu | ||
| ajola | ||
| ijaye | ||
| wọnwe | ||
| olori | ||
| eekan | ||
| agira | ||
| ẹẹrin | ||
| atupa | ||
| yinnu | ||
| ajayi | ||
| ekura | ||
| yangi | ||
| ikebe | ||
| ewuro | ||
| agẹmọ | ||
| ipade | ||
| nikan | ||
| ọyẹyẹ | ||
| ọghọn | ||
| ikede | ||
| aighọ | ||
| ariwa | ||
| bẹẹrẹ | ||
| ọmama | ||
| riran |
There was a problem hiding this comment.
Flag duplicate words in the curated schedule.
The word list contains duplicates that will repeat within the 48-day cycle:
- "alase" appears at lines 6 and 15
- "bẹẹrẹ" appears at lines 10 and 50
Similar to the Interlingua schedule, these duplicates reduce word variety for players.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/yo/yo_curated_schedule.txt` around lines 5 - 52, The
curated Yoruba schedule contains duplicate entries ("alase" and "bẹẹrẹ") which
will repeat in the 48-day cycle; open the yo_curated_schedule.txt list, remove
or replace the second occurrences of "alase" and "bẹẹrẹ" with unique Yoruba
words so that the file contains 48 distinct words (no duplicates), and verify
there are no other repeated tokens in the list before committing.
There was a problem hiding this comment.
Actionable comments posted: 19
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
webapp/data/languages/eu/eu_daily_words.txt (1)
1-2000:⚠️ Potential issue | 🔴 CriticalFix character encoding for 10 words containing ñ — all are currently 6 characters instead of 5.
The following words use a combining character (n + accent mark) instead of the precomposed ñ character (U+00F1), breaking the 5-letter constraint:
- Line 97: aloña
- Line 110: amañi
- Line 114: amiñi
- Line 213: azaña
- Line 910: iñigo
- Line 1053: koñak
- Line 1319: muñoz
- Line 1510: piñoi
- Line 1625: señor
- Line 2000: ñikad
Replace each with the precomposed ñ character to ensure all words are exactly 5 letters and pass game validation.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/eu/eu_daily_words.txt` around lines 1 - 2000, Replace the five words that currently use a decomposed "n" + combining tilde with the precomposed ñ (U+00F1) so each word is exactly 5 characters: change "aloña", "amañi", "amiñi", "azaña", "iñigo", "koñak", "muñoz", "piñoi", "señor", and "ñikad" to use the single-character ñ (U+00F1) instead of an "n" followed by a combining accent; search for those exact token strings in the eu_daily_words.txt content and update their encoding to the precomposed character so they validate as 5-letter words.scripts/improve_word_lists.py (1)
765-801:⚠️ Potential issue | 🟠 MajorSupplement generation bypasses profanity filtering.
The profanity filter added for daily candidates is not applied when building
supplement_sorted. This allows offensive words to remain accepted guesses (already visible in changed supplement data).Suggested fix
all_supplement = set(existing_supplement) | new_supplement # Remove any that are in the main list (safety) all_supplement -= existing_word_set + # Apply safety filters to supplement as well + all_supplement = { + w for w in all_supplement if w not in blocklist and w not in profanity + } @@ for w in wf_words: if w in existing_word_set: continue if w in all_supplement: continue + if w in blocklist or w in profanity: + continue if w in common_names: continue🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/improve_word_lists.py` around lines 765 - 801, The supplement-generation path is not applying the profanity filter, so offensive words slip into all_supplement/supplement_sorted; update the code to call the same profanity check used for daily candidates whenever building supplements: (1) when creating new_supplement (the set comprehension using is_valid_word), exclude profane words; (2) inside the wf_words loop before adding to wf_new skip words flagged by the profanity predicate; and (3) as a final safety step, run the profanity filter over all_supplement (the union of existing_supplement and new additions) and remove any profane entries before producing supplement_sorted. Use the existing profanity function/s (the same predicate used for daily candidates) to ensure consistent behavior.
♻️ Duplicate comments (2)
scripts/improve_word_lists.py (1)
338-352:⚠️ Potential issue | 🟠 MajorGrapheme-mode dictionary loaders still drop valid words due
isalpha()/codepoint checks.Line 350, Line 369, and Line 385 rely on
isalpha()(and Line 369/Line 385 also rely onlen(w) == 5). This still rejects many valid combining-mark words and under-buildsnative_dict, which can cause false English-contamination removals later.Suggested fix
+import unicodedata +import grapheme + +def _is_letters_or_marks(word: str) -> bool: + return bool(word) and all(unicodedata.category(ch)[0] in {"L", "M"} for ch in word) + def _load_word_file(path: Path) -> set[str]: @@ - if w and w.isalpha(): + if _is_letters_or_marks(w): words.add(w) @@ def load_hunspell_words(lang: str) -> set[str]: @@ - if len(w) == 5 and w.isalpha(): + if grapheme.length(w) == 5 and _is_letters_or_marks(w): words.add(w) @@ def load_leipzig_words(lang: str) -> set[str]: @@ - if len(w) == 5 and w.isalpha(): + if grapheme.length(w) == 5 and _is_letters_or_marks(w): words.add(w)Run this verification to confirm current filters are dropping combining-mark words from grapheme-mode languages:
#!/bin/bash python - <<'PY' from pathlib import Path import unicodedata def has_mark(s: str) -> bool: return any(unicodedata.category(ch).startswith("M") for ch in s) def load_words(path: Path): if not path.exists(): return [] out = [] for line in path.read_text(encoding="utf-8", errors="ignore").splitlines(): w = line.strip().split("\t")[-1].split("/")[0].strip().lower() if w: out.append(w) return out targets = [ Path("scripts/.freq_data/kaikki/hi_words.txt"), Path("scripts/.freq_data/kaikki/bn_words.txt"), Path("scripts/.freq_data/kaikki/mr_words.txt"), Path("scripts/.freq_data/hunspell/hi.dic"), Path("scripts/.freq_data/leipzig/hi"), ] for p in targets: if p.is_dir(): words = [] for f in p.glob("*-words.txt"): words.extend(load_words(f)) label = str(p) else: words = load_words(p) label = str(p) if not words: print(f"{label}: no data") continue with_marks = [w for w in words if has_mark(w)] dropped_by_isalpha = [w for w in with_marks if not w.isalpha()] dropped_by_len5 = [w for w in words if len(w) != 5] print(f"\n{label}") print(f" total={len(words)} with_marks={len(with_marks)}") print(f" mark_words_failing_isalpha={len(dropped_by_isalpha)} sample={dropped_by_isalpha[:8]}") print(f" words_failing_len_eq_5={len(dropped_by_len5)} sample={dropped_by_len5[:8]}") PYAlso applies to: 360-371, 374-387
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/improve_word_lists.py` around lines 338 - 352, The current character checks (in _load_word_file and the other word-loading functions that use w.isalpha() and len(w) == 5) reject valid words containing Unicode combining marks; replace those filters with Unicode-category checks that accept letters and combining marks (e.g., require every character's unicodedata.category to start with "L" or "M" instead of w.isalpha()), and replace byte/codepoint length checks (len(w) == 5) with a grapheme-cluster-aware length test (use the third-party regex module's \X or the grapheme package to count grapheme clusters) so grapheme-mode languages (Hindi/Bengali/Marathi) are preserved. Ensure to import unicodedata and add a short helper like is_letter_or_mark(w: str) and a grapheme_count(w: str) used by the loaders (_load_word_file and the other functions that currently rely on isalpha()/len==5).scripts/download_sources.py (1)
367-368:⚠️ Potential issue | 🟠 MajorKaikki extraction is still code-point based, so grapheme-mode words get dropped.
The runtime side of this PR adds grapheme-aware handling, but these filters still use code-point
len()plusisalpha()/lower(). Valid combining-mark entries are filtered out before they ever reach.freq_data/kaikki.#!/bin/bash set -euo pipefail python - <<'PY' import unicodedata samples = ["अपलाभिया", "तक्षशिला", "স্পাইগিরি"] for word in samples: print( word, "len=", len(word), "isalpha=", word.isalpha(), "categories=", [unicodedata.category(ch) for ch in word], ) PY rg -n 'len\(w\) == 5|len\(word\) == 5|w\.isalpha\(\)|word\.isalpha\(\)|w == w\.lower\(\)|word == word\.lower\(\)' scripts/download_sources.pyAlso applies to: 386-386, 417-418, 441-443
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/download_sources.py` around lines 367 - 368, The extraction filters use code-point checks (len/isalpha/lower) so grapheme clusters are dropped; replace those with grapheme-aware checks using the regex module: for each candidate (the expression building words), require the string matches a grapheme-count pattern like r'^(?:\X){5}$' to enforce exactly five graphemes, require it matches r'^[\p{L}\p{M}]+$' to allow base letters plus combining marks (not raw code-point isalpha), and keep the case check using casefold (w == w.casefold()) instead of w == w.lower(); update the occurrences where words is built (the sorted(...) comprehension) and the other similar spots mentioned (around the other three occurrences) to use these regex-based predicates and import the regex module.
🧹 Nitpick comments (5)
webapp/data/languages/et/et_daily_words.txt (1)
4-1974: Add an automated lexicon QA check in CI for this file.Given the size of this update, it would help to enforce: uniqueness, exact length policy (letter/grapheme per language mode), Unicode normalization (NFC), and blocked-word screening in a pre-commit/CI validator to prevent silent data regressions.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/et/et_daily_words.txt` around lines 4 - 1974, Add a CI/pre-commit lexicon validator (e.g. validate_lexicon / validateLexicon job) that runs on changes to et_daily_words.txt and enforces: 1) uniqueness (fail if duplicate entries), 2) exact-length policy using grapheme/cluser counts per language mode (reject entries that are not the expected grapheme length), 3) Unicode NFC normalization (normalize input and fail if not NFC), and 4) blocked-word screening against a curated denylist; the job should print clear diagnostics and exit non-zero on any violation so PRs cannot silently regress the lexicon.webapp/data/languages/ha/language_config.json (1)
2-7: Setgrapheme_modeexplicitly for Hausa.This works with today’s optional handling, but adding
"grapheme_mode": "false"makes intent explicit and avoids accidental behavior drift if defaults/merge logic change.Proposed diff
{ "language_code": "ha", "name": "Hausa", "name_native": "Hausa", "timezone": "Africa/Lagos", "right_to_left": "false", + "grapheme_mode": "false",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ha/language_config.json` around lines 2 - 7, Add an explicit "grapheme_mode": "false" entry to the Hausa language config object in language_config.json (near the existing "right_to_left" and "timezone" keys) so the file explicitly sets grapheme handling for the "ha" language; ensure the key is a sibling of "right_to_left" (not nested under "meta") and uses the string "false" to match existing config value types.webapp/data/languages/ha/SOURCES.md (1)
3-9: Add source snapshot metadata for reproducibility.Please include per-source snapshot details (e.g., dump filename/version and access date). This makes provenance and licensing audits much easier later.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/ha/SOURCES.md` around lines 3 - 9, For each listed source heading ("Leipzig Corpora Collection" and "kaikki.org (Wiktionary extract)") add snapshot metadata: include the exact dump filename or version (e.g., corpus file name or Wiktionary dump identifier) and the date you accessed or downloaded it; place these as new fields under each source (e.g., "Snapshot: <filename/version>", "Accessed: <YYYY-MM-DD>") so provenance and licensing audits can reproduce the exact data used.webapp/data/languages/gl/gl_daily_words.txt (1)
1-2000: Add an automated lexical QA gate for bulk list editsGiven the size of this data churn, add a pre-commit/CI check for: duplicate entries, canonical (accent-folded) duplicates, length=5 grapheme/char constraints (per language mode), and dictionary provenance coverage for new tokens. This will prevent bad daily words from landing again.
I can draft the validator script and a minimal CI step if you want.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/gl/gl_daily_words.txt` around lines 1 - 2000, The bulk edit to webapp/data/languages/gl/gl_daily_words.txt needs an automated QA gate: add a validator script (e.g., validate_daily_words) that loads the daily words list and fails on (1) exact duplicate entries, (2) accent-folded/canonical duplicates (normalize accents/diacritics and compare), (3) words whose grapheme cluster length != 5 per language mode (use a grapheme-aware counter, not codepoint length), and (4) new tokens lacking dictionary provenance by checking against our lexicon sources (wordlists/lexicons) and reporting missing sources; wire this script into pre-commit/CI (pre-commit hook and the CI job that modifies or validates the daily words file) so any violation on webapp/data/languages/gl/gl_daily_words.txt fails the commit/CI run.webapp/data/languages/hr/hr_daily_words.txt (1)
970-974: Consider lexical diversity in consecutive pronoun forms.Lines 970-974 add five consecutive inflected forms of the Croatian pronoun "on" (he/it): njega, njemu, njima, njime, njome. While these are valid 5-letter Croatian words, having multiple grammatical forms of the same pronoun clustered together may reduce lexical diversity in the daily word selection.
Consider whether including all inflected forms adds value to the player experience, or if it would be better to favor a broader range of distinct root words.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@webapp/data/languages/hr/hr_daily_words.txt` around lines 970 - 974, The block adds five consecutive inflected Croatian pronoun forms (njega, njemu, njima, njime, njome) which reduces lexical diversity in daily selection; update hr_daily_words.txt to avoid clustering multiple inflections of the same lemma by keeping at most one representative form (e.g., keep "njega") and replace the other four entries with distinct root words (different lemmas) of similar length or thematic value so the daily pool favors varied vocabulary rather than repeated inflections.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/download_sources.py`:
- Around line 460-515: The CLI currently ignores failures from download
functions in main, so "all" and single-command runs always exit 0; change each
call site in main to detect errors and fail early or aggregate failures: have
download_leipzig, download_hunspell, download_kbbi, download_katla,
download_shabdle, extract_kaikki, download_kaikki either return a boolean (or
raise on error), then in main capture those returns (or catch exceptions) for
the "all" flow and each branch, accumulate any failures and call sys.exit(1)
when any downloader failed; also ensure single-command branches propagate
nonzero exit on failure instead of silently printing Done.
- Around line 301-307: The current download_katla() early return only checks for
answers.txt, which leaves a half-installed state if valid.txt is missing; update
download_katla() to treat Katla as complete only when both answers.txt and
valid.txt exist by checking both target_dir / "answers.txt" and target_dir /
"valid.txt" before printing the "already downloaded" message and returning,
otherwise proceed with the download/creation steps so both files are ensured;
reference the download_katla() function and the "answers.txt" and "valid.txt"
paths when making this change.
- Around line 410-424: The current logic always continues when a definitions
file exists, which prevents falling back to remote Kaikki if local extraction
yields no valid words; update the block around DEFINITIONS_DIR /
f"{lang}_en.json" so that the try/except only performs the continue when a
non-empty words list is produced (i.e., move the continue inside the "if words:"
branch after writing out_file), and otherwise allow execution to proceed to the
remote-download path (also ensure exceptions fall through to the remote fallback
rather than swallowing them).
- Around line 203-214: Guard the unprotected subprocess.run calls that invoke
external binaries (dpkg, apt, sudo, git) in download_sources.py: before calling
subprocess.run(["dpkg", ...]) / subprocess.run(["sudo","apt",...]) and git
invocations, check availability with shutil.which("dpkg") / shutil.which("apt")
/ shutil.which("sudo") / shutil.which("git") and skip or log a clear warning if
missing, or alternatively wrap each subprocess.run in a try/except
FileNotFoundError block to handle missing binaries gracefully; update the code
paths around the package install logic (the block using subprocess.run with
variables package and result) and the git call sites to use these guards so the
script continues instead of raising FileNotFoundError.
- Around line 333-348: The shabdle download is unused: either integrate it into
the Hindi pipeline or remove it. To integrate, add "shabdle" to the
EXTRA_SOURCES set in improve_word_lists.py, implement a loader function
load_shabdle_words() that reads FREQ_DATA/"shabdle"/"hi_words.txt" (matching
download_shabdle() output) and returns the word list, and update add_language.py
to call that loader when processing Hindi; also ensure
webapp/data/languages/hi/SOURCES.md documents "shabdle". Alternatively, remove
the download_shabdle() function and delete the shabdle entry from
webapp/data/languages/hi/SOURCES.md so there is no stale download.
In `@scripts/improve_word_lists.py`:
- Around line 693-701: The en_removed metric only subtracts removals from
scored; capture lengths for both lists before filtering (e.g., scored_pre2 =
len(scored); unscored_pre = len(unscored)), then apply the english filter using
is_english_contamination on scored and unscored, and set en_removed =
(scored_pre2 - len(scored)) + (unscored_pre - len(unscored)) so the printed
metric reflects removals from both lists (adjust any subsequent uses/prints of
en_removed accordingly).
- Around line 1070-1087: The report currently forces contamination = set() when
native_dict is empty, causing the printed contamination percentages to show 0.0%
incorrectly; update the logic around native_dict, contamination and the print
formatting so percentages are only computed when native_dict (and words/daily)
are present and non-empty—e.g. compute contamination_pct and daily_contam_pct
conditionally (using None or "N/A" when native_dict is missing) and adjust the
two print statements that output English overlaps and "Contamination (EN & not
native)" and the daily contamination line to display "N/A" or skip the
percentage when you cannot evaluate contamination; refer to variables
native_dict, contamination, en_overlap, daily_contam and the print blocks in the
shown diff to locate where to change the formatting.
In `@webapp/data/languages/da/da_5words_supplement.txt`:
- Line 490: Remove the newly added offensive words from the Danish supplement by
deleting the entries "cunth", "negro", "nigga", and "pussy" from the
da_5words_supplement.txt file (they currently appear as individual lines in the
list); ensure no duplicate variants remain elsewhere in the file, update any
related tests or snapshots that reference these exact tokens, and re-run the
wordlist validation to confirm only acceptable Danish words remain.
- Around line 1056-1057: The supplemental Danish word list contains many
OCR/noise artefacts (e.g., tokens like "hjaip", "hjæip", "iader", "iiiie",
"ldiot", "lsaac", "lzzie") that must not be treated as valid guesses; open
webapp/data/languages/da/da_5words_supplement.txt and remove or replace all
non-Danish/garbage tokens in the affected ranges (around lines 1056–1057,
1134–1184, 1398–1494), and validate the final list against a trusted Danish
dictionary or wordlist to ensure only legitimate Danish words remain (don’t
reintroduce OCR artefacts). Ensure the cleaned file preserves format and
encoding so the game won’t load corrupted entries.
In `@webapp/data/languages/da/da_daily_words.txt`:
- Line 953: The Danish daily-words list contains the English word "lemon" which
must be removed or replaced with the correct Danish term; locate the entry
"lemon" in the da_daily_words.txt daily words list and replace it with "citron"
(or remove the line if the list should not include that lemma), then run the
list validation/lint step that checks for English contamination to confirm the
change.
In `@webapp/data/languages/de/de_daily_words.txt`:
- Line 7: Remove the token "abhat" from the German daily words list in
de_daily_words.txt: locate the exact entry "abhat" and delete that line
(preserving file encoding and newline conventions) so it is no longer selected
as a daily word; do not modify other entries (e.g., keep "bälde") or surrounding
formatting.
In `@webapp/data/languages/es/es_daily_words.txt`:
- Line 82: Remove the abbreviation-style entries "aprox", "excmo", and "izqdo"
from the Spanish daily-answer list (they are not valid Wordle-style words) by
deleting those lines in the es_daily_words.txt data set or replacing them with
appropriate five-letter Spanish words; update the daily-answer pool so only full
words (not shorthand/abbreviations) remain and run any data validation script to
ensure no other abbreviation-style tokens exist.
- Line 810: Replace the nonstandard entry "harpa" with the standard Spanish form
"arpa" in the es_daily_words.txt daily pool; locate the token "harpa" (currently
at the mentioned entry) and update it to "arpa" so the daily answers use the
common orthography for fairness and guessability.
- Line 566: Replace the malformed token "dupdo" in es_daily_words.txt with the
correct Spanish word or remove it if it was inserted accidentally; locate the
entry "dupdo" (the unexpected token in the daily words list) and either fix its
spelling to the intended word consistent with the other entries or delete the
line to prevent a broken daily solution.
In `@webapp/data/languages/fr/fr_daily_words.txt`:
- Line 1511: The daily-answer list contains duplicate-equivalent entries "roder"
and "rôder" (the language's diacritic_map normalizes ô→o), so remove the ASCII
variant "roder" and keep the accented canonical "rôder" in the French daily pool
to avoid duplicate-normalized answers; update the list to contain only one of
these tokens ("rôder") so validation/win logic treats it uniquely.
- Line 543: Remove the proper nouns "ivana" and "samoa" from the FR daily pool
in webapp/data/languages/fr/fr_daily_words.txt and add them to the French
blocklist in webapp/data/languages/fr/fr_blocklist.txt (or, alternatively,
simply delete them from fr_daily_words.txt); ensure the entries "ivana" and
"samoa" are added in the same format as existing blocklist items (matching
patterns used for other names like "diana" and places like "yukon") so they are
consistently excluded from future daily pools.
In `@webapp/data/languages/gl/gl_daily_words.txt`:
- Around line 752-760: The daily-answer pool contains stress-marked
infinitive-looking entries (e.g., "fálar", "págar", "pásar", "rémar", "rífar",
"xútar" and the block showing "fálar / féd er / fémur / fíxer / fóder / fósil /
fúmar / fúrar / fútil") that are not valid standalone Galician lemmas; remove
these accented infinitive forms from the list or validate each one against the
same native-dictionary validation used by the contamination filter (use the
contamination filter's validation routine) and only keep entries that pass that
native-dictionary check so they no longer surface as daily answers.
- Around line 833-837: The daily Galician word list contains accent-folding
collisions (e.g., guíar vs guiar, gálar vs galar, gánar/gáñar vs ganar) that
produce duplicate canonical forms after diacritic stripping; update the word
list to remove or de-duplicate accented variants (remove accented duplicates
like guíar, gálar, gáñar, etc.), or mark these specific entries as excluded from
daily rotation, or change the normalization logic to preserve distinguishing
accents (adjust the normalization function used at answer-checking to avoid
stripping diacritics for these words); specifically locate the entries (guíar,
gábar, gálar, gánar, gáñar) in the daily words file and either delete the
accented duplicates or flag them for exclusion, or modify the normalization
routine so these collisions do not produce duplicate outcomes.
In `@webapp/data/languages/it/it_daily_words.txt`:
- Line 686: Remove or replace the English word "fifty" introduced in
it_daily_words.txt (the daily answer candidate at the diff) because the file is
used directly for Italian daily selections; edit the entry so the file contains
only Italian words (either delete the "fifty" line or substitute it with a
correct Italian word/translation) and save the file to prevent non-Italian
answers from surfacing.
---
Outside diff comments:
In `@scripts/improve_word_lists.py`:
- Around line 765-801: The supplement-generation path is not applying the
profanity filter, so offensive words slip into all_supplement/supplement_sorted;
update the code to call the same profanity check used for daily candidates
whenever building supplements: (1) when creating new_supplement (the set
comprehension using is_valid_word), exclude profane words; (2) inside the
wf_words loop before adding to wf_new skip words flagged by the profanity
predicate; and (3) as a final safety step, run the profanity filter over
all_supplement (the union of existing_supplement and new additions) and remove
any profane entries before producing supplement_sorted. Use the existing
profanity function/s (the same predicate used for daily candidates) to ensure
consistent behavior.
In `@webapp/data/languages/eu/eu_daily_words.txt`:
- Around line 1-2000: Replace the five words that currently use a decomposed "n"
+ combining tilde with the precomposed ñ (U+00F1) so each word is exactly 5
characters: change "aloña", "amañi", "amiñi", "azaña", "iñigo", "koñak",
"muñoz", "piñoi", "señor", and "ñikad" to use the single-character ñ (U+00F1)
instead of an "n" followed by a combining accent; search for those exact token
strings in the eu_daily_words.txt content and update their encoding to the
precomposed character so they validate as 5-letter words.
---
Duplicate comments:
In `@scripts/download_sources.py`:
- Around line 367-368: The extraction filters use code-point checks
(len/isalpha/lower) so grapheme clusters are dropped; replace those with
grapheme-aware checks using the regex module: for each candidate (the expression
building words), require the string matches a grapheme-count pattern like
r'^(?:\X){5}$' to enforce exactly five graphemes, require it matches
r'^[\p{L}\p{M}]+$' to allow base letters plus combining marks (not raw
code-point isalpha), and keep the case check using casefold (w == w.casefold())
instead of w == w.lower(); update the occurrences where words is built (the
sorted(...) comprehension) and the other similar spots mentioned (around the
other three occurrences) to use these regex-based predicates and import the
regex module.
In `@scripts/improve_word_lists.py`:
- Around line 338-352: The current character checks (in _load_word_file and the
other word-loading functions that use w.isalpha() and len(w) == 5) reject valid
words containing Unicode combining marks; replace those filters with
Unicode-category checks that accept letters and combining marks (e.g., require
every character's unicodedata.category to start with "L" or "M" instead of
w.isalpha()), and replace byte/codepoint length checks (len(w) == 5) with a
grapheme-cluster-aware length test (use the third-party regex module's \X or the
grapheme package to count grapheme clusters) so grapheme-mode languages
(Hindi/Bengali/Marathi) are preserved. Ensure to import unicodedata and add a
short helper like is_letter_or_mark(w: str) and a grapheme_count(w: str) used by
the loaders (_load_word_file and the other functions that currently rely on
isalpha()/len==5).
---
Nitpick comments:
In `@webapp/data/languages/et/et_daily_words.txt`:
- Around line 4-1974: Add a CI/pre-commit lexicon validator (e.g.
validate_lexicon / validateLexicon job) that runs on changes to
et_daily_words.txt and enforces: 1) uniqueness (fail if duplicate entries), 2)
exact-length policy using grapheme/cluser counts per language mode (reject
entries that are not the expected grapheme length), 3) Unicode NFC normalization
(normalize input and fail if not NFC), and 4) blocked-word screening against a
curated denylist; the job should print clear diagnostics and exit non-zero on
any violation so PRs cannot silently regress the lexicon.
In `@webapp/data/languages/gl/gl_daily_words.txt`:
- Around line 1-2000: The bulk edit to
webapp/data/languages/gl/gl_daily_words.txt needs an automated QA gate: add a
validator script (e.g., validate_daily_words) that loads the daily words list
and fails on (1) exact duplicate entries, (2) accent-folded/canonical duplicates
(normalize accents/diacritics and compare), (3) words whose grapheme cluster
length != 5 per language mode (use a grapheme-aware counter, not codepoint
length), and (4) new tokens lacking dictionary provenance by checking against
our lexicon sources (wordlists/lexicons) and reporting missing sources; wire
this script into pre-commit/CI (pre-commit hook and the CI job that modifies or
validates the daily words file) so any violation on
webapp/data/languages/gl/gl_daily_words.txt fails the commit/CI run.
In `@webapp/data/languages/ha/language_config.json`:
- Around line 2-7: Add an explicit "grapheme_mode": "false" entry to the Hausa
language config object in language_config.json (near the existing
"right_to_left" and "timezone" keys) so the file explicitly sets grapheme
handling for the "ha" language; ensure the key is a sibling of "right_to_left"
(not nested under "meta") and uses the string "false" to match existing config
value types.
In `@webapp/data/languages/ha/SOURCES.md`:
- Around line 3-9: For each listed source heading ("Leipzig Corpora Collection"
and "kaikki.org (Wiktionary extract)") add snapshot metadata: include the exact
dump filename or version (e.g., corpus file name or Wiktionary dump identifier)
and the date you accessed or downloaded it; place these as new fields under each
source (e.g., "Snapshot: <filename/version>", "Accessed: <YYYY-MM-DD>") so
provenance and licensing audits can reproduce the exact data used.
In `@webapp/data/languages/hr/hr_daily_words.txt`:
- Around line 970-974: The block adds five consecutive inflected Croatian
pronoun forms (njega, njemu, njima, njime, njome) which reduces lexical
diversity in daily selection; update hr_daily_words.txt to avoid clustering
multiple inflections of the same lemma by keeping at most one representative
form (e.g., keep "njega") and replace the other four entries with distinct root
words (different lemmas) of similar length or thematic value so the daily pool
favors varied vocabulary rather than repeated inflections.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 411e3a34-640d-4120-b753-c900f79c282e
📒 Files selected for processing (43)
scripts/download_sources.pyscripts/improve_word_lists.pywebapp/data/languages/ca/ca_daily_words.txtwebapp/data/languages/cs/cs_daily_words.txtwebapp/data/languages/da/da_5words_supplement.txtwebapp/data/languages/da/da_daily_words.txtwebapp/data/languages/de/de_daily_words.txtwebapp/data/languages/es/es_daily_words.txtwebapp/data/languages/et/et_daily_words.txtwebapp/data/languages/eu/eu_daily_words.txtwebapp/data/languages/fr/fr_daily_words.txtwebapp/data/languages/gl/gl_daily_words.txtwebapp/data/languages/ha/SOURCES.mdwebapp/data/languages/ha/ha_5words.txtwebapp/data/languages/ha/ha_characters.txtwebapp/data/languages/ha/ha_curated_schedule.txtwebapp/data/languages/ha/ha_keyboard.jsonwebapp/data/languages/ha/language_config.jsonwebapp/data/languages/hr/hr_daily_words.txtwebapp/data/languages/hu/hu_daily_words.txtwebapp/data/languages/is/is_daily_words.txtwebapp/data/languages/it/it_daily_words.txtwebapp/data/languages/lt/lt_daily_words.txtwebapp/data/languages/lv/lv_daily_words.txtwebapp/data/languages/nb/nb_daily_words.txtwebapp/data/languages/nl/nl_daily_words.txtwebapp/data/languages/nn/nn_daily_words.txtwebapp/data/languages/pa/SOURCES.mdwebapp/data/languages/pa/language_config.jsonwebapp/data/languages/pa/pa_5words.txtwebapp/data/languages/pa/pa_characters.txtwebapp/data/languages/pa/pa_curated_schedule.txtwebapp/data/languages/pa/pa_keyboard.jsonwebapp/data/languages/pt/pt_5words_supplement.txtwebapp/data/languages/pt/pt_daily_words.txtwebapp/data/languages/ro/ro_daily_words.txtwebapp/data/languages/sk/sk_daily_words.txtwebapp/data/languages/sl/sl_daily_words.txtwebapp/data/languages/sv/sv_daily_words.txtwebapp/data/languages/tr/tr_daily_words.txtwebapp/data/languages/yo/yo_5words.txtwebapp/data/languages/yo/yo_characters.txtwebapp/data/languages/yo/yo_keyboard.json
💤 Files with no reviewable changes (1)
- webapp/data/languages/lt/lt_daily_words.txt
✅ Files skipped from review due to trivial changes (3)
- webapp/data/languages/ha/ha_curated_schedule.txt
- webapp/data/languages/ha/ha_characters.txt
- webapp/data/languages/ha/ha_keyboard.json
| # Check if package is installed | ||
| result = subprocess.run(["dpkg", "-s", package], capture_output=True, text=True) | ||
| if result.returncode != 0: | ||
| print(f" Installing {package}...") | ||
| result = subprocess.run( | ||
| ["sudo", "apt", "install", "-y", package], | ||
| capture_output=True, | ||
| text=True, | ||
| ) | ||
| if result.returncode != 0: | ||
| print(f" FAILED to install {package}: {result.stderr}") | ||
| continue |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
uname -s
for bin in dpkg sudo apt git; do
if command -v "$bin" >/dev/null 2>&1; then
echo "$bin: present"
else
echo "$bin: missing"
fi
done
rg -n -C2 '"dpkg"|"sudo"|"apt"|"git"' scripts/download_sources.pyRepository: Hugo0/wordle
Length of output: 669
🏁 Script executed:
#!/bin/bash
# Check file size and read relevant sections
wc -l scripts/download_sources.py
echo "---"
# Read the first location (lines 195-225)
sed -n '195,225p' scripts/download_sources.py
echo "---"
# Read the second location (lines 245-280)
sed -n '245,280p' scripts/download_sources.pyRepository: Hugo0/wordle
Length of output: 2413
🏁 Script executed:
#!/bin/bash
# Check file structure from the beginning
head -50 scripts/download_sources.py
echo "---"
# Check for try-except blocks around the subprocess calls
sed -n '250,275p' scripts/download_sources.py
echo "---"
# Search for any try-except blocks in the file
rg -n 'try:|except' scripts/download_sources.pyRepository: Hugo0/wordle
Length of output: 2889
🏁 Script executed:
#!/bin/bash
# Check context around lines 195-235
sed -n '180,240p' scripts/download_sources.py
echo "=== SEPARATOR ==="
# Check context around lines 240-290
sed -n '235,295p' scripts/download_sources.pyRepository: Hugo0/wordle
Length of output: 4382
Guard against missing binaries before calling subprocess.run().
The subprocess calls at lines 203–214 (dpkg, apt, sudo) and 257–270 (git) are unguarded. If any of these binaries is missing, subprocess.run() raises FileNotFoundError before the returncode check is reached, causing the script to abort instead of skipping the source gracefully. Use shutil.which() to check binary availability first, or wrap these calls in try-except blocks.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/download_sources.py` around lines 203 - 214, Guard the unprotected
subprocess.run calls that invoke external binaries (dpkg, apt, sudo, git) in
download_sources.py: before calling subprocess.run(["dpkg", ...]) /
subprocess.run(["sudo","apt",...]) and git invocations, check availability with
shutil.which("dpkg") / shutil.which("apt") / shutil.which("sudo") /
shutil.which("git") and skip or log a clear warning if missing, or alternatively
wrap each subprocess.run in a try/except FileNotFoundError block to handle
missing binaries gracefully; update the code paths around the package install
logic (the block using subprocess.run with variables package and result) and the
git call sites to use these guards so the script continues instead of raising
FileNotFoundError.
| def download_katla(): | ||
| """Download Katla Indonesian Wordle word lists.""" | ||
| target_dir = FREQ_DATA / "katla" | ||
| answers_file = target_dir / "answers.txt" | ||
| if answers_file.exists(): | ||
| print(f" Katla: already downloaded ({answers_file})") | ||
| return |
There was a problem hiding this comment.
Treat Katla as complete only when both outputs exist.
scripts/improve_word_lists.py, Lines 274-399, loads both answers.txt and valid.txt, but this guard only checks answers.txt. A run that writes answers.txt and then fails before the whitelist download becomes permanently half-installed on rerun.
💡 Proposed fix
def download_katla():
"""Download Katla Indonesian Wordle word lists."""
target_dir = FREQ_DATA / "katla"
answers_file = target_dir / "answers.txt"
- if answers_file.exists():
- print(f" Katla: already downloaded ({answers_file})")
+ valid_file = target_dir / "valid.txt"
+ if answers_file.exists() and valid_file.exists():
+ print(f" Katla: already downloaded ({answers_file}, {valid_file})")
return📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| def download_katla(): | |
| """Download Katla Indonesian Wordle word lists.""" | |
| target_dir = FREQ_DATA / "katla" | |
| answers_file = target_dir / "answers.txt" | |
| if answers_file.exists(): | |
| print(f" Katla: already downloaded ({answers_file})") | |
| return | |
| def download_katla(): | |
| """Download Katla Indonesian Wordle word lists.""" | |
| target_dir = FREQ_DATA / "katla" | |
| answers_file = target_dir / "answers.txt" | |
| valid_file = target_dir / "valid.txt" | |
| if answers_file.exists() and valid_file.exists(): | |
| print(f" Katla: already downloaded ({answers_file}, {valid_file})") | |
| return |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/download_sources.py` around lines 301 - 307, The current
download_katla() early return only checks for answers.txt, which leaves a
half-installed state if valid.txt is missing; update download_katla() to treat
Katla as complete only when both answers.txt and valid.txt exist by checking
both target_dir / "answers.txt" and target_dir / "valid.txt" before printing the
"already downloaded" message and returning, otherwise proceed with the
download/creation steps so both files are ensured; reference the
download_katla() function and the "answers.txt" and "valid.txt" paths when
making this change.
| def download_shabdle(): | ||
| """Download Shabdle Hindi Wordle word list.""" | ||
| target_dir = FREQ_DATA / "shabdle" | ||
| words_file = target_dir / "hi_words.txt" | ||
| if words_file.exists(): | ||
| print(f" Shabdle: already downloaded ({words_file})") | ||
| return | ||
|
|
||
| target_dir.mkdir(parents=True, exist_ok=True) | ||
| url = "https://raw.githubusercontent.com/kach/shabdle/main/hi.wl" | ||
| raw_path = target_dir / "hi.wl" | ||
| if download_file(url, raw_path, "Shabdle Hindi word list"): | ||
| words = [w.strip() for w in raw_path.read_text(encoding="utf-8").splitlines() if w.strip()] | ||
| words_file.write_text("\n".join(words) + "\n", encoding="utf-8") | ||
| print(f" Shabdle: {len(words)} Hindi words → {words_file}") | ||
| raw_path.unlink(missing_ok=True) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C2 'shabdle|hi_words\.txt|\.freq_data/shabdle' scripts webapp testsRepository: Hugo0/wordle
Length of output: 3564
🏁 Script executed:
cat -n scripts/improve_word_lists.py | head -100Repository: Hugo0/wordle
Length of output: 3094
🏁 Script executed:
sed -n '274,399p' scripts/improve_word_lists.pyRepository: Hugo0/wordle
Length of output: 4336
🏁 Script executed:
sed -n '573,611p' scripts/add_language.pyRepository: Hugo0/wordle
Length of output: 1594
🏁 Script executed:
# Search for how FREQ_DATA or .freq_data directories are discovered/loaded
rg -n 'FREQ_DATA|\.freq_data|glob.*freq|listdir.*freq' scriptsRepository: Hugo0/wordle
Length of output: 1305
🏁 Script executed:
# Check if SOURCES.md has generation scripts or comments
head -20 webapp/data/languages/hi/SOURCES.mdRepository: Hugo0/wordle
Length of output: 502
🏁 Script executed:
# Search for scripts that generate SOURCES.md files
rg -l 'SOURCES\.md|write.*sources' scriptsRepository: Hugo0/wordle
Length of output: 109
🏁 Script executed:
# Check if there's any documentation about how language sources are defined
rg -n 'shabdle' scripts/add_language.pyRepository: Hugo0/wordle
Length of output: 38
🏁 Script executed:
# Verify if shabdle should have been added to EXTRA_SOURCES for Hindi
git log -p --all -S "shabdle" -- scripts/add_language.py | head -100Repository: Hugo0/wordle
Length of output: 38
🏁 Script executed:
# Check if download_shabdle is actually invoked in the main download pipeline
rg -n 'download_shabdle|"shabdle"' scripts/download_sources.pyRepository: Hugo0/wordle
Length of output: 317
🏁 Script executed:
# Look for any TODOs or comments about shabdle
rg -n -i 'TODO|FIXME|XXX' scripts/download_sources.py | grep -i shabdleRepository: Hugo0/wordle
Length of output: 38
🏁 Script executed:
# Check the main download call to see if shabdle is included
sed -n '480,515p' scripts/download_sources.pyRepository: Hugo0/wordle
Length of output: 1245
Add shabdle to the Hindi word generation pipeline or remove the unused download.
The download_shabdle() function creates scripts/.freq_data/shabdle/hi_words.txt, but this data is never loaded. The improve_word_lists.py module defines extra sources for Hindi as {"leipzig", "hunspell", "kaikki"} (line 291), missing shabdle entirely. No load_shabdle_words() function exists, and add_language.py makes no provision for it. Either integrate shabdle by adding it to EXTRA_SOURCES and implementing a loader, or remove the download function and the stale reference in webapp/data/languages/hi/SOURCES.md.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/download_sources.py` around lines 333 - 348, The shabdle download is
unused: either integrate it into the Hindi pipeline or remove it. To integrate,
add "shabdle" to the EXTRA_SOURCES set in improve_word_lists.py, implement a
loader function load_shabdle_words() that reads
FREQ_DATA/"shabdle"/"hi_words.txt" (matching download_shabdle() output) and
returns the word list, and update add_language.py to call that loader when
processing Hindi; also ensure webapp/data/languages/hi/SOURCES.md documents
"shabdle". Alternatively, remove the download_shabdle() function and delete the
shabdle entry from webapp/data/languages/hi/SOURCES.md so there is no stale
download.
| def main(): | ||
| parser = argparse.ArgumentParser(description="Download external word list sources") | ||
| subparsers = parser.add_subparsers(dest="command") | ||
|
|
||
| subparsers.add_parser("all", help="Download everything") | ||
|
|
||
| leipzig_cmd = subparsers.add_parser("leipzig", help="Download Leipzig Corpora") | ||
| leipzig_cmd.add_argument("langs", nargs="*", default=list(LEIPZIG_CORPORA.keys())) | ||
|
|
||
| subparsers.add_parser("hunspell", help="Download Hunspell dictionaries") | ||
| subparsers.add_parser("kbbi", help="Download KBBI Indonesian dictionary") | ||
| subparsers.add_parser("katla", help="Download Katla Indonesian Wordle lists") | ||
| subparsers.add_parser("shabdle", help="Download Shabdle Hindi Wordle word list") | ||
| subparsers.add_parser("extract-kaikki", help="Extract word lists from existing kaikki JSONs") | ||
|
|
||
| kaikki_cmd = subparsers.add_parser( | ||
| "kaikki-download", help="Download kaikki.org data for languages" | ||
| ) | ||
| kaikki_cmd.add_argument("langs", nargs="*", default=list(KAIKKI_LANGS.keys())) | ||
|
|
||
| args = parser.parse_args() | ||
|
|
||
| if args.command == "all": | ||
| print("=== Downloading all sources ===\n") | ||
| print("--- Leipzig Corpora ---") | ||
| download_leipzig(list(LEIPZIG_CORPORA.keys())) | ||
| print("\n--- Hunspell ---") | ||
| download_hunspell() | ||
| print("\n--- KBBI ---") | ||
| download_kbbi() | ||
| print("\n--- Katla ---") | ||
| download_katla() | ||
| print("\n--- Shabdle ---") | ||
| download_shabdle() | ||
| print("\n--- Extract kaikki from existing definitions ---") | ||
| extract_kaikki() | ||
| print("\n--- Download kaikki for new languages ---") | ||
| download_kaikki(list(KAIKKI_LANGS.keys())) | ||
| print("\n=== Done ===") | ||
| elif args.command == "leipzig": | ||
| download_leipzig(args.langs) | ||
| elif args.command == "hunspell": | ||
| download_hunspell() | ||
| elif args.command == "kbbi": | ||
| download_kbbi() | ||
| elif args.command == "katla": | ||
| download_katla() | ||
| elif args.command == "shabdle": | ||
| download_shabdle() | ||
| elif args.command == "extract-kaikki": | ||
| extract_kaikki() | ||
| elif args.command == "kaikki-download": | ||
| download_kaikki(args.langs) | ||
| else: | ||
| parser.print_help() | ||
|
|
There was a problem hiding this comment.
The CLI always exits green after partial failures.
These branches never inspect downloader success, so all can print === Done === and exit 0 after missing corpora or dictionaries. That makes broken source refreshes hard to catch in automation and easy to commit accidentally.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/download_sources.py` around lines 460 - 515, The CLI currently
ignores failures from download functions in main, so "all" and single-command
runs always exit 0; change each call site in main to detect errors and fail
early or aggregate failures: have download_leipzig, download_hunspell,
download_kbbi, download_katla, download_shabdle, extract_kaikki, download_kaikki
either return a boolean (or raise on error), then in main capture those returns
(or catch exceptions) for the "all" flow and each branch, accumulate any
failures and call sys.exit(1) when any downloader failed; also ensure
single-command branches propagate nonzero exit on failure instead of silently
printing Done.
| engin | ||
| enjeu | ||
| ennui | ||
| enter |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify whether potentially risky additions are explicitly justified by source/filter logic.
set -euo pipefail
echo "== Suspicious entries in FR daily words =="
rg -n '^(enter|ivana|samoa|speck|spitz|spore)$' webapp/data/languages/fr/fr_daily_words.txt
echo
echo "== Find contamination/proper-noun handling in tooling =="
fd improve_word_lists.py -x sed -n '1,260p' {}
echo
echo "== Search for allowlists/blocklists and FR-specific exceptions =="
rg -n -C3 'allow|allowlist|blocklist|proper|name|contamin|dictionary|daily' scripts/improve_word_lists.pyRepository: Hugo0/wordle
Length of output: 25749
🏁 Script executed:
# Check if blocklists exist for French
find webapp/data/languages/fr -name "*blocklist*" -o -name "*names*"
echo "---"
# Check if common_names.txt exists and contains any of the suspicious entries
if [ -f scripts/common_names.txt ]; then
echo "=== common_names.txt exists, checking for suspicious entries ==="
rg -i '^(enter|ivana|samoa|speck|spitz|spore)$' scripts/common_names.txt
else
echo "=== common_names.txt does NOT exist ==="
fiRepository: Hugo0/wordle
Length of output: 166
🌐 Web query:
French language: are "enter", "ivana", "samoa", "speck", "spitz" valid dictionary words or proper nouns?
💡 Result:
| Forme | En français : mot du dictionnaire ? | Plutôt nom propre ? |
|---|---|---|
| enter | Oui : verbe français (« greffer », etc.). [1] | Non (pas spécialement). |
| Ivana | Pas un mot lexical courant : c’est surtout un prénom. [2] | Oui (prénom). |
| Samoa | Principalement toponyme (archipel/État) ; s’emploie comme nom géographique. [3] | Oui (nom de lieu/pays). |
| speck | Pas un mot « français standard » au sens strict ; surtout un emprunt culinaire (charcuterie), utilisé en français (ex. « pâtes au speck »). [4] | Pas forcément (peut aussi être un nom propre/surnom dans d’autres langues, mais en français courant c’est l’aliment quand il est utilisé). |
| spitz | Oui : nom commun français (type/race de chien). [5] | Non (sauf majuscule en nom propre). |
Sources : [1] Wiktionnaire, enter [2] Wikipédia (fr), Ivana (prénom) [3] Wiktionnaire, Samoa [4] Reverso, définition/usage de speck [5] Larousse, spitz
🏁 Script executed:
# Read the French blocklist
echo "=== Contents of fr_blocklist.txt ==="
cat webapp/data/languages/fr/fr_blocklist.txt
echo
echo "=== Check for 'spore' validity (not covered in web search) ==="
# spore should be a valid French word (biological term)
echo "spore is a standard biological term in French"Repository: Hugo0/wordle
Length of output: 606
🏁 Script executed:
# Search for how native dictionary is built and if it filters proper nouns
echo "=== Check native dict building for French ==="
sed -n '425,472p' scripts/improve_word_lists.py
echo
echo "=== Check if kaikki loading filters proper nouns ==="
fd kaikki -x grep -l "proper\|noun" {}Repository: Hugo0/wordle
Length of output: 1625
🏁 Script executed:
# Verify that ivana and samoa are actually IN the daily words file at the cited lines
echo "=== Verify exact content at flagged lines ==="
sed -n '543p;859p;1578p;1663p;1665p;1667p' webapp/data/languages/fr/fr_daily_words.txt
echo
echo "=== Check if there are language-specific blocklists or name filters ==="
find scripts -name "*name*" -o -name "*blocklist*"
echo
echo "=== Compare blocklist pattern: proper nouns already listed ==="
echo "Proper names in blocklist:"
grep -E "^(diana|heidi|nadia|ronan|pavel)$" webapp/data/languages/fr/fr_blocklist.txt
echo
echo "Geographic/proper locations in blocklist:"
grep -E "^(abuja|yukon|samoa)$" webapp/data/languages/fr/fr_blocklist.txt || echo "samoa NOT in blocklist"Repository: Hugo0/wordle
Length of output: 443
🏁 Script executed:
# Try to run contamination audit for French if possible (or check logs)
echo "=== Check if improve_word_lists.py audit_contamination would flag these ==="
# The audit function (lines 1052-1092) builds native dict and checks for EN contamination
# Let's see if there are any audit logs or results
find . -name "*audit*" -o -name "*contam*" | head -20
echo
echo "=== Check final state: total lines in fr_daily_words.txt ==="
wc -l webapp/data/languages/fr/fr_daily_words.txtRepository: Hugo0/wordle
Length of output: 242
Remove proper nouns ivana (line 859) and samoa (line 1578) from FR daily pool
ivana is a personal name, not a French dictionary word, and samoa is a geographic proper noun (country). Both match the explicit blocklist patterns already established in webapp/data/languages/fr/fr_blocklist.txt (which blocks similar entries like diana, heidi, ronan for names and yukon, abuja for places) but are mysteriously absent from the blocklist itself. These should either be added to the blocklist or removed from the daily words—they contradict the PR's contamination-cleanup objective.
The other entries (enter, spitz, spore) are valid French dictionary words and may remain; speck is borderline (loanword) but acceptable if intentionally included.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/fr/fr_daily_words.txt` at line 543, Remove the proper
nouns "ivana" and "samoa" from the FR daily pool in
webapp/data/languages/fr/fr_daily_words.txt and add them to the French blocklist
in webapp/data/languages/fr/fr_blocklist.txt (or, alternatively, simply delete
them from fr_daily_words.txt); ensure the entries "ivana" and "samoa" are added
in the same format as existing blocklist items (matching patterns used for other
names like "diana" and places like "yukon") so they are consistently excluded
from future daily pools.
| river | ||
| robot | ||
| roche | ||
| roder |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Inspect accent/normalization behavior without executing repository code.
set -euo pipefail
echo "== Locate normalization/compare logic in frontend =="
rg -n -C4 'normalize|diacritic|accent|NFD|NFKD|toLowerCase|splitWord|grapheme' frontend/src
echo
echo "== Locate normalization/compare logic in backend/tests =="
rg -n -C4 'normalize|diacritic|accent|grapheme|daily|answer|guess' webapp tests
echo
echo "== Confirm both forms exist in FR daily pool =="
rg -n '^(roder|rôder)$' webapp/data/languages/fr/fr_daily_words.txtRepository: Hugo0/wordle
Length of output: 50369
🏁 Script executed:
#!/bin/bash
# Find French language configuration
fd -e json -path "*fr*" . | head -20Repository: Hugo0/wordle
Length of output: 224
🏁 Script executed:
#!/bin/bash
# Find French language configuration more carefully
find . -name "*language_config.json" -o -name "*config.json" | grep -i frRepository: Hugo0/wordle
Length of output: 103
🏁 Script executed:
#!/bin/bash
# Read the French language configuration
cat ./webapp/data/languages/fr/language_config.jsonRepository: Hugo0/wordle
Length of output: 3685
Remove one of the diacritic variants from the French daily-answer pool.
Both roder (line 1511) and rôder (line 1556) are present in the daily pool, but the French language config includes a diacritic_map that normalizes ô to o. This causes both words to normalize to the same form during game logic (word validation, win detection), making them duplicate-equivalent answers. The first entry in the list becomes the canonical form, but keeping both introduces unnecessary duplication in the answer pool.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/fr/fr_daily_words.txt` at line 1511, The daily-answer
list contains duplicate-equivalent entries "roder" and "rôder" (the language's
diacritic_map normalizes ô→o), so remove the ASCII variant "roder" and keep the
accented canonical "rôder" in the French daily pool to avoid
duplicate-normalized answers; update the list to contain only one of these
tokens ("rôder") so validation/win logic treats it uniquely.
| fibra | ||
| fieno | ||
| fiero | ||
| fifty |
There was a problem hiding this comment.
Line 686 adds an English daily answer candidate (fifty).
it_daily_words.txt is loaded directly for daily selection, so this can surface as a non-Italian answer. This conflicts with the contamination-filter objective and should be removed/replaced.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@webapp/data/languages/it/it_daily_words.txt` at line 686, Remove or replace
the English word "fifty" introduced in it_daily_words.txt (the daily answer
candidate at the diff) because the file is used directly for Italian daily
selections; edit the entry so the file contains only Italian words (either
delete the "fifty" line or substitute it with a correct Italian
word/translation) and save the file to prevent non-Italian answers from
surfacing.
Adds scripts/profanity_blocklist.txt with common English profanity/slurs that leak into subtitle-sourced word lists (FrequencyWords). These words are filtered from daily word candidates but remain valid guesses. Fixes: bitch, nigga, pussy, whore found in Indonesian/Tagalog daily words (reported by CodeRabbit review on PR #149).
e811783 to
5c95c6c
Compare
…rd quality pipeline Add Indonesian, Malay, Tagalog, Albanian, Urdu, Yoruba, Uzbek, Hindi, Bengali, and Marathi — expanding from 65 to 75 languages. Key features: - Grapheme mode for Devanagari/Bengali scripts (Hindi, Bengali, Marathi) using Intl.Segmenter — counts aksharas instead of codepoints - English contamination filter using multi-source native dictionaries (KBBI, Katla, kaikki.org, Hunspell) — 0% daily contamination - New scripts: add_language.py (bootstrap languages), download_sources.py (fetch KBBI, Katla, Shabdle, kaikki.org word lists) - Full native UI translations and SEO metadata for all languages - All 2,319 tests pass (pytest + vitest)
Layer 1: freeze_past_words.py generates curated_schedule.txt for all 75 languages, locking in the exact daily word for every past day since migration (Jan 26, 2026). These files are committed to git and take priority over daily_words.txt, so historical words survive disk wipes. Layer 2: app.py startup check warns if any language's curated schedule doesn't cover all past days — catches cases where daily_words.txt was modified without running the freeze script. Integration: improve_word_lists.py automatically runs freeze before overwriting daily_words.txt, making it impossible to modify word lists without first preserving history.
Adds scripts/profanity_blocklist.txt with common English profanity/slurs that leak into subtitle-sourced word lists (FrequencyWords). These words are filtered from daily word candidates but remain valid guesses. Fixes: bitch, nigga, pussy, whore found in Indonesian/Tagalog daily words (reported by CodeRabbit review on PR #149).
- Remove length filter from _load_word_file so native dictionary cross-reference works for grapheme-mode languages (Hindi/Bengali/Marathi) - Add grapheme-aware length checks to test_supplement_words_are_5_letters and test_daily_words_are_5_letters for consistency - Pass grapheme_mode through generate_config() in add_language.py - Add proper kaikki.org source attribution to Yoruba and Uzbek SOURCES.md - Fix SOURCES.md generator to include kaikki/Leipzig when relevant Urdu "corrupted tokens" and Yoruba "missing tonal diacritics" were verified as false positives — all entries are valid.
Apply English contamination filter + profanity blocklist to daily word selection for all existing languages that have Leipzig Corpora or kaikki.org native dictionary data. Languages with Leipzig (15K-27K native dict words): de, fr, es, it, pt, nl, sv, da, hu, pl, cs, ro, hr, sk, sl — precise filtering, 1-54 words removed per language (only true contamination, no false positives). Languages with kaikki-only: ca, et, nb, nn, eu, gl, lv, lt, is, mk, uk, el, tr, bg — smaller native dicts, slightly more aggressive but still accurate. Hebrew and Arabic excluded (have their own curated quality pipelines). All past daily words are protected by curated_schedule.txt freeze. Profanity blocklist prevents slurs from appearing as daily answers.
…ngs; fix Leipzig New languages: - Hausa (ha): 5,325 words from Leipzig Corpora (was 435 kaikki-only) - Punjabi (pa): 12,467 words from Leipzig, grapheme_mode (Gurmukhi script) Improved existing: - Yoruba (yo): 4,326 words (was 899 kaikki → Leipzig boosted) - 25+ existing languages decontaminated with Leipzig + kaikki native dicts (de, fr, es, it, pt, nl, sv, da, hu, pl, cs, ro, hr, sk, sl, etc.) Infrastructure: - Fixed Leipzig Corpora download URLs (was appending -words.tar.gz, should be .tar.gz) - Added Leipzig mappings for 28 languages including Punjabi - EXTRA_SOURCES expanded to cover all existing languages for contamination filtering
Reverted daily_words changes for 12 languages where the native dictionary was too small (<5K words) causing false positive removals: - Spanish: "aldea" (village), "arroz" (rice), "antes" (before) wrongly removed - Turkish: "asker" (soldier), "damar" (vein) wrongly removed - Basque, Galician, Icelandic, Lithuanian, Latvian, Norwegian (both), Catalan, Estonian, Croatian — all reverted Kept decontamination for 12 languages with large native dicts (>15K words): cs, da, de, fr, hu, it, nl, pt, ro, sk, sl, sv — 1-34 legitimate removals each. Lesson: contamination filter only reliable with Leipzig Corpora data (15K+ native words). kaikki-only dictionaries are too small for cross-reference filtering.
Generate daily_words.txt using Leipzig Corpora newspaper frequency data for languages that previously had no frequency ranking (random daily words): - Bulgarian (bg): 2,000 daily, 58% frequency-matched - Finnish (fi): 2,000 daily, 61% frequency-matched - Hausa (ha): 2,000 daily, 93% frequency-matched - Hindi (hi): 2,000 daily, 28% frequency-matched - Punjabi (pa): 2,000 daily, 100% frequency-matched - Polish (pl): 1,694 daily, 93% frequency-matched - Yoruba (yo): 2,000 daily, 82% frequency-matched Daily words are now ranked by real-world frequency from newspaper text, meaning common everyday words appear first. Previously these languages served random words from a shuffled list. Also fixes: Leipzig download URLs (was appending -words.tar.gz suffix), added Leipzig corpus mappings for 28 languages.
Bengali (bn): 2,000 daily words from Leipzig Wikipedia corpus (50% freq-matched) Korean (ko): 2,000 daily words from Leipzig Wikipedia corpus (59% freq-matched) These were previously using random word selection (shuffled list). Now daily words start with common everyday words. Total: 52 of 77 languages now have frequency-ranked daily words (was 38 before this PR).
… limits Rename curated_schedule.txt to word_history.txt across all 77 languages for clarity — these files freeze daily word selections to git. Important safety note: word_history only covers post-migration days (Jan 26 2026+). Legacy days (2021-2026) cannot be reliably recomputed because some word lists changed since launch (e.g., Finnish was re-curated on Jan 25 2026, changing the shuffle order for all 1,682 legacy days). Legacy days rely on Render's disk cache. Also: added Leipzig corpus mappings for Bengali and Korean.
… 7 languages Supplement expansion using Leipzig Corpora newspaper frequency data: - 51 languages now have supplement word lists (was 42) - +436,767 total new supplement words across all languages - Biggest gains: Arabic +18K, Indonesian +17K, Bulgarian +15K, Persian +15K, Croatian +13K, Finnish +13K, Hungarian +13K - This should significantly reduce the 47% "invalid word" rate Re-applied decontamination for 7 languages (previously reverted): - es (1 removed), tr (4), hr (5), ca (8), et (31), ar (0), sr (0) - Now using Leipzig (15K-24K native dict words) for precise filtering - No false positives like the previous attempt Added Leipzig corpus mappings for 27 additional languages in download_sources.py.
Hindi: +34,810 supplement words from Leipzig Bengali: +22,203 supplement words from Leipzig Punjabi: +2,554 supplement words from Leipzig Also added 27 new Leipzig corpus mappings in download_sources.py for languages like Persian, Hebrew, Russian, Armenian, etc. Grand total supplement expansion this PR: ~496K new valid guess words across 54 languages. Should dramatically reduce invalid word rate.
… words These words contain compound final consonants not typeable on the default keyboard, and were added to ko_blocklist.txt in PR #155.
1e0c8a8 to
6c51c61
Compare
…ments Finnish: reverted daily_words.txt (removed). Finnish was working great with random selection (71% completion rate, #2 language). Don't fix what isn't broken. Supplement expansion (+13K words) is kept. Garbage filter: removed 454 obvious junk entries from supplements across 43 languages. Ultra-conservative — only catches: - All-same-character words (aaaaa, ههههه, ннннн) - 4+ consecutive identical characters (brrrr, ahhhh, hmmmm) No real words affected. Verified across all 75+ languages.
Sourced from JMdict-simplified, scored by wordfreq frequency: - 2,000 daily words (ja_5words.txt) - 2,996 supplement words (ja_5words_supplement.txt) - 78 hiragana characters - Gojūon (五十音) keyboard layout with dakuten, handakuten, small kana Each tile = one hiragana character. Proper nouns and grammatical expressions filtered out. 125M speakers.
…l, etc.) Added gmail, https, yahoo, email, login, tweet, click, skype to the blocklist. These leaked from newspaper data and aren't real words. Fixed 4 languages where we introduced these: pl, tl, ha, id. Pre-existing junk in other languages (cs, da, fr, etc.) will be cleaned on their next improve_word_lists.py process run.
Expanded blocklist to 83 entries covering: - Brands: tesla, apple, honda, volvo, pepsi, cisco, rolex, etc. - Politicians: obama, trump, putin, biden - Tech: mysql, macos, email, skype, troll, tweet, pixel - Profanity: semen, sperm (missed earlier) Source: FrequencyWords (OpenSubtitles) ranks these highly because they appear frequently in movie subtitles, but they make terrible daily words.
Daily words must now be verified by at least one dictionary source (kaikki/Leipzig/Hunspell/KBBI) to be eligible as daily answers. This prevents subtitle-frequency junk (brand names, proper nouns, tech terms) from ever becoming daily words. Pipeline flow: 1. Score words by FrequencyWords frequency 2. Filter: blocklist, profanity, common names, Roman numerals 3. Filter: English contamination (cross-reference) 4. NEW: Dictionary verification — only keep words confirmed by a dictionary source (kaikki.org, Leipzig newspaper corpus, Hunspell) 5. Take top 2000 This is a structural fix at the pipeline level, not whack-a-mole with blocklists. Words without dictionary verification remain valid guesses (in main word list + supplement), just not daily answers. Reprocessed 16 existing languages with the new gate.
Ranked by wordfreq frequency scores. Needs manual curation pass — some proper nouns (country names in hiragana) and grammatical phrases slipped through JMdict filtering.
- Require kanji forms (eliminates transliterations and grammatical phrases) - Exclude all 'exp' POS entries (expressions like なのである, でしかない) - Exclude proper nouns, archaic, vulgar, abbreviated entries - Only include words with wordfreq frequency > 0 - Remove empty supplement (all words are in main list) - Add ゔ, ゎ, ゜ to keyboard Result: 21,584 main words, 2,000 daily words (frequency-ranked) Top daily words: じょうほう (情報), せかいてき (世界的), せんりゃく (戦略)
Key changes: 1. process_language() now accepts Leipzig as fallback frequency source when FrequencyWords is unavailable. Languages like bg, pl, ha, yo now go through the SAME pipeline with all filters. 2. Fixed circular reference: when Leipzig IS the frequency source, it's excluded from the native dictionary for contamination filtering. This prevents English code-switching in African newspapers from being treated as "dictionary-verified" native words. 3. batch command auto-discovers all processable languages instead of using a hardcoded priority list. Any language with FrequencyWords OR Leipzig data is included. 4. EXCLUDE set now allows Leipzig-sourced processing (bg, pl, ko were excluded from FrequencyWords but can use Leipzig). Before: two separate code paths — improve_word_lists.py for FrequencyWords languages, ad-hoc scripts for Leipzig languages. Different filtering. After: one pipeline, consistent filtering for all. Impact: Hausa/Yoruba daily words cleaned (video/music/beach/north removed). Bulgarian/Polish daily words now go through dictionary verification gate.
Comprehensive design doc covering: - Single words.yaml per language replacing 5 current files - Per-word metadata (tier, frequency, difficulty, LLM scores, flags) - Pipeline stages (source → normalize → score → curate → compile → freeze) - Multi-mode support (4-10 letter, phrase, unlimited, multi-board) - LLM curation integration - Community contribution workflow - Migration strategy aligned with Nuxt refactor
Summary
Major language expansion adding 13 new languages covering 2B+ speakers, with infrastructure improvements for word quality at scale.
New languages (13)
Word quality improvements
Infrastructure
graphemes.ts): Correct character counting for Devanagari/Bengali/Gurmukhi scriptsdocs/WORD_DATA_ARCHITECTURE.md— design for future YAML migration, multi-mode support, LLM curationSafety — existing languages
No main word list was modified for any existing language. All changes to existing languages:
Top language overlap with previous daily words:
Known limitations (to address in follow-up)
Files changed
Test plan