feat: show language mismatch popup on select message not in L2
This commit is contained in:
parent
18462ea000
commit
613a4cce9c
60 changed files with 451 additions and 130 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "ar",
|
||||
"@@last_modified": "2025-12-03 10:30:28.531390",
|
||||
"@@last_modified": "2025-12-03 11:36:55.312756",
|
||||
"about": "حول",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10852,5 +10852,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "لغة الهدف الخاصة بك لا تتطابق مع هذه الرسالة. هل تريد تحديث لغة الهدف الخاصة بك؟",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1915,7 +1915,7 @@
|
|||
"playWithAI": "Пакуль гуляйце з ШІ",
|
||||
"courseStartDesc": "Pangea Bot гатовы да працы ў любы час!\n\n...але навучанне лепш з сябрамі!",
|
||||
"@@locale": "be",
|
||||
"@@last_modified": "2025-12-03 10:30:13.500676",
|
||||
"@@last_modified": "2025-12-03 11:36:45.348859",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11734,5 +11734,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ваша мэтавая мова не супадае з гэтым паведамленнем. Абнавіць вашу мэтавую мову?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:46.970936",
|
||||
"@@last_modified": "2025-12-03 11:37:07.254419",
|
||||
"about": "সম্পর্কে",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11739,5 +11739,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "আপনার লক্ষ্য ভাষা এই বার্তার সাথে মেলে না। আপনার লক্ষ্য ভাষা আপডেট করবেন?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4282,7 +4282,7 @@
|
|||
"joinPublicTrip": "མི་ཚེས་ལ་ལོག་འབད།",
|
||||
"startOwnTrip": "ངེད་རང་གི་ལོག་ལ་སྦྱོར་བཅོས།",
|
||||
"@@locale": "bo",
|
||||
"@@last_modified": "2025-12-03 10:30:43.532170",
|
||||
"@@last_modified": "2025-12-03 11:37:05.020486",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -10385,5 +10385,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Bokmål mål språket ditt samsvarer ikke med denne meldingen. Oppdater målspråket ditt?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:15.655552",
|
||||
"@@last_modified": "2025-12-03 11:36:46.628205",
|
||||
"about": "Quant a",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10659,5 +10659,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "El teu idioma de destinació no coincideix amb aquest missatge. Vols actualitzar el teu idioma de destinació?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "cs",
|
||||
"@@last_modified": "2025-12-03 10:30:09.271970",
|
||||
"@@last_modified": "2025-12-03 11:36:43.008688",
|
||||
"about": "O aplikaci",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11242,5 +11242,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Jazyk cíle neodpovídá této zprávě. Chcete aktualizovat svůj cílový jazyk?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1934,7 +1934,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": "2025-12-03 10:29:29.731950",
|
||||
"@@last_modified": "2025-12-03 11:36:19.185422",
|
||||
"@aboutHomeserver": {
|
||||
"type": "String",
|
||||
"placeholders": {
|
||||
|
|
@ -11697,5 +11697,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Dit målsprog stemmer ikke overens med denne besked. Opdater dit målsprog?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "de",
|
||||
"@@last_modified": "2025-12-03 10:29:59.289566",
|
||||
"@@last_modified": "2025-12-03 11:36:37.054264",
|
||||
"alwaysUse24HourFormat": "true",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"description": "Set to true to always display time of day in 24 hour format."
|
||||
|
|
@ -10642,5 +10642,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ihre Zielsprache stimmt nicht mit dieser Nachricht überein. Möchten Sie Ihre Zielsprache aktualisieren?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4460,7 +4460,7 @@
|
|||
"playWithAI": "Παίξτε με την Τεχνητή Νοημοσύνη προς το παρόν",
|
||||
"courseStartDesc": "Ο Pangea Bot είναι έτοιμος να ξεκινήσει οποιαδήποτε στιγμή!\n\n...αλλά η μάθηση είναι καλύτερη με φίλους!",
|
||||
"@@locale": "el",
|
||||
"@@last_modified": "2025-12-03 10:30:57.003976",
|
||||
"@@last_modified": "2025-12-03 11:37:12.093444",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11693,5 +11693,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Η γλώσσα στόχου σας δεν ταιριάζει με αυτό το μήνυμα. Θέλετε να ενημερώσετε τη γλώσσα στόχου σας;",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4989,5 +4989,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"pickDifferentActivity": "Pick a different activity"
|
||||
"pickDifferentActivity": "Pick a different activity",
|
||||
"messageLanguageMismatchMessage": "Your target language doesn't match this message. Update your target language?"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:31:03.548316",
|
||||
"@@last_modified": "2025-12-03 11:37:15.815743",
|
||||
"about": "Prio",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11724,5 +11724,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Via celolingvo ne kongruas kun ĉi tiu mesaĝo. Ĉu ĝisdatigi vian celolingvon?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "es",
|
||||
"@@last_modified": "2025-12-03 10:29:23.778699",
|
||||
"@@last_modified": "2025-12-03 11:36:15.055874",
|
||||
"about": "Acerca de",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -7870,5 +7870,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "El idioma de destino no coincide con este mensaje. ¿Actualizar el idioma de destino?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "et",
|
||||
"@@last_modified": "2025-12-03 10:29:57.478134",
|
||||
"@@last_modified": "2025-12-03 11:36:35.627602",
|
||||
"about": "Rakenduse teave",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10906,5 +10906,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Teie sihtkeel ei ühti selle sõnumiga. Kas soovite oma sihtkeelt uuendada?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "eu",
|
||||
"@@last_modified": "2025-12-03 10:29:53.791099",
|
||||
"@@last_modified": "2025-12-03 11:36:32.505093",
|
||||
"about": "Honi buruz",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10635,5 +10635,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Zure helburu hizkuntza ez da mezu honekin bat etortzen. Eguneratu al dezakezu zure helburu hizkuntza?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:49.073619",
|
||||
"@@last_modified": "2025-12-03 11:37:08.469937",
|
||||
"repeatPassword": "تکرار رمزعبور",
|
||||
"@repeatPassword": {},
|
||||
"about": "درباره",
|
||||
|
|
@ -11367,5 +11367,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "زبان هدف شما با این پیام مطابقت ندارد. آیا زبان هدف خود را بهروزرسانی کنید؟",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4013,7 +4013,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": "2025-12-03 10:29:28.000186",
|
||||
"@@last_modified": "2025-12-03 11:36:17.887679",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11258,5 +11258,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Kohdekielesi ei vastaa tätä viestiä. Päivitäkö kohdekielesi?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -2791,7 +2791,7 @@
|
|||
"selectAll": "Piliin lahat",
|
||||
"deselectAll": "Huwag piliin lahat",
|
||||
"@@locale": "fil",
|
||||
"@@last_modified": "2025-12-03 10:30:24.695985",
|
||||
"@@last_modified": "2025-12-03 11:36:52.845643",
|
||||
"@setCustomPermissionLevel": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11611,5 +11611,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ang iyong target na wika ay hindi tumutugma sa mensaheng ito. I-update ang iyong target na wika?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "fr",
|
||||
"@@last_modified": "2025-12-03 10:31:16.115668",
|
||||
"@@last_modified": "2025-12-03 11:37:22.098085",
|
||||
"about": "À propos",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10959,5 +10959,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Votre langue cible ne correspond pas à ce message. Voulez-vous mettre à jour votre langue cible ?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4521,7 +4521,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": "2025-12-03 10:31:12.355807",
|
||||
"@@last_modified": "2025-12-03 11:37:21.302431",
|
||||
"@customReaction": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -10633,5 +10633,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ní comhoiriúnach do theanga sprioc le haghaidh an teachtaireachta seo. An nuashonraigh do theanga sprioc?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "gl",
|
||||
"@@last_modified": "2025-12-03 10:29:25.436969",
|
||||
"@@last_modified": "2025-12-03 11:36:16.780690",
|
||||
"about": "Acerca de",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10632,5 +10632,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "A súa lingua de destino non coincide con este mensaxe. Actualizar a súa lingua de destino?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:29:47.561493",
|
||||
"@@last_modified": "2025-12-03 11:36:29.117862",
|
||||
"about": "אודות",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11684,5 +11684,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "שפת היעד שלך אינה תואמת את ההודעה הזו. האם לעדכן את שפת היעד שלך?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4487,7 +4487,7 @@
|
|||
"playWithAI": "अभी के लिए एआई के साथ खेलें",
|
||||
"courseStartDesc": "पैंजिया बॉट कभी भी जाने के लिए तैयार है!\n\n...लेकिन दोस्तों के साथ सीखना बेहतर है!",
|
||||
"@@locale": "hi",
|
||||
"@@last_modified": "2025-12-03 10:31:01.035602",
|
||||
"@@last_modified": "2025-12-03 11:37:14.540576",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11720,5 +11720,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "आपकी लक्षित भाषा इस संदेश से मेल नहीं खाती। क्या आप अपनी लक्षित भाषा अपडेट करना चाहेंगे?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "hr",
|
||||
"@@last_modified": "2025-12-03 10:29:43.328965",
|
||||
"@@last_modified": "2025-12-03 11:36:27.424602",
|
||||
"about": "Informacije",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11007,5 +11007,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Vaš ciljni jezik se ne podudara s ovom porukom. Želite li ažurirati svoj ciljni jezik?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "hu",
|
||||
"@@last_modified": "2025-12-03 10:29:32.057483",
|
||||
"@@last_modified": "2025-12-03 11:36:20.356699",
|
||||
"about": "Névjegy",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10636,5 +10636,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "A cél nyelve nem egyezik meg ezzel az üzenettel. Frissíti a cél nyelvét?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1962,7 +1962,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": "2025-12-03 10:29:49.294834",
|
||||
"@@last_modified": "2025-12-03 11:36:30.210370",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11713,5 +11713,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Tua lingua target non concordat cum hoc nuntio. Renovare tuam linguam target?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:29:35.057047",
|
||||
"@@last_modified": "2025-12-03 11:36:21.817521",
|
||||
"setAsCanonicalAlias": "Atur sebagai alias utama",
|
||||
"@setAsCanonicalAlias": {
|
||||
"type": "String",
|
||||
|
|
@ -10626,5 +10626,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Bahasa target Anda tidak cocok dengan pesan ini. Perbarui bahasa target Anda?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4376,7 +4376,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": "2025-12-03 10:29:41.092414",
|
||||
"@@last_modified": "2025-12-03 11:36:26.117148",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11609,5 +11609,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Tua lingua target non concordat cum hoc nuntio. Renovare linguam tuam target?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:04.563615",
|
||||
"@@last_modified": "2025-12-03 11:36:40.442034",
|
||||
"about": "Informazioni",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10638,5 +10638,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "La tua lingua di destinazione non corrisponde a questo messaggio. Vuoi aggiornare la tua lingua di destinazione?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "ja",
|
||||
"@@last_modified": "2025-12-03 10:30:59.054527",
|
||||
"@@last_modified": "2025-12-03 11:37:13.415132",
|
||||
"about": "このアプリについて",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11425,5 +11425,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "ターゲット言語がこのメッセージと一致しません。ターゲット言語を更新しますか?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -2598,7 +2598,7 @@
|
|||
"playWithAI": "ამ დროისთვის ითამაშეთ AI-თან",
|
||||
"courseStartDesc": "Pangea Bot მზადაა ნებისმიერ დროს გასასვლელად!\n\n...მაგრამ სწავლა უკეთესია მეგობრებთან ერთად!",
|
||||
"@@locale": "ka",
|
||||
"@@last_modified": "2025-12-03 10:31:07.852817",
|
||||
"@@last_modified": "2025-12-03 11:37:18.523462",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11665,5 +11665,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "თქვენი მიზნობრივი ენა არ ემთხვევა ამ შეტყობინებას. განაახლეთ თქვენი მიზნობრივი ენა?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:29:21.753863",
|
||||
"@@last_modified": "2025-12-03 11:36:14.042097",
|
||||
"about": "소개",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10743,5 +10743,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "대상 언어가 이 메시지와 일치하지 않습니다. 대상 언어를 업데이트하시겠습니까?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -3865,7 +3865,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": "2025-12-03 10:30:34.545170",
|
||||
"@@last_modified": "2025-12-03 11:37:00.421228",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11440,5 +11440,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Jūsų tikslinė kalba nesutampa su šiuo pranešimu. Ar norite atnaujinti savo tikslinę kalbą?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4486,7 +4486,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": "2025-12-03 10:30:26.874201",
|
||||
"@@last_modified": "2025-12-03 11:36:54.273221",
|
||||
"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",
|
||||
|
|
@ -10621,5 +10621,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Jūsu mērķa valoda nesakrīt ar šo ziņojumu. Vai vēlaties atjaunināt savu mērķa valodu?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:10.936757",
|
||||
"@@last_modified": "2025-12-03 11:36:44.135739",
|
||||
"about": "Om",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11728,5 +11728,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Mål språket ditt samsvarer ikke med denne meldingen. Vil du oppdatere målspråket ditt?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:41.689144",
|
||||
"@@last_modified": "2025-12-03 11:37:03.689136",
|
||||
"about": "Over ons",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10635,5 +10635,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Uw doeltaal komt niet overeen met dit bericht. Wilt u uw doeltaal bijwerken?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "pl",
|
||||
"@@last_modified": "2025-12-03 10:30:52.793986",
|
||||
"@@last_modified": "2025-12-03 11:37:09.726956",
|
||||
"about": "O aplikacji",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10635,5 +10635,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Twój docelowy język nie pasuje do tej wiadomości. Zaktualizować swój docelowy język?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:29:55.539620",
|
||||
"@@last_modified": "2025-12-03 11:36:34.084326",
|
||||
"copiedToClipboard": "Copiada para a área de transferência",
|
||||
"@copiedToClipboard": {
|
||||
"type": "String",
|
||||
|
|
@ -11735,5 +11735,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "O seu idioma de destino não corresponde a esta mensagem. Atualizar o seu idioma de destino?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:29:51.928516",
|
||||
"@@last_modified": "2025-12-03 11:36:31.334762",
|
||||
"about": "Sobre",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10993,5 +10993,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Seu idioma de destino não corresponde a esta mensagem. Atualizar seu idioma de destino?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -3335,7 +3335,7 @@
|
|||
"selectAll": "Selecionar tudo",
|
||||
"deselectAll": "Desmarcar tudo",
|
||||
"@@locale": "pt_PT",
|
||||
"@@last_modified": "2025-12-03 10:30:20.842171",
|
||||
"@@last_modified": "2025-12-03 11:36:49.262059",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11664,5 +11664,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "O seu idioma de destino não corresponde a esta mensagem. Atualizar o seu idioma de destino?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:29:37.617394",
|
||||
"@@last_modified": "2025-12-03 11:36:22.939099",
|
||||
"about": "Despre",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11370,5 +11370,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Limba țintă nu se potrivește cu acest mesaj. Doriți să actualizați limba țintă?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "ru",
|
||||
"@@last_modified": "2025-12-03 10:31:05.575917",
|
||||
"@@last_modified": "2025-12-03 11:37:16.847372",
|
||||
"about": "О проекте",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10740,5 +10740,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ваш целевой язык не соответствует этому сообщению. Обновить ваш целевой язык?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "sk",
|
||||
"@@last_modified": "2025-12-03 10:29:39.057337",
|
||||
"@@last_modified": "2025-12-03 11:36:25.077269",
|
||||
"about": "O aplikácii",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11719,5 +11719,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Vaša cieľová jazyková verzia sa nezhoduje s touto správou. Chcete aktualizovať svoju cieľovú jazykovú verziu?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -2468,7 +2468,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": "2025-12-03 10:30:00.944868",
|
||||
"@@last_modified": "2025-12-03 11:36:37.990886",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11716,5 +11716,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Vaš cilj jezik ne ustreza temu sporočilu. Ali želite posodobiti svoj cilj jezik?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:31:09.729056",
|
||||
"@@last_modified": "2025-12-03 11:37:19.859367",
|
||||
"about": "О програму",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11737,5 +11737,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Vaš ciljni jezik se ne poklapa sa ovom porukom. Da li želite da ažurirate svoj ciljni jezik?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:55.022846",
|
||||
"@@last_modified": "2025-12-03 11:37:10.758797",
|
||||
"about": "Om",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -11113,5 +11113,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ditt målspråk matchar inte detta meddelande. Vill du uppdatera ditt målspråk?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:40.029007",
|
||||
"@@last_modified": "2025-12-03 11:37:02.609418",
|
||||
"acceptedTheInvitation": "👍 {username} அழைப்பை ஏற்றுக்கொண்டது",
|
||||
"@acceptedTheInvitation": {
|
||||
"type": "String",
|
||||
|
|
@ -10859,5 +10859,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "உங்கள் இலக்கு மொழி இந்த செய்தியுடன் பொருந்தவில்லை. உங்கள் இலக்கு மொழியை புதுப்பிக்கவா?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1924,7 +1924,7 @@
|
|||
"playWithAI": "ఇప్పుడే AI తో ఆడండి",
|
||||
"courseStartDesc": "పాంజియా బాట్ ఎప్పుడైనా సిద్ధంగా ఉంటుంది!\n\n...కానీ స్నేహితులతో నేర్చుకోవడం మెరుగైనది!",
|
||||
"@@locale": "te",
|
||||
"@@last_modified": "2025-12-03 10:30:32.508974",
|
||||
"@@last_modified": "2025-12-03 11:36:57.737104",
|
||||
"@setCustomPermissionLevel": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11724,5 +11724,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "మీ లక్ష్య భాష ఈ సందేశానికి సరిపోలడం లేదు. మీ లక్ష్య భాషను నవీకరించాలా?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -4460,7 +4460,7 @@
|
|||
"playWithAI": "เล่นกับ AI ชั่วคราว",
|
||||
"courseStartDesc": "Pangea Bot พร้อมที่จะเริ่มต้นได้ทุกเมื่อ!\n\n...แต่การเรียนรู้ดีกว่ากับเพื่อน!",
|
||||
"@@locale": "th",
|
||||
"@@last_modified": "2025-12-03 10:30:18.986154",
|
||||
"@@last_modified": "2025-12-03 11:36:48.052510",
|
||||
"@alwaysUse24HourFormat": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11693,5 +11693,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "ภาษาที่คุณเลือกไม่ตรงกับข้อความนี้ ต้องการอัปเดตภาษาที่คุณเลือกหรือไม่?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "tr",
|
||||
"@@last_modified": "2025-12-03 10:30:30.590666",
|
||||
"@@last_modified": "2025-12-03 11:36:56.511057",
|
||||
"about": "Hakkında",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10857,5 +10857,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Hedef diliniz bu mesajla eşleşmiyor. Hedef dilinizi güncelleyebilir misiniz?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "uk",
|
||||
"@@last_modified": "2025-12-03 10:30:06.811114",
|
||||
"@@last_modified": "2025-12-03 11:36:41.416683",
|
||||
"about": "Про застосунок",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10629,5 +10629,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ваша цільова мова не відповідає цьому повідомленню. Оновити вашу цільову мову?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:37.893660",
|
||||
"@@last_modified": "2025-12-03 11:37:01.540762",
|
||||
"about": "Giới thiệu",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -6205,5 +6205,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "Ngôn ngữ mục tiêu của bạn không khớp với thông điệp này. Cập nhật ngôn ngữ mục tiêu của bạn?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1860,7 +1860,7 @@
|
|||
"selectAll": "全選",
|
||||
"deselectAll": "取消全選",
|
||||
"@@locale": "yue",
|
||||
"@@last_modified": "2025-12-03 10:30:02.789794",
|
||||
"@@last_modified": "2025-12-03 11:36:39.120785",
|
||||
"@ignoreUser": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
|
|
@ -11726,5 +11726,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "您的目標語言與此消息不匹配。要更新您的目標語言嗎?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"@@locale": "zh",
|
||||
"@@last_modified": "2025-12-03 10:30:45.297060",
|
||||
"@@last_modified": "2025-12-03 11:37:06.135839",
|
||||
"about": "关于",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10626,5 +10626,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "您的目标语言与此消息不匹配。要更新您的目标语言吗?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2025-12-03 10:30:22.582679",
|
||||
"@@last_modified": "2025-12-03 11:36:51.200682",
|
||||
"about": "關於",
|
||||
"@about": {
|
||||
"type": "String",
|
||||
|
|
@ -10633,5 +10633,10 @@
|
|||
"@pickDifferentActivity": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
},
|
||||
"messageLanguageMismatchMessage": "您的目標語言與此消息不匹配。要更新您的目標語言嗎?",
|
||||
"@messageLanguageMismatchMessage": {
|
||||
"type": "String",
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -29,6 +29,7 @@ import 'package:fluffychat/pages/chat/recording_dialog.dart';
|
|||
import 'package:fluffychat/pages/chat_details/chat_details.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_session_chat/activity_chat_controller.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_session_chat/activity_chat_extension.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/constructs_model.dart';
|
||||
import 'package:fluffychat/pangea/analytics_misc/get_analytics_controller.dart';
|
||||
|
|
@ -58,7 +59,6 @@ import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
|||
import 'package:fluffychat/pangea/instructions/instructions_enum.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/constants/language_constants.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/repo/language_mismatch_repo.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/widgets/language_mismatch_popup.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/widgets/p_language_dialog.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/tokens_util.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/load_participants_util.dart';
|
||||
|
|
@ -1994,6 +1994,26 @@ class ChatController extends State<ChatPageWithRoom>
|
|||
return;
|
||||
}
|
||||
|
||||
if (LanguageMismatchRepo.shouldShowByEvent(event.eventId) &&
|
||||
pangeaMessageEvent?.originalSent?.content.langCodeMatchesL2 == false) {
|
||||
LanguageMismatchRepo.setEvent(event.eventId);
|
||||
OverlayUtil.showLanguageMismatchPopup(
|
||||
context: context,
|
||||
targetId: event.eventId,
|
||||
message: L10n.of(context).messageLanguageMismatchMessage,
|
||||
targetLanguage: pangeaMessageEvent!.originalSent!.langCode,
|
||||
onConfirm: () => showToolbar(
|
||||
event,
|
||||
pangeaMessageEvent: pangeaMessageEvent,
|
||||
selectedToken: selectedToken,
|
||||
mode: mode,
|
||||
nextEvent: nextEvent,
|
||||
prevEvent: prevEvent,
|
||||
),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
final overlayEntry = MessageSelectionOverlay(
|
||||
chatController: this,
|
||||
event: event,
|
||||
|
|
@ -2060,8 +2080,7 @@ class ChatController extends State<ChatPageWithRoom>
|
|||
// There's a listen in my_analytics_controller that decides when to auto-update
|
||||
// analytics based on when / how many messages the logged in user send. This
|
||||
// stream sends the data for newly sent messages.
|
||||
if (originalSent?.langCode.split("-").first !=
|
||||
MatrixState.pangeaController.languageController.userL2?.langCodeShort) {
|
||||
if (originalSent?.langCodeMatchesL2 != true) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2155,23 +2174,6 @@ class ChatController extends State<ChatPageWithRoom>
|
|||
}
|
||||
}
|
||||
|
||||
bool get shouldShowLanguageMismatchPopup {
|
||||
if (!LanguageMismatchRepo.shouldShow) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final l1 =
|
||||
MatrixState.pangeaController.languageController.userL1?.langCodeShort;
|
||||
final l2 =
|
||||
MatrixState.pangeaController.languageController.userL2?.langCodeShort;
|
||||
final activityLang = room.activityPlan?.req.targetLanguage.split('-').first;
|
||||
|
||||
return activityLang != null &&
|
||||
l2 != null &&
|
||||
l2 != activityLang &&
|
||||
l1 != activityLang;
|
||||
}
|
||||
|
||||
void showNextMatch() {
|
||||
MatrixState.pAnyState.closeOverlay();
|
||||
final match = choreographer.igcController.openMatches.firstOrNull;
|
||||
|
|
@ -2194,7 +2196,7 @@ class ChatController extends State<ChatPageWithRoom>
|
|||
bool manual = false,
|
||||
bool autosend = false,
|
||||
}) async {
|
||||
if (shouldShowLanguageMismatchPopup) {
|
||||
if (shouldShowLanguageMismatchPopupByActivity) {
|
||||
return showLanguageMismatchPopup();
|
||||
}
|
||||
|
||||
|
|
@ -2209,34 +2211,20 @@ class ChatController extends State<ChatPageWithRoom>
|
|||
}
|
||||
|
||||
void showLanguageMismatchPopup() {
|
||||
if (!shouldShowLanguageMismatchPopup) {
|
||||
if (!shouldShowLanguageMismatchPopupByActivity) {
|
||||
return;
|
||||
}
|
||||
|
||||
final targetLanguage = room.activityPlan!.req.targetLanguage;
|
||||
LanguageMismatchRepo.set();
|
||||
OverlayUtil.showPositionedCard(
|
||||
LanguageMismatchRepo.setRoom(roomId);
|
||||
OverlayUtil.showLanguageMismatchPopup(
|
||||
context: context,
|
||||
cardToShow: LanguageMismatchPopup(
|
||||
overlayId: 'language_mismatch_popup',
|
||||
onConfirm: () async {
|
||||
await MatrixState.pangeaController.userController.updateProfile(
|
||||
(profile) {
|
||||
profile.userSettings.targetLanguage = targetLanguage;
|
||||
return profile;
|
||||
},
|
||||
waitForDataInSync: true,
|
||||
);
|
||||
|
||||
WidgetsBinding.instance.addPostFrameCallback(
|
||||
(_) => onRequestWritingAssistance(manual: false, autosend: true),
|
||||
);
|
||||
},
|
||||
targetId: ChoreoConstants.inputTransformTargetKey,
|
||||
message: L10n.of(context).languageMismatchDesc,
|
||||
targetLanguage: targetLanguage,
|
||||
onConfirm: () => WidgetsBinding.instance.addPostFrameCallback(
|
||||
(_) => onRequestWritingAssistance(manual: false, autosend: true),
|
||||
),
|
||||
maxHeight: 325,
|
||||
maxWidth: 325,
|
||||
transformTargetId: ChoreoConstants.inputTransformTargetKey,
|
||||
overlayKey: 'language_mismatch_popup',
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/pages/chat/chat.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/instructions/instructions_enum.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/repo/language_mismatch_repo.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
extension ActivityMenuLogic on ChatController {
|
||||
|
|
@ -35,4 +36,21 @@ extension ActivityMenuLogic on ChatController {
|
|||
|
||||
return count >= 3;
|
||||
}
|
||||
|
||||
bool get shouldShowLanguageMismatchPopupByActivity {
|
||||
if (!LanguageMismatchRepo.shouldShowByRoom(roomId)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final l1 =
|
||||
MatrixState.pangeaController.languageController.userL1?.langCodeShort;
|
||||
final l2 =
|
||||
MatrixState.pangeaController.languageController.userL2?.langCodeShort;
|
||||
final activityLang = room.activityPlan?.req.targetLanguage.split('-').first;
|
||||
|
||||
return activityLang != null &&
|
||||
l2 != null &&
|
||||
l2 != activityLang &&
|
||||
l1 != activityLang;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import 'package:fluffychat/pangea/common/utils/any_state_holder.dart';
|
|||
import 'package:fluffychat/pangea/common/widgets/anchored_overlay_widget.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/overlay_container.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/transparent_backdrop.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/widgets/language_mismatch_popup.dart';
|
||||
import '../../../config/themes.dart';
|
||||
import '../../../widgets/matrix.dart';
|
||||
import 'error_handler.dart';
|
||||
|
|
@ -305,4 +306,26 @@ class OverlayUtil {
|
|||
ignorePointer: true,
|
||||
);
|
||||
}
|
||||
|
||||
static void showLanguageMismatchPopup({
|
||||
required BuildContext context,
|
||||
required String targetId,
|
||||
required String message,
|
||||
required String targetLanguage,
|
||||
required VoidCallback onConfirm,
|
||||
}) {
|
||||
showPositionedCard(
|
||||
context: context,
|
||||
cardToShow: LanguageMismatchPopup(
|
||||
message: message,
|
||||
overlayId: 'language_mismatch_popup',
|
||||
onConfirm: onConfirm,
|
||||
targetLanguage: targetLanguage,
|
||||
),
|
||||
maxHeight: 325,
|
||||
maxWidth: 325,
|
||||
transformTargetId: targetId,
|
||||
overlayKey: 'language_mismatch_popup',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:fluffychat/pangea/choreographer/igc/pangea_match_status_enum.dar
|
|||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/models/speech_to_text_models.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
/// this class is contained within a [RepresentationEvent]
|
||||
/// this event is the child of a [EventTypes.Message]
|
||||
|
|
@ -91,6 +92,10 @@ class PangeaRepresentation {
|
|||
return data;
|
||||
}
|
||||
|
||||
bool get langCodeMatchesL2 =>
|
||||
langCode.split("-").first ==
|
||||
MatrixState.pangeaController.languageController.userL2?.langCodeShort;
|
||||
|
||||
/// Get construct uses for the message that weren't captured during language assistance.
|
||||
/// Takes a list of tokens and a choreo record, which is searched
|
||||
/// through for each token for its construct use type.
|
||||
|
|
|
|||
|
|
@ -2,41 +2,46 @@ import 'package:get_storage/get_storage.dart';
|
|||
|
||||
class LanguageMismatchRepo {
|
||||
static final GetStorage _storage = GetStorage('language_mismatch');
|
||||
static const String key = 'shown_timestamp';
|
||||
static const Duration displayInterval = Duration(minutes: 30);
|
||||
|
||||
static Future<void> set() async {
|
||||
await _storage.write(key, DateTime.now().toIso8601String());
|
||||
static String _roomKey(String roomId) => 'language_mismatch_room_$roomId';
|
||||
static String _eventKey(String eventId) => 'language_mismatch_event_$eventId';
|
||||
|
||||
static bool shouldShowByRoom(String roomId) => _get(_roomKey(roomId));
|
||||
static bool shouldShowByEvent(String eventId) => _get(_eventKey(eventId));
|
||||
|
||||
static Future<void> setRoom(String roomId) async => _set(_roomKey(roomId));
|
||||
static Future<void> setEvent(String eventId) async =>
|
||||
_set(_eventKey(eventId));
|
||||
|
||||
static Future<void> _set(String key) async {
|
||||
await _storage.write(
|
||||
key,
|
||||
DateTime.now().toIso8601String(),
|
||||
);
|
||||
}
|
||||
|
||||
static DateTime? _get() {
|
||||
final entry = _storage.read(key);
|
||||
if (entry == null) return null;
|
||||
|
||||
try {
|
||||
final value = DateTime.tryParse(entry);
|
||||
if (value != null) {
|
||||
final timeSince = DateTime.now().difference(value);
|
||||
if (timeSince > displayInterval) {
|
||||
_delete();
|
||||
return null;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
} catch (_) {
|
||||
_delete();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static Future<void> _delete() async {
|
||||
await _storage.remove(key);
|
||||
}
|
||||
|
||||
static bool get shouldShow {
|
||||
final lastShown = _get();
|
||||
static bool _get(String key) {
|
||||
final lastShown = _getCached(key);
|
||||
if (lastShown == null) return true;
|
||||
return DateTime.now().difference(lastShown) >= displayInterval;
|
||||
}
|
||||
|
||||
static DateTime? _getCached(String key) {
|
||||
final entry = _storage.read(key);
|
||||
if (entry == null) return null;
|
||||
|
||||
final value = DateTime.tryParse(entry);
|
||||
if (value == null) {
|
||||
_storage.remove(key);
|
||||
return null;
|
||||
}
|
||||
|
||||
final timeSince = DateTime.now().difference(value);
|
||||
if (timeSince > displayInterval) {
|
||||
_storage.remove(key);
|
||||
return null;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,14 +7,30 @@ import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
|||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class LanguageMismatchPopup extends StatelessWidget {
|
||||
final String message;
|
||||
final String overlayId;
|
||||
final Future<void> Function() onConfirm;
|
||||
final String targetLanguage;
|
||||
final VoidCallback onConfirm;
|
||||
|
||||
const LanguageMismatchPopup({
|
||||
super.key,
|
||||
required this.message,
|
||||
required this.overlayId,
|
||||
required this.targetLanguage,
|
||||
required this.onConfirm,
|
||||
});
|
||||
|
||||
Future<void> _updateLanguage() async {
|
||||
await MatrixState.pangeaController.userController.updateProfile(
|
||||
(profile) {
|
||||
profile.userSettings.targetLanguage = targetLanguage;
|
||||
return profile;
|
||||
},
|
||||
waitForDataInSync: true,
|
||||
);
|
||||
onConfirm();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
|
|
@ -29,7 +45,7 @@ class LanguageMismatchPopup extends StatelessWidget {
|
|||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Text(
|
||||
L10n.of(context).languageMismatchDesc,
|
||||
message,
|
||||
style: BotStyle.text(context),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
|
|
@ -39,7 +55,7 @@ class LanguageMismatchPopup extends StatelessWidget {
|
|||
onPressed: () async {
|
||||
await showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: onConfirm,
|
||||
future: _updateLanguage,
|
||||
);
|
||||
MatrixState.pAnyState.closeOverlay(overlayId);
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue