From 54c314d8d9d9aa5914e7fcd63a35f57546c2a2a6 Mon Sep 17 00:00:00 2001 From: Dzmitry Padabed Date: Sun, 19 Apr 2026 23:05:29 +0300 Subject: [PATCH] feat(i18n): add Belarusian --- mempalace/i18n/be.json | 166 +++++++++++++++++++++++++++++++++++++++++ tests/test_i18n.py | 1 + 2 files changed, 167 insertions(+) create mode 100644 mempalace/i18n/be.json diff --git a/mempalace/i18n/be.json b/mempalace/i18n/be.json new file mode 100644 index 0000000..01e808e --- /dev/null +++ b/mempalace/i18n/be.json @@ -0,0 +1,166 @@ +{ + "lang": "be", + "label": "Беларуская", + "terms": { + "palace": "палац", + "wing": "крыло", + "hall": "зала", + "closet": "шафа", + "drawer": "шуфляда", + "mine": "майнінг", + "search": "пошук", + "status": "статус", + "init": "ініцыялізацыя", + "repair": "аднаўленне", + "migrate": "міграцыя", + "entity": "аб'ект", + "topic": "тэма" + }, + "cli": { + "mine_start": "Майнінг {path}...", + "mine_complete": "Гатова. Створана шаф: {closets}, шуфляд: {drawers}.", + "mine_skip": "Майнінг скончаны. Выкарыстайце --force, каб перамайніць.", + "search_no_results": "Няма вынікаў для: {query}", + "search_results": "Знойдзена {count} вынікаў:", + "status_palace": "Палац: {path}", + "status_wings": "Крылаў: {count}", + "status_closets": "Шаф: {count}", + "status_drawers": "Шуфляд: {count}", + "init_complete": "Палац ініцыялізаваны ў {path}", + "init_exists": "Палац ужо існуе ў {path}", + "repair_complete": "Аднаўленне скончана. Выпраўлена праблем: {fixed}.", + "migrate_complete": "Міграцыя завершана.", + "no_palace": "Палац не знойдзены. Запусціце: mempalace init <дырэкторыя>" + }, + "aaak": { + "instruction": "Сцісні да фармату індэкса. Злучкі паміж словамі, вертыкальныя рысы паміж паняткамі. Выдалі падставы і службовыя словы. Захавай дакладнасць імёнаў, нумароў, скланенняў і формаў." + }, + "regex": { + "topic_pattern": "[А-ЯЁІЎ][а-яёіў]{2,}|[A-Z][a-z]{2,}|[A-Za-z][A-Za-z0-9_]{2,}", + "stop_words": "і а але бо каб калі калісьці хоць што хто дзе куды адкуль як чаму таму ж не ні так таксама яшчэ ўжо цяпер потым тут там адсюль туды ў на па з са без для над пад пры пра праз супраць замест акрамя сярод вакол уздоўж каля паміж пасля перад да ад у або альбо то ці быццам нібыта вось гэты гэта гэтыя той тая тыя некаторыя кожны кожная кожныя толькі вельмі можа трэба будзе быў была былі ёсць няма", + "quote_pattern": "«\\s*([^»]{10,200})\\s*»|\"([^\"]{10,200})\"", + "action_pattern": "(?:зрабіў|зрабіла|зрабілі|стварыў|стварыла|стварылі|дадаў|дадала|дадалі|абнавіў|абнавіла|абнавілі|наладзіў|наладзіла|наладзілі|пратэставаў|пратэставала|пратэставалі)\\s+[\\wа-яёА-ЯЁІіЎў\\s]{3,30}" + }, + "entity": { + "candidate_pattern": "[А-ЯЁІЎ][а-яёіў]{1,19}", + "multi_word_pattern": "[А-ЯЁІЎ][а-яёіў]+(?:\\s+[А-ЯЁІЎ][а-яёіў]+)+", + "person_verb_patterns": [ + "\\b{name}\\s+сказа(?:ў|ла|лі)\\b", + "\\b{name}\\s+спыта(?:ў|ла|лі)\\b", + "\\b{name}\\s+адказа(?:ў|ла|лі)\\b", + "\\b{name}\\s+расказа(?:ў|ла|лі)\\b", + "\\b{name}\\s+засмея(?:ўся|лася|ліся)\\b", + "\\b{name}\\s+усміхну(?:ўся|лася|ліся)\\b", + "\\b{name}\\s+заплака(?:ў|ла|лі)\\b", + "\\b{name}\\s+адчу(?:ў|ла|лі)\\b", + "\\b{name}\\s+думае\\b", + "\\b{name}\\s+хоча\\b", + "\\b{name}\\s+кахае\\b", + "\\b{name}\\s+ненавідзіць\\b", + "\\b{name}\\s+ведае\\b", + "\\b{name}\\s+вырашы(?:ў|ла|лі)\\b", + "\\b{name}\\s+напіса(?:ў|ла|лі)\\b", + "\\b{name}\\s+каза(?:ў|ла|лі)\\b", + "\\b{name}\\s+зрабі(?:ў|ла|лі)\\b", + "\\b{name}\\s+спытваецца\\b", + "\\b{name}\\s+адказвае\\b" + ], + "pronoun_patterns": [ + "\\bён\\b", + "\\bяго\\b", + "\\bяму\\b", + "\\bім\\b", + "\\bяна\\b", + "\\bяе\\b", + "\\bёй\\b", + "\\bёю\\b", + "\\bяны\\b", + "\\bіх\\b", + "\\bімі\\b", + "\\bяно\\b", + "\\bвы\\b", + "\\bвас\\b", + "\\bвам\\b", + "\\bвамі\\b" + ], + "dialogue_patterns": [ + "^>\\s*{name}[:\\s]", + "^{name}:\\s", + "^\\[{name}\\]", + "\"{name}\\s+сказа(?:ў|ла|лі)" + ], + "direct_address_pattern": "\\bпрывітанне[,:!.]?\\s+{name}\\b|\\bвітаю[,:!.]?\\s+{name}\\b|\\bдзякуй[,:!.]?\\s+{name}\\b|\\bдарагі[,:!.]?\\s+{name}\\b|\\bдарагая[,:!.]?\\s+{name}\\b|\\bпаважаны[,:!.]?\\s+{name}\\b|\\bпаважаная[,:!.]?\\s+{name}\\b", + "project_verb_patterns": [ + "\\bзбіраю\\s+{name}\\b", + "\\bсабраў\\s+{name}\\b", + "\\bзапускаю\\s+{name}\\b", + "\\bзапусціў\\s+{name}\\b", + "\\bразгарнуў\\s+{name}\\b", + "\\bусталяваў\\s+{name}\\b", + "\\bсістэма\\s+{name}\\b", + "\\bпраект\\s+{name}\\b", + "\\bimport\\s+{name}\\b", + "\\bpip\\s+install\\s+{name}\\b" + ], + "stopwords": [ + "і", + "ў", + "з", + "са", + "на", + "па", + "да", + "ад", + "у", + "без", + "для", + "над", + "пад", + "пры", + "пра", + "праз", + "супраць", + "замест", + "акрамя", + "сярод", + "вакол", + "уздоўж", + "каля", + "паміж", + "пасля", + "перад", + "або", + "альбо", + "каб", + "калі", + "хоць", + "бо", + "ж", + "не", + "ні", + "так", + "яшчэ", + "ужо", + "цяпер", + "вось", + "гэта", + "тое", + "тут", + "там", + "вельмі", + "толькі", + "можа", + "трэба", + "ёсць", + "няма", + "як", + "што", + "хто", + "чаму", + "таму", + "прывітанне", + "дзякуй", + "ласка" + ] + } +} diff --git a/tests/test_i18n.py b/tests/test_i18n.py index b91e352..b6890bc 100644 --- a/tests/test_i18n.py +++ b/tests/test_i18n.py @@ -56,6 +56,7 @@ def test_dialect_compress_samples(): "de": "Wir haben beschlossen, von SQLite auf PostgreSQL zu migrieren für bessere gleichzeitige Schreibvorgänge. Ben hat den PR gestern genehmigt.", "zh-CN": "我们决定从SQLite迁移到PostgreSQL以获得更好的并发写入。Ben昨天批准了PR。", "id": "Kami memutuskan untuk migrasi dari SQLite ke PostgreSQL untuk penulisan bersamaan yang lebih baik. Ben telah menyetujui PR kemarin.", + "be": "Мы вырашылі перайсці з SQLite на PostgreSQL для паляпшэння паралельнага запісу. Зміцер ухваліў PR ўчора.", } for lang, text in samples.items():