From d09a6b339bc00c34c836c7a3acea2e8f51be907c Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Thu, 5 Feb 2026 10:13:44 -0500 Subject: [PATCH] fix: add new parts of speech to function for getting grammar copy (#5586) --- lib/l10n/intl_ar.arb | 17 ++- lib/l10n/intl_be.arb | 17 ++- lib/l10n/intl_bn.arb | 17 ++- lib/l10n/intl_bo.arb | 17 ++- lib/l10n/intl_ca.arb | 17 ++- lib/l10n/intl_cs.arb | 17 ++- lib/l10n/intl_da.arb | 17 ++- lib/l10n/intl_de.arb | 17 ++- lib/l10n/intl_el.arb | 17 ++- lib/l10n/intl_eo.arb | 17 ++- lib/l10n/intl_es.arb | 17 ++- lib/l10n/intl_et.arb | 17 ++- lib/l10n/intl_eu.arb | 17 ++- lib/l10n/intl_fa.arb | 17 ++- lib/l10n/intl_fi.arb | 17 ++- lib/l10n/intl_fil.arb | 17 ++- lib/l10n/intl_fr.arb | 17 ++- lib/l10n/intl_ga.arb | 17 ++- lib/l10n/intl_gl.arb | 17 ++- lib/l10n/intl_he.arb | 17 ++- lib/l10n/intl_hi.arb | 17 ++- lib/l10n/intl_hr.arb | 17 ++- lib/l10n/intl_hu.arb | 17 ++- lib/l10n/intl_ia.arb | 17 ++- lib/l10n/intl_id.arb | 17 ++- lib/l10n/intl_ie.arb | 17 ++- lib/l10n/intl_it.arb | 17 ++- lib/l10n/intl_ja.arb | 17 ++- lib/l10n/intl_ka.arb | 17 ++- lib/l10n/intl_ko.arb | 17 ++- lib/l10n/intl_lt.arb | 17 ++- lib/l10n/intl_lv.arb | 17 ++- lib/l10n/intl_nb.arb | 17 ++- lib/l10n/intl_nl.arb | 17 ++- lib/l10n/intl_pl.arb | 17 ++- lib/l10n/intl_pt.arb | 17 ++- lib/l10n/intl_pt_BR.arb | 17 ++- lib/l10n/intl_pt_PT.arb | 17 ++- lib/l10n/intl_ro.arb | 17 ++- lib/l10n/intl_ru.arb | 17 ++- lib/l10n/intl_sk.arb | 17 ++- lib/l10n/intl_sl.arb | 17 ++- lib/l10n/intl_sr.arb | 17 ++- lib/l10n/intl_sv.arb | 17 ++- lib/l10n/intl_ta.arb | 17 ++- lib/l10n/intl_te.arb | 17 ++- lib/l10n/intl_th.arb | 17 ++- lib/l10n/intl_tr.arb | 17 ++- lib/l10n/intl_uk.arb | 17 ++- lib/l10n/intl_vi.arb | 17 ++- lib/l10n/intl_yue.arb | 17 ++- lib/l10n/intl_zh.arb | 17 ++- lib/l10n/intl_zh_Hant.arb | 17 ++- lib/pangea/morphs/get_grammar_copy.dart | 6 + lib/pangea/morphs/parts_of_speech_enum.dart | 116 -------------------- 55 files changed, 854 insertions(+), 169 deletions(-) diff --git a/lib/l10n/intl_ar.arb b/lib/l10n/intl_ar.arb index 4097df506..cebe2097f 100644 --- a/lib/l10n/intl_ar.arb +++ b/lib/l10n/intl_ar.arb @@ -1,6 +1,6 @@ { "@@locale": "ar", - "@@last_modified": "2026-01-29 15:25:01.121856", + "@@last_modified": "2026-02-05 10:09:56.397837", "about": "حول", "@about": { "type": "String", @@ -11186,5 +11186,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "تعبير اصطلاحي", + "grammarCopyPOSphrasalv": "فعل مركب", + "grammarCopyPOScompn": "مركب", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_be.arb b/lib/l10n/intl_be.arb index 5fd788e88..72fb9a8ca 100644 --- a/lib/l10n/intl_be.arb +++ b/lib/l10n/intl_be.arb @@ -1908,7 +1908,7 @@ "playWithAI": "Пакуль гуляйце з ШІ", "courseStartDesc": "Pangea Bot гатовы да працы ў любы час!\n\n...але навучанне лепш з сябрамі!", "@@locale": "be", - "@@last_modified": "2026-01-29 15:24:53.163474", + "@@last_modified": "2026-02-05 10:09:46.469770", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -12068,5 +12068,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Ідыём", + "grammarCopyPOSphrasalv": "Фразавы дзеяслоў", + "grammarCopyPOScompn": "Складаны", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_bn.arb b/lib/l10n/intl_bn.arb index f7eaa3be3..ce0510c60 100644 --- a/lib/l10n/intl_bn.arb +++ b/lib/l10n/intl_bn.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:11.468426", + "@@last_modified": "2026-02-05 10:10:08.830801", "about": "সম্পর্কে", "@about": { "type": "String", @@ -12073,5 +12073,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "বাগধারা", + "grammarCopyPOSphrasalv": "ফ্রেজাল ক্রিয়া", + "grammarCopyPOScompn": "যুগ্ম", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_bo.arb b/lib/l10n/intl_bo.arb index 8d4c11b97..7cf7f1681 100644 --- a/lib/l10n/intl_bo.arb +++ b/lib/l10n/intl_bo.arb @@ -4276,7 +4276,7 @@ "joinPublicTrip": "མི་ཚེས་ལ་ལོག་འབད།", "startOwnTrip": "ངེད་རང་གི་ལོག་ལ་སྦྱོར་བཅོས།", "@@locale": "bo", - "@@last_modified": "2026-01-29 15:25:08.749600", + "@@last_modified": "2026-02-05 10:10:06.262776", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -10723,5 +10723,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Compound", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ca.arb b/lib/l10n/intl_ca.arb index fe4ca1bf0..e2777e39a 100644 --- a/lib/l10n/intl_ca.arb +++ b/lib/l10n/intl_ca.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:54.287095", + "@@last_modified": "2026-02-05 10:09:47.712187", "about": "Quant a", "@about": { "type": "String", @@ -10993,5 +10993,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verb Phrasal", + "grammarCopyPOScompn": "Compost", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_cs.arb b/lib/l10n/intl_cs.arb index d9da7655a..9e1758776 100644 --- a/lib/l10n/intl_cs.arb +++ b/lib/l10n/intl_cs.arb @@ -1,6 +1,6 @@ { "@@locale": "cs", - "@@last_modified": "2026-01-29 15:24:50.917574", + "@@last_modified": "2026-02-05 10:09:43.831148", "about": "O aplikaci", "@about": { "type": "String", @@ -11576,5 +11576,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Frázové sloveso", + "grammarCopyPOScompn": "Složenina", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_da.arb b/lib/l10n/intl_da.arb index 8ef6d4cd2..eef287d6f 100644 --- a/lib/l10n/intl_da.arb +++ b/lib/l10n/intl_da.arb @@ -1927,7 +1927,7 @@ "playWithAI": "Leg med AI for nu", "courseStartDesc": "Pangea Bot er klar til at starte når som helst!\n\n...men læring er bedre med venner!", "@@locale": "da", - "@@last_modified": "2026-01-29 15:24:30.021734", + "@@last_modified": "2026-02-05 10:09:17.541713", "@aboutHomeserver": { "type": "String", "placeholders": { @@ -12030,5 +12030,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Sammensat", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index 600d6e805..9c51df9e8 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -1,6 +1,6 @@ { "@@locale": "de", - "@@last_modified": "2026-01-29 15:24:45.173559", + "@@last_modified": "2026-02-05 10:09:37.665075", "alwaysUse24HourFormat": "true", "@alwaysUse24HourFormat": { "description": "Set to true to always display time of day in 24 hour format." @@ -10976,5 +10976,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Zusammengesetztes Wort", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_el.arb b/lib/l10n/intl_el.arb index a95066e90..d2aecfddb 100644 --- a/lib/l10n/intl_el.arb +++ b/lib/l10n/intl_el.arb @@ -4453,7 +4453,7 @@ "playWithAI": "Παίξτε με την Τεχνητή Νοημοσύνη προς το παρόν", "courseStartDesc": "Ο Pangea Bot είναι έτοιμος να ξεκινήσει οποιαδήποτε στιγμή!\n\n...αλλά η μάθηση είναι καλύτερη με φίλους!", "@@locale": "el", - "@@last_modified": "2026-01-29 15:25:16.616510", + "@@last_modified": "2026-02-05 10:10:14.390437", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -12027,5 +12027,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Ιδιωματισμός", + "grammarCopyPOSphrasalv": "Φραστικό Ρήμα", + "grammarCopyPOScompn": "Σύνθετο", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_eo.arb b/lib/l10n/intl_eo.arb index d6a16e9ef..2c6c6ed93 100644 --- a/lib/l10n/intl_eo.arb +++ b/lib/l10n/intl_eo.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:20.184834", + "@@last_modified": "2026-02-05 10:10:17.896498", "about": "Prio", "@about": { "type": "String", @@ -12058,5 +12058,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Kunmetita", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index ff0445450..8458be45b 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -1,6 +1,6 @@ { "@@locale": "es", - "@@last_modified": "2026-01-29 15:24:25.947319", + "@@last_modified": "2026-02-05 10:09:12.250951", "about": "Acerca de", "@about": { "type": "String", @@ -8211,5 +8211,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Modismo", + "grammarCopyPOSphrasalv": "Verbo Frasal", + "grammarCopyPOScompn": "Compuesto", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_et.arb b/lib/l10n/intl_et.arb index 06dc09cf1..ddb897208 100644 --- a/lib/l10n/intl_et.arb +++ b/lib/l10n/intl_et.arb @@ -1,6 +1,6 @@ { "@@locale": "et", - "@@last_modified": "2026-01-29 15:24:43.759174", + "@@last_modified": "2026-02-05 10:09:36.127342", "about": "Rakenduse teave", "@about": { "type": "String", @@ -11240,5 +11240,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idioom", + "grammarCopyPOSphrasalv": "Fraasi Verb", + "grammarCopyPOScompn": "Kompleks", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_eu.arb b/lib/l10n/intl_eu.arb index 89acdea24..9bab7424f 100644 --- a/lib/l10n/intl_eu.arb +++ b/lib/l10n/intl_eu.arb @@ -1,6 +1,6 @@ { "@@locale": "eu", - "@@last_modified": "2026-01-29 15:24:41.896758", + "@@last_modified": "2026-02-05 10:09:33.401642", "about": "Honi buruz", "@about": { "type": "String", @@ -10969,5 +10969,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Konposatu", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fa.arb b/lib/l10n/intl_fa.arb index 683273208..45ee57de3 100644 --- a/lib/l10n/intl_fa.arb +++ b/lib/l10n/intl_fa.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:12.904348", + "@@last_modified": "2026-02-05 10:10:10.668033", "repeatPassword": "تکرار رمزعبور", "@repeatPassword": {}, "about": "درباره", @@ -11701,5 +11701,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "اصطلاح", + "grammarCopyPOSphrasalv": "فعل عبارتی", + "grammarCopyPOScompn": "ترکیب", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fi.arb b/lib/l10n/intl_fi.arb index 306a9ea2e..475407fe6 100644 --- a/lib/l10n/intl_fi.arb +++ b/lib/l10n/intl_fi.arb @@ -4006,7 +4006,7 @@ "playWithAI": "Leiki tekoälyn kanssa nyt", "courseStartDesc": "Pangea Bot on valmis milloin tahansa!\n\n...mutta oppiminen on parempaa ystävien kanssa!", "@@locale": "fi", - "@@last_modified": "2026-01-29 15:24:28.359131", + "@@last_modified": "2026-02-05 10:09:16.239112", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11592,5 +11592,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idioomi", + "grammarCopyPOSphrasalv": "Fraasiverbi", + "grammarCopyPOScompn": "Yhdistelmä", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fil.arb b/lib/l10n/intl_fil.arb index fee2a3e87..d1c809870 100644 --- a/lib/l10n/intl_fil.arb +++ b/lib/l10n/intl_fil.arb @@ -2784,7 +2784,7 @@ "selectAll": "Piliin lahat", "deselectAll": "Huwag piliin lahat", "@@locale": "fil", - "@@last_modified": "2026-01-29 15:24:58.900213", + "@@last_modified": "2026-02-05 10:09:53.428313", "@setCustomPermissionLevel": { "type": "String", "placeholders": {} @@ -11945,5 +11945,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idyoma", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Pinagsama", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index d0ae2b24d..30464e9eb 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -1,6 +1,6 @@ { "@@locale": "fr", - "@@last_modified": "2026-01-29 15:25:26.287351", + "@@last_modified": "2026-02-05 10:10:24.987990", "about": "À propos", "@about": { "type": "String", @@ -11293,5 +11293,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verbe à particule", + "grammarCopyPOScompn": "Composé", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ga.arb b/lib/l10n/intl_ga.arb index f7df2c660..ac8fb9bf9 100644 --- a/lib/l10n/intl_ga.arb +++ b/lib/l10n/intl_ga.arb @@ -4514,7 +4514,7 @@ "playWithAI": "Imir le AI faoi láthair", "courseStartDesc": "Tá Bot Pangea réidh chun dul am ar bith!\n\n...ach is fearr foghlaim le cairde!", "@@locale": "ga", - "@@last_modified": "2026-01-29 15:25:25.078471", + "@@last_modified": "2026-02-05 10:10:23.901035", "@customReaction": { "type": "String", "placeholders": {} @@ -10967,5 +10967,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Frása", + "grammarCopyPOSphrasalv": "Gníomhhacht Phrásúil", + "grammarCopyPOScompn": "Comhoibriú", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_gl.arb b/lib/l10n/intl_gl.arb index 1f5274403..44263a6c5 100644 --- a/lib/l10n/intl_gl.arb +++ b/lib/l10n/intl_gl.arb @@ -1,6 +1,6 @@ { "@@locale": "gl", - "@@last_modified": "2026-01-29 15:24:27.141903", + "@@last_modified": "2026-02-05 10:09:14.434046", "about": "Acerca de", "@about": { "type": "String", @@ -10966,5 +10966,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verbo Frasal", + "grammarCopyPOScompn": "Composto", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_he.arb b/lib/l10n/intl_he.arb index eac9106e9..63f1dae8f 100644 --- a/lib/l10n/intl_he.arb +++ b/lib/l10n/intl_he.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:38.819884", + "@@last_modified": "2026-02-05 10:09:28.796405", "about": "אודות", "@about": { "type": "String", @@ -12018,5 +12018,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "ביטוי", + "grammarCopyPOSphrasalv": "פועל פיזי", + "grammarCopyPOScompn": "מורכב", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_hi.arb b/lib/l10n/intl_hi.arb index cf8df33d6..d7758c041 100644 --- a/lib/l10n/intl_hi.arb +++ b/lib/l10n/intl_hi.arb @@ -4480,7 +4480,7 @@ "playWithAI": "अभी के लिए एआई के साथ खेलें", "courseStartDesc": "पैंजिया बॉट कभी भी जाने के लिए तैयार है!\n\n...लेकिन दोस्तों के साथ सीखना बेहतर है!", "@@locale": "hi", - "@@last_modified": "2026-01-29 15:25:18.981310", + "@@last_modified": "2026-02-05 10:10:16.696075", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -12054,5 +12054,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "मुहावरा", + "grammarCopyPOSphrasalv": "फ्रेज़ल वर्ब", + "grammarCopyPOScompn": "संयुक्त", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_hr.arb b/lib/l10n/intl_hr.arb index 8c9c17e9e..fa3e6d919 100644 --- a/lib/l10n/intl_hr.arb +++ b/lib/l10n/intl_hr.arb @@ -1,6 +1,6 @@ { "@@locale": "hr", - "@@last_modified": "2026-01-29 15:24:37.899487", + "@@last_modified": "2026-02-05 10:09:27.459987", "about": "Informacije", "@about": { "type": "String", @@ -11341,5 +11341,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasalni Glagol", + "grammarCopyPOScompn": "Složenica", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_hu.arb b/lib/l10n/intl_hu.arb index 2c437036d..7cdb4f9a1 100644 --- a/lib/l10n/intl_hu.arb +++ b/lib/l10n/intl_hu.arb @@ -1,6 +1,6 @@ { "@@locale": "hu", - "@@last_modified": "2026-01-29 15:24:31.343536", + "@@last_modified": "2026-02-05 10:09:19.675804", "about": "Névjegy", "@about": { "type": "String", @@ -10970,5 +10970,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idióma", + "grammarCopyPOSphrasalv": "Frazális ige", + "grammarCopyPOScompn": "Összetett", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ia.arb b/lib/l10n/intl_ia.arb index 3dc3ed872..3321a7c8a 100644 --- a/lib/l10n/intl_ia.arb +++ b/lib/l10n/intl_ia.arb @@ -1955,7 +1955,7 @@ "playWithAI": "Joca con le IA pro ora", "courseStartDesc": "Pangea Bot es preste a comenzar a qualunque momento!\n\n...ma apprender es melior con amicos!", "@@locale": "ia", - "@@last_modified": "2026-01-29 15:24:39.850520", + "@@last_modified": "2026-02-05 10:09:29.962506", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -12047,5 +12047,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verbo Phrasal", + "grammarCopyPOScompn": "Compuesto", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_id.arb b/lib/l10n/intl_id.arb index 852899b82..cb48fe670 100644 --- a/lib/l10n/intl_id.arb +++ b/lib/l10n/intl_id.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:32.345033", + "@@last_modified": "2026-02-05 10:09:21.065759", "setAsCanonicalAlias": "Atur sebagai alias utama", "@setAsCanonicalAlias": { "type": "String", @@ -10960,5 +10960,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Kata Kerja Phrasal", + "grammarCopyPOScompn": "Kombinasi", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ie.arb b/lib/l10n/intl_ie.arb index 648c61a75..d473493ff 100644 --- a/lib/l10n/intl_ie.arb +++ b/lib/l10n/intl_ie.arb @@ -4369,7 +4369,7 @@ "playWithAI": "Joca con AI pro ora", "courseStartDesc": "Pangea Bot es preste a partir a qualunque momento!\n\n...ma apprender es melior con amicos!", "@@locale": "ie", - "@@last_modified": "2026-01-29 15:24:36.672214", + "@@last_modified": "2026-02-05 10:09:26.195275", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11943,5 +11943,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Composé", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb index 6065b95a3..066e58676 100644 --- a/lib/l10n/intl_it.arb +++ b/lib/l10n/intl_it.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:48.551043", + "@@last_modified": "2026-02-05 10:09:41.124551", "about": "Informazioni", "@about": { "type": "String", @@ -10972,5 +10972,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verbo Frazionale", + "grammarCopyPOScompn": "Composto", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb index 791bd9211..360e48bfa 100644 --- a/lib/l10n/intl_ja.arb +++ b/lib/l10n/intl_ja.arb @@ -1,6 +1,6 @@ { "@@locale": "ja", - "@@last_modified": "2026-01-29 15:25:17.739953", + "@@last_modified": "2026-02-05 10:10:15.587333", "about": "このアプリについて", "@about": { "type": "String", @@ -11759,5 +11759,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "イディオム", + "grammarCopyPOSphrasalv": "句動詞", + "grammarCopyPOScompn": "複合語", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ka.arb b/lib/l10n/intl_ka.arb index 7e2738eb0..78003f70e 100644 --- a/lib/l10n/intl_ka.arb +++ b/lib/l10n/intl_ka.arb @@ -2591,7 +2591,7 @@ "playWithAI": "ამ დროისთვის ითამაშეთ AI-თან", "courseStartDesc": "Pangea Bot მზადაა ნებისმიერ დროს გასასვლელად!\n\n...მაგრამ სწავლა უკეთესია მეგობრებთან ერთად!", "@@locale": "ka", - "@@last_modified": "2026-01-29 15:25:22.347053", + "@@last_modified": "2026-02-05 10:10:20.523925", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11999,5 +11999,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "იდიომი", + "grammarCopyPOSphrasalv": "ფრაზული ზმნა", + "grammarCopyPOScompn": "კომპლექსური", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ko.arb b/lib/l10n/intl_ko.arb index 82964ff50..63b504369 100644 --- a/lib/l10n/intl_ko.arb +++ b/lib/l10n/intl_ko.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:24.593568", + "@@last_modified": "2026-02-05 10:09:10.325473", "about": "소개", "@about": { "type": "String", @@ -11077,5 +11077,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "관용구", + "grammarCopyPOSphrasalv": "구동사", + "grammarCopyPOScompn": "복합어", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_lt.arb b/lib/l10n/intl_lt.arb index f063aeb25..8a69923f6 100644 --- a/lib/l10n/intl_lt.arb +++ b/lib/l10n/intl_lt.arb @@ -3858,7 +3858,7 @@ "playWithAI": "Žaiskite su dirbtiniu intelektu dabar", "courseStartDesc": "Pangea botas pasiruošęs bet kada pradėti!\n\n...bet mokymasis yra geresnis su draugais!", "@@locale": "lt", - "@@last_modified": "2026-01-29 15:25:04.531263", + "@@last_modified": "2026-02-05 10:10:01.069181", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11774,5 +11774,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Sudėtinis", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_lv.arb b/lib/l10n/intl_lv.arb index f87969abd..55e1affc6 100644 --- a/lib/l10n/intl_lv.arb +++ b/lib/l10n/intl_lv.arb @@ -4480,7 +4480,7 @@ "playWithAI": "Tagad spēlējiet ar AI", "courseStartDesc": "Pangea bots ir gatavs jebkurā laikā!\n\n...bet mācīties ir labāk ar draugiem!", "@@locale": "lv", - "@@last_modified": "2026-01-29 15:25:00.127768", + "@@last_modified": "2026-02-05 10:09:54.766036", "analyticsInactiveTitle": "Pieprasījumi neaktīviem lietotājiem nevar tikt nosūtīti", "analyticsInactiveDesc": "Neaktīvi lietotāji, kuri nav pieteikušies kopš šīs funkcijas ieviešanas, neredzēs jūsu pieprasījumu.\n\nPieprasījuma poga parādīsies, kad viņi atgriezīsies. Jūs varat atkārtoti nosūtīt pieprasījumu vēlāk, noklikšķinot uz pieprasījuma pogas viņu vārdā, kad tā būs pieejama.", "accessRequestedTitle": "Pieprasījums piekļūt analītikai", @@ -10955,5 +10955,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Frazēts darbības vārds", + "grammarCopyPOScompn": "Savienojums", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_nb.arb b/lib/l10n/intl_nb.arb index b2ed996b2..9b520323a 100644 --- a/lib/l10n/intl_nb.arb +++ b/lib/l10n/intl_nb.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:51.834093", + "@@last_modified": "2026-02-05 10:09:45.325631", "about": "Om", "@about": { "type": "String", @@ -12062,5 +12062,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Sammensatt", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_nl.arb b/lib/l10n/intl_nl.arb index d4ce83b75..6dea520bb 100644 --- a/lib/l10n/intl_nl.arb +++ b/lib/l10n/intl_nl.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:07.906820", + "@@last_modified": "2026-02-05 10:10:04.986596", "about": "Over ons", "@about": { "type": "String", @@ -10969,5 +10969,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idioom", + "grammarCopyPOSphrasalv": "Frazal Werkwoord", + "grammarCopyPOScompn": "Samenstelling", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pl.arb b/lib/l10n/intl_pl.arb index ee832a63d..aaa6f96a0 100644 --- a/lib/l10n/intl_pl.arb +++ b/lib/l10n/intl_pl.arb @@ -1,6 +1,6 @@ { "@@locale": "pl", - "@@last_modified": "2026-01-29 15:25:13.973596", + "@@last_modified": "2026-02-05 10:10:11.791789", "about": "O aplikacji", "@about": { "type": "String", @@ -10967,5 +10967,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Czasownik frazowy", + "grammarCopyPOScompn": "Złożony", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index cddb98697..9b8ecb9b7 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:42.742766", + "@@last_modified": "2026-02-05 10:09:34.897101", "copiedToClipboard": "Copiada para a área de transferência", "@copiedToClipboard": { "type": "String", @@ -12069,5 +12069,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verbo Frasal", + "grammarCopyPOScompn": "Composto", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pt_BR.arb b/lib/l10n/intl_pt_BR.arb index a08784335..cbe1ca38b 100644 --- a/lib/l10n/intl_pt_BR.arb +++ b/lib/l10n/intl_pt_BR.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:40.772387", + "@@last_modified": "2026-02-05 10:09:31.755690", "about": "Sobre", "@about": { "type": "String", @@ -11327,5 +11327,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verbo Frasal", + "grammarCopyPOScompn": "Composto", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pt_PT.arb b/lib/l10n/intl_pt_PT.arb index 195032a1e..c74ddde52 100644 --- a/lib/l10n/intl_pt_PT.arb +++ b/lib/l10n/intl_pt_PT.arb @@ -3328,7 +3328,7 @@ "selectAll": "Selecionar tudo", "deselectAll": "Desmarcar tudo", "@@locale": "pt_PT", - "@@last_modified": "2026-01-29 15:24:56.954106", + "@@last_modified": "2026-02-05 10:09:50.725651", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11998,5 +11998,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verbo Frasal", + "grammarCopyPOScompn": "Composto", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ro.arb b/lib/l10n/intl_ro.arb index 64f5f0ac6..8dc92a39b 100644 --- a/lib/l10n/intl_ro.arb +++ b/lib/l10n/intl_ro.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:33.490827", + "@@last_modified": "2026-02-05 10:09:23.119007", "about": "Despre", "@about": { "type": "String", @@ -11704,5 +11704,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Verb Phrastic", + "grammarCopyPOScompn": "Compus", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index aa0cd5494..777cd260a 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -1,6 +1,6 @@ { "@@locale": "ru", - "@@last_modified": "2026-01-29 15:25:21.118191", + "@@last_modified": "2026-02-05 10:10:19.334362", "about": "О проекте", "@about": { "type": "String", @@ -11077,5 +11077,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Идиома", + "grammarCopyPOSphrasalv": "Фразовый глагол", + "grammarCopyPOScompn": "Составное", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sk.arb b/lib/l10n/intl_sk.arb index cec62d273..d6437f578 100644 --- a/lib/l10n/intl_sk.arb +++ b/lib/l10n/intl_sk.arb @@ -1,6 +1,6 @@ { "@@locale": "sk", - "@@last_modified": "2026-01-29 15:24:35.550214", + "@@last_modified": "2026-02-05 10:09:24.752898", "about": "O aplikácii", "@about": { "type": "String", @@ -12053,5 +12053,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idióm", + "grammarCopyPOSphrasalv": "Frázové sloveso", + "grammarCopyPOScompn": "Zložené", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sl.arb b/lib/l10n/intl_sl.arb index 554e749a8..9743b3040 100644 --- a/lib/l10n/intl_sl.arb +++ b/lib/l10n/intl_sl.arb @@ -2461,7 +2461,7 @@ "playWithAI": "Za zdaj igrajte z AI-jem", "courseStartDesc": "Pangea Bot je pripravljen kadarkoli!\n\n...ampak je bolje učiti se s prijatelji!", "@@locale": "sl", - "@@last_modified": "2026-01-29 15:24:46.298517", + "@@last_modified": "2026-02-05 10:09:38.721866", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -12050,5 +12050,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasalni glagol", + "grammarCopyPOScompn": "Sestavljenka", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sr.arb b/lib/l10n/intl_sr.arb index f1df84758..831875ff3 100644 --- a/lib/l10n/intl_sr.arb +++ b/lib/l10n/intl_sr.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:23.670980", + "@@last_modified": "2026-02-05 10:10:22.625655", "about": "О програму", "@about": { "type": "String", @@ -12071,5 +12071,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasal Verb", + "grammarCopyPOScompn": "Kombinacija", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sv.arb b/lib/l10n/intl_sv.arb index 8fb7efd8a..721c6fbe0 100644 --- a/lib/l10n/intl_sv.arb +++ b/lib/l10n/intl_sv.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:15.398282", + "@@last_modified": "2026-02-05 10:10:13.035755", "about": "Om", "@about": { "type": "String", @@ -11447,5 +11447,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Idiom", + "grammarCopyPOSphrasalv": "Phrasverb", + "grammarCopyPOScompn": "Sammansatt", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ta.arb b/lib/l10n/intl_ta.arb index 73046146b..744131c01 100644 --- a/lib/l10n/intl_ta.arb +++ b/lib/l10n/intl_ta.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:06.783614", + "@@last_modified": "2026-02-05 10:10:03.555298", "acceptedTheInvitation": "👍 {username} அழைப்பை ஏற்றுக்கொண்டது", "@acceptedTheInvitation": { "type": "String", @@ -11193,5 +11193,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "விளக்கம்", + "grammarCopyPOSphrasalv": "பொருள் வினை", + "grammarCopyPOScompn": "சேர்க்கை", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_te.arb b/lib/l10n/intl_te.arb index dbd2f9b9b..e1f8f030c 100644 --- a/lib/l10n/intl_te.arb +++ b/lib/l10n/intl_te.arb @@ -1917,7 +1917,7 @@ "playWithAI": "ఇప్పుడే AI తో ఆడండి", "courseStartDesc": "పాంజియా బాట్ ఎప్పుడైనా సిద్ధంగా ఉంటుంది!\n\n...కానీ స్నేహితులతో నేర్చుకోవడం మెరుగైనది!", "@@locale": "te", - "@@last_modified": "2026-01-29 15:25:03.384353", + "@@last_modified": "2026-02-05 10:09:59.064928", "@setCustomPermissionLevel": { "type": "String", "placeholders": {} @@ -12058,5 +12058,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "సామెత", + "grammarCopyPOSphrasalv": "పదబంధ క్రియ", + "grammarCopyPOScompn": "సంకలనం", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_th.arb b/lib/l10n/intl_th.arb index c66846246..2f5e88895 100644 --- a/lib/l10n/intl_th.arb +++ b/lib/l10n/intl_th.arb @@ -4453,7 +4453,7 @@ "playWithAI": "เล่นกับ AI ชั่วคราว", "courseStartDesc": "Pangea Bot พร้อมที่จะเริ่มต้นได้ทุกเมื่อ!\n\n...แต่การเรียนรู้ดีกว่ากับเพื่อน!", "@@locale": "th", - "@@last_modified": "2026-01-29 15:24:55.978319", + "@@last_modified": "2026-02-05 10:09:49.236652", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -12027,5 +12027,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "สำนวน", + "grammarCopyPOSphrasalv": "กริยาวลี", + "grammarCopyPOScompn": "คำผสม", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_tr.arb b/lib/l10n/intl_tr.arb index 0b7e342b3..3df573555 100644 --- a/lib/l10n/intl_tr.arb +++ b/lib/l10n/intl_tr.arb @@ -1,6 +1,6 @@ { "@@locale": "tr", - "@@last_modified": "2026-01-29 15:25:02.072081", + "@@last_modified": "2026-02-05 10:09:57.710087", "about": "Hakkında", "@about": { "type": "String", @@ -11191,5 +11191,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Deyim", + "grammarCopyPOSphrasalv": "Deyim Fiili", + "grammarCopyPOScompn": "Bileşik", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_uk.arb b/lib/l10n/intl_uk.arb index 68da42954..d4d7de8bb 100644 --- a/lib/l10n/intl_uk.arb +++ b/lib/l10n/intl_uk.arb @@ -1,6 +1,6 @@ { "@@locale": "uk", - "@@last_modified": "2026-01-29 15:24:49.757644", + "@@last_modified": "2026-02-05 10:09:42.549877", "about": "Про застосунок", "@about": { "type": "String", @@ -10963,5 +10963,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Ідіома", + "grammarCopyPOSphrasalv": "Фразове дієслово", + "grammarCopyPOScompn": "Складене", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_vi.arb b/lib/l10n/intl_vi.arb index 896375f57..7c8c9bc73 100644 --- a/lib/l10n/intl_vi.arb +++ b/lib/l10n/intl_vi.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:25:05.410589", + "@@last_modified": "2026-02-05 10:10:02.295528", "about": "Giới thiệu", "@about": { "type": "String", @@ -6547,5 +6547,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "Thành ngữ", + "grammarCopyPOSphrasalv": "Động từ cụm", + "grammarCopyPOScompn": "Hợp chất", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_yue.arb b/lib/l10n/intl_yue.arb index 34c8276a5..410706220 100644 --- a/lib/l10n/intl_yue.arb +++ b/lib/l10n/intl_yue.arb @@ -1853,7 +1853,7 @@ "selectAll": "全選", "deselectAll": "取消全選", "@@locale": "yue", - "@@last_modified": "2026-01-29 15:24:47.783824", + "@@last_modified": "2026-02-05 10:09:39.916672", "@ignoreUser": { "type": "String", "placeholders": {} @@ -12060,5 +12060,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "成語", + "grammarCopyPOSphrasalv": "短語動詞", + "grammarCopyPOScompn": "複合詞", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb index 5ea264458..e141c5b19 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/intl_zh.arb @@ -1,6 +1,6 @@ { "@@locale": "zh", - "@@last_modified": "2026-01-29 15:25:09.954015", + "@@last_modified": "2026-02-05 10:10:07.531332", "about": "关于", "@about": { "type": "String", @@ -10960,5 +10960,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "成语", + "grammarCopyPOSphrasalv": "短语动词", + "grammarCopyPOScompn": "复合词", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_zh_Hant.arb b/lib/l10n/intl_zh_Hant.arb index 0999094f3..0aea18e73 100644 --- a/lib/l10n/intl_zh_Hant.arb +++ b/lib/l10n/intl_zh_Hant.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2026-01-29 15:24:57.889262", + "@@last_modified": "2026-02-05 10:09:52.100652", "about": "關於", "@about": { "type": "String", @@ -10967,5 +10967,20 @@ "@emptyAudioError": { "type": "String", "placeholders": {} + }, + "grammarCopyPOSidiom": "成語", + "grammarCopyPOSphrasalv": "片語動詞", + "grammarCopyPOScompn": "合成詞", + "@grammarCopyPOSidiom": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOSphrasalv": { + "type": "String", + "placeholders": {} + }, + "@grammarCopyPOScompn": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/pangea/morphs/get_grammar_copy.dart b/lib/pangea/morphs/get_grammar_copy.dart index 14085ab4a..ce811ba63 100644 --- a/lib/pangea/morphs/get_grammar_copy.dart +++ b/lib/pangea/morphs/get_grammar_copy.dart @@ -61,6 +61,12 @@ String? getGrammarCopy({ return L10n.of(context).grammarCopyPOSintj; case 'grammarCopyPOSx': return L10n.of(context).grammarCopyPOSx; + case 'grammarCopyPOSidiom': + return L10n.of(context).grammarCopyPOSidiom; + case 'grammarCopyPOSphrasalv': + return L10n.of(context).grammarCopyPOSphrasalv; + case 'grammarCopyPOScompn': + return L10n.of(context).grammarCopyPOScompn; case 'grammarCopyGENDERfem': return L10n.of(context).grammarCopyGENDERfem; case 'grammarCopyPERSON2': diff --git a/lib/pangea/morphs/parts_of_speech_enum.dart b/lib/pangea/morphs/parts_of_speech_enum.dart index 1aad8de71..b8f919be9 100644 --- a/lib/pangea/morphs/parts_of_speech_enum.dart +++ b/lib/pangea/morphs/parts_of_speech_enum.dart @@ -1,13 +1,6 @@ -import 'dart:developer'; - -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - import 'package:collection/collection.dart'; -import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.dart'; -import 'package:fluffychat/pangea/practice_activities/activity_type_enum.dart'; /// list ordered by priority enum PartOfSpeechEnum { @@ -51,55 +44,6 @@ enum PartOfSpeechEnum { return pos; } - String getDisplayCopy(BuildContext context) { - switch (this) { - case PartOfSpeechEnum.sconj: - return L10n.of(context).grammarCopyPOSsconj; - case PartOfSpeechEnum.num: - return L10n.of(context).grammarCopyPOSnum; - case PartOfSpeechEnum.verb: - return L10n.of(context).grammarCopyPOSverb; - case PartOfSpeechEnum.affix: - return L10n.of(context).grammarCopyPOSaffix; - case PartOfSpeechEnum.part: - return L10n.of(context).grammarCopyPOSpart; - case PartOfSpeechEnum.adj: - return L10n.of(context).grammarCopyPOSadj; - case PartOfSpeechEnum.cconj: - return L10n.of(context).grammarCopyPOScconj; - case PartOfSpeechEnum.punct: - return L10n.of(context).grammarCopyPOSpunct; - case PartOfSpeechEnum.adv: - return L10n.of(context).grammarCopyPOSadv; - case PartOfSpeechEnum.aux: - return L10n.of(context).grammarCopyPOSaux; - case PartOfSpeechEnum.space: - return L10n.of(context).grammarCopyPOSspace; - case PartOfSpeechEnum.sym: - return L10n.of(context).grammarCopyPOSsym; - case PartOfSpeechEnum.det: - return L10n.of(context).grammarCopyPOSdet; - case PartOfSpeechEnum.pron: - return L10n.of(context).grammarCopyPOSpron; - case PartOfSpeechEnum.adp: - return L10n.of(context).grammarCopyPOSadp; - case PartOfSpeechEnum.propn: - return L10n.of(context).grammarCopyPOSpropn; - case PartOfSpeechEnum.noun: - return L10n.of(context).grammarCopyPOSnoun; - case PartOfSpeechEnum.intj: - return L10n.of(context).grammarCopyPOSintj; - case PartOfSpeechEnum.idiom: - return L10n.of(context).grammarCopyPOSidiom; - case PartOfSpeechEnum.phrasalv: - return L10n.of(context).grammarCopyPOSphrasalv; - case PartOfSpeechEnum.compn: - return L10n.of(context).grammarCopyPOScompn; - case PartOfSpeechEnum.x: - return L10n.of(context).grammarCopyPOSx; - } - } - bool get isContentWord => [ PartOfSpeechEnum.noun, PartOfSpeechEnum.verb, @@ -109,64 +53,4 @@ enum PartOfSpeechEnum { PartOfSpeechEnum.phrasalv, PartOfSpeechEnum.compn, ].contains(this); - - bool get canBeDefined => [ - PartOfSpeechEnum.noun, - PartOfSpeechEnum.verb, - PartOfSpeechEnum.adj, - PartOfSpeechEnum.adv, - PartOfSpeechEnum.propn, - PartOfSpeechEnum.intj, - PartOfSpeechEnum.det, - PartOfSpeechEnum.pron, - PartOfSpeechEnum.sconj, - PartOfSpeechEnum.cconj, - PartOfSpeechEnum.adp, - PartOfSpeechEnum.aux, - PartOfSpeechEnum.num, - PartOfSpeechEnum.idiom, - PartOfSpeechEnum.phrasalv, - PartOfSpeechEnum.compn, - ].contains(this); - - bool get canBeHeard => [ - PartOfSpeechEnum.noun, - PartOfSpeechEnum.verb, - PartOfSpeechEnum.adj, - PartOfSpeechEnum.adv, - PartOfSpeechEnum.propn, - PartOfSpeechEnum.intj, - PartOfSpeechEnum.det, - PartOfSpeechEnum.pron, - PartOfSpeechEnum.sconj, - PartOfSpeechEnum.cconj, - PartOfSpeechEnum.adp, - PartOfSpeechEnum.aux, - PartOfSpeechEnum.num, - PartOfSpeechEnum.idiom, - PartOfSpeechEnum.phrasalv, - PartOfSpeechEnum.compn, - ].contains(this); - - bool eligibleForPractice(ActivityTypeEnum activityType) { - switch (activityType) { - case ActivityTypeEnum.emoji: - case ActivityTypeEnum.wordMeaning: - case ActivityTypeEnum.morphId: - return canBeDefined; - case ActivityTypeEnum.wordFocusListening: - return canBeHeard; - default: - debugger(when: kDebugMode); - return false; - } - } -} - -String? getVocabCategoryName(String category, BuildContext context) { - return PartOfSpeechEnum.values - .firstWhereOrNull( - (pos) => pos.name.toLowerCase() == category.toLowerCase(), - ) - ?.getDisplayCopy(context); }