From c9032df3bfbbbc99b455ad811ace994123b125fd Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Thu, 14 May 2026 10:56:54 +0000 Subject: [PATCH] =?UTF-8?q?chore:=20use=20native=20Az=C9=99rbaycan=20spell?= =?UTF-8?q?ing=20in=20user-facing=20strings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces "Azeri" / "Azerbaijani" with the native form "Azərbaycan" in labels, descriptions, and Python comments. Field names / identifiers are unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 4 ++-- kapital_bank/bank_api.py | 2 +- .../kapital_bank_customer_mapping.json | 4 ++-- .../kapital_bank_settings/kapital_bank_settings.json | 4 ++-- .../kapital_bank_supplier_mapping.json | 4 ++-- kapital_bank/mapping.py | 10 +++++----- kapital_bank/payment_api.py | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index d7f9968..7b9f678 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -103,7 +103,7 @@ Priority-based matching in `_find_mapping_for_txn()`: purpose+party > purpose-on Three-tier party matching with configurable similarity thresholds: 1. Exact VÖEN (tax ID) match 2. Name similarity via `SequenceMatcher` (defaults: customer 90%, supplier 80%, purpose 70%) -3. Optional Azerbaijani character normalization (Ə→E, ə→e, etc.) +3. Optional Azərbaycan character normalization (Ə→E, ə→e, etc.) ### DocTypes @@ -129,7 +129,7 @@ Three-tier party matching with configurable similarity thresholds: - Progress published via `frappe.publish_realtime()` over Socket.IO (`kb_bt_import_progress`, `kb_bt_import_complete`) - Sensitive data (tokens, passwords) stored in Password-type fields (encrypted in DB) - Error logging via `frappe.log_error()` with `_mask()` hiding account numbers (7+ digits → `first3***last3`) -- Party names latinized via `_latinize()` for bank transfers (Azerbaijani → ASCII) +- Party names latinized via `_latinize()` for bank transfers (Azərbaycan → ASCII) - Card statements limited to 90-day range; cross-account transfers deduplicated by reference_no ### Scheduler Events diff --git a/kapital_bank/bank_api.py b/kapital_bank/bank_api.py index 38fab62..ed2bf20 100644 --- a/kapital_bank/bank_api.py +++ b/kapital_bank/bank_api.py @@ -2431,7 +2431,7 @@ _AZERI_MAP = str.maketrans("ƏəÜüÖöĞğİıÇ窺", "EeUuOoGgIiCcSs") def _normalize(text, consider_azeri=True): """Normalize text for similarity comparison. - Optionally replaces Azerbaijani characters before lowercasing.""" + Optionally replaces Azərbaycan characters before lowercasing.""" if not text: return "" s = str(text) diff --git a/kapital_bank/kapital_bank/doctype/kapital_bank_customer_mapping/kapital_bank_customer_mapping.json b/kapital_bank/kapital_bank/doctype/kapital_bank_customer_mapping/kapital_bank_customer_mapping.json index a795a47..a7efbea 100644 --- a/kapital_bank/kapital_bank/doctype/kapital_bank_customer_mapping/kapital_bank_customer_mapping.json +++ b/kapital_bank/kapital_bank/doctype/kapital_bank_customer_mapping/kapital_bank_customer_mapping.json @@ -65,10 +65,10 @@ "options": "\nIgnore Case\nCase Sensitive" }, { - "description": "Override the global 'Consider Azerbaijani Characters' for this row's party-name matching. Blank = use the global setting.", + "description": "Override the global 'Consider Azərbaycan Characters' for this row's party-name matching. Blank = use the global setting.", "fieldname": "azeri_mode", "fieldtype": "Select", - "label": "Azeri Translit", + "label": "Azərbaycan Translit", "options": "\nApply Translit\nStrict (No Translit)" }, { diff --git a/kapital_bank/kapital_bank/doctype/kapital_bank_settings/kapital_bank_settings.json b/kapital_bank/kapital_bank/doctype/kapital_bank_settings/kapital_bank_settings.json index 67d0eb1..5a53daa 100644 --- a/kapital_bank/kapital_bank/doctype/kapital_bank_settings/kapital_bank_settings.json +++ b/kapital_bank/kapital_bank/doctype/kapital_bank_settings/kapital_bank_settings.json @@ -115,10 +115,10 @@ }, { "default": "1", - "description": "Consider replacement of Azerbaijani letters with Latin equivalents when matching", + "description": "Consider replacement of Azərbaycan letters with Latin equivalents when matching", "fieldname": "consider_azeri_chars", "fieldtype": "Check", - "label": "Consider Azerbaijani Characters" + "label": "Consider Azərbaycan Characters" }, { "default": "1", diff --git a/kapital_bank/kapital_bank/doctype/kapital_bank_supplier_mapping/kapital_bank_supplier_mapping.json b/kapital_bank/kapital_bank/doctype/kapital_bank_supplier_mapping/kapital_bank_supplier_mapping.json index 1bb9122..d3c0408 100644 --- a/kapital_bank/kapital_bank/doctype/kapital_bank_supplier_mapping/kapital_bank_supplier_mapping.json +++ b/kapital_bank/kapital_bank/doctype/kapital_bank_supplier_mapping/kapital_bank_supplier_mapping.json @@ -57,10 +57,10 @@ "options": "\nIgnore Case\nCase Sensitive" }, { - "description": "Override the global 'Consider Azerbaijani Characters' for this row's party-name matching. Blank = use the global setting.", + "description": "Override the global 'Consider Azərbaycan Characters' for this row's party-name matching. Blank = use the global setting.", "fieldname": "azeri_mode", "fieldtype": "Select", - "label": "Azeri Translit", + "label": "Azərbaycan Translit", "options": "\nApply Translit\nStrict (No Translit)" }, { diff --git a/kapital_bank/mapping.py b/kapital_bank/mapping.py index f26446c..d3a906c 100644 --- a/kapital_bank/mapping.py +++ b/kapital_bank/mapping.py @@ -57,7 +57,7 @@ def _effective_case_insensitive(row, global_default): def _effective_azeri(row, global_default): - """Per-row Azeri Translit mode overrides the global Consider Azerbaijani Characters flag.""" + """Per-row Azərbaycan Translit mode overrides the global Consider Azərbaycan Characters flag.""" mode = (getattr(row, "azeri_mode", None) or "").strip() if mode == "Apply Translit": return True @@ -70,7 +70,7 @@ def _build_name_to_party(settings): """Counterparty text -> {"Customer": erp_customer} / {"Supplier": erp_supplier}. Each row is indexed under up to four key variants depending on its effective - Case Mode and Azeri Translit settings (both of which fall back to globals): + Case Mode and Azərbaycan Translit settings (both of which fall back to globals): strict / lowercase / translit / translit + lowercase. """ global_ci = bool(getattr(settings, "case_insensitive_party_match", 1)) @@ -117,7 +117,7 @@ def _build_name_to_party(settings): def _resolve_party_from_name(name, name_to_party, payment_type): """(party_type, erp_party) for `name`, or (None, None). Tries up to four lookup variants (strict / lower / translit / translit+lower); the index - encodes per-row case/azeri decisions, so flags aren't needed here.""" + encodes per-row case/azərbaycan decisions, so flags aren't needed here.""" key = (name or "").strip() if not key: return None, None @@ -408,7 +408,7 @@ def create_purpose_mappings(transactions, paid_from=None, paid_to=None, document def _norm_text(text, az): - """Lowercased + (optionally) Azeri-translit form for purpose/party comparison.""" + """Lowercased + (optionally) Azərbaycan-translit form for purpose/party comparison.""" s = (text or "").lower() if az: s = _translit_az(s) @@ -423,7 +423,7 @@ def _find_mapping_for_txn(txn, transaction_mappings, purpose_text_cache, purpose fallback by counterparty_type. "Exact" = the keyword is a substring of the transaction's description; "fuzzy" = partial-ratio >= purpose_threshold. - `az` toggles Azerbaijani transliteration of purpose / party text before + `az` toggles Azərbaycan transliteration of purpose / party text before comparison (driven by settings.consider_azeri_chars). """ payment_type = "Pay" if txn.get("drcr") == "D" else "Receive" diff --git a/kapital_bank/payment_api.py b/kapital_bank/payment_api.py index 43626ee..ebfbabd 100644 --- a/kapital_bank/payment_api.py +++ b/kapital_bank/payment_api.py @@ -8,7 +8,7 @@ _AZ_MAP = str.maketrans("ƏəİışŞÇçÖöÜüĞğ", "EeIissCcOoUuGg") def _latinize(text: str, max_len: int = None) -> str: - """Transliterate Azerbaijani → Latin, strip non-ASCII, truncate.""" + """Transliterate Azərbaycan → Latin, strip non-ASCII, truncate.""" text = str(text or "").translate(_AZ_MAP) text = text.encode("ascii", errors="ignore").decode("ascii").strip() return text[:max_len] if max_len else text