From 82a74d85fd60722e902e6a83c0dcc96d528d2f65 Mon Sep 17 00:00:00 2001 From: Frank Tang Date: Tue, 3 Jun 2025 16:45:05 -0700 Subject: [PATCH] Add datadriven tests --- .../inflection/dialog/message/ar.xml | 1428 +++++++++ .../inflection/dialog/message/da.xml | 734 +++++ .../inflection/dialog/message/de.xml | 1973 +++++++++++++ .../inflection/dialog/message/en.xml | 1042 +++++++ .../inflection/dialog/message/es.xml | 1245 ++++++++ .../inflection/dialog/message/fr.xml | 2575 +++++++++++++++++ .../inflection/dialog/message/he.xml | 1945 +++++++++++++ .../inflection/dialog/message/hi.xml | 685 +++++ .../inflection/dialog/message/it.xml | 965 ++++++ .../inflection/dialog/message/ko.xml | 629 ++++ .../inflection/dialog/message/nb.xml | 1553 ++++++++++ .../inflection/dialog/message/nl.xml | 1280 ++++++++ .../inflection/dialog/message/pt.xml | 1665 +++++++++++ .../inflection/dialog/message/ru.xml | 881 ++++++ .../inflection/dialog/message/sr.xml | 1 + .../inflection/dialog/message/sv.xml | 580 ++++ .../inflection/dialog/message/tr.xml | 1273 ++++++++ .../inflection/message2/MF2FactoryTest.cpp | 158 + 18 files changed, 20612 insertions(+) create mode 100644 inflection/test/resources/inflection/dialog/message/ar.xml create mode 100644 inflection/test/resources/inflection/dialog/message/da.xml create mode 100644 inflection/test/resources/inflection/dialog/message/de.xml create mode 100644 inflection/test/resources/inflection/dialog/message/en.xml create mode 100644 inflection/test/resources/inflection/dialog/message/es.xml create mode 100644 inflection/test/resources/inflection/dialog/message/fr.xml create mode 100644 inflection/test/resources/inflection/dialog/message/he.xml create mode 100644 inflection/test/resources/inflection/dialog/message/hi.xml create mode 100644 inflection/test/resources/inflection/dialog/message/it.xml create mode 100644 inflection/test/resources/inflection/dialog/message/ko.xml create mode 100644 inflection/test/resources/inflection/dialog/message/nb.xml create mode 100644 inflection/test/resources/inflection/dialog/message/nl.xml create mode 100644 inflection/test/resources/inflection/dialog/message/pt.xml create mode 100644 inflection/test/resources/inflection/dialog/message/ru.xml create mode 100644 inflection/test/resources/inflection/dialog/message/sr.xml create mode 100644 inflection/test/resources/inflection/dialog/message/sv.xml create mode 100644 inflection/test/resources/inflection/dialog/message/tr.xml diff --git a/inflection/test/resources/inflection/dialog/message/ar.xml b/inflection/test/resources/inflection/dialog/message/ar.xml new file mode 100644 index 00000000..6b4d7672 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/ar.xml @@ -0,0 +1,1428 @@ + + + + + + أختا + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + أيهما + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + ياردتا + + .local $feature = {$source :inflection select=definiteness} .match $feature |construct| {{correct answer}} * {{Wrong}} + correct answer + + + + طاولتين + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + المطعم + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + مصر + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + أأنتم + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + أأأأأأأأ + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + مطعم + + {$source :inflection case=nominative number=singular} + مطعم + + + + مطعم + + {$source :inflection case=nominative number=dual} + مطعمان + + + + مطعم + + {$source :inflection case=nominative number=plural} + مطاعم + + + + مطعم + + {$source :inflection case=accusative number=singular} + مطعما + + + + مطعم + + {$source :inflection case=accusative number=dual} + مطعمين + + + + مطعم + + {$source :inflection case=accusative number=plural} + مطاعم + + + + مطعم + + {$source :inflection case=genitive number=singular} + مطعم + + + + مطعم + + {$source :inflection case=genitive number=dual} + مطعمين + + + + مطعم + + {$source :inflection case=genitive number=plural} + مطاعم + + + + كيلومتر + + {$source :inflection case=nominative number=singular} + كيلومتر + + + + كيلومتر + + {$source :inflection case=nominative number=dual} + كيلومتران + + + + كيلومتر + + {$source :inflection case=nominative number=plural} + كيلومترات + + + + كيلومتر + + {$source :inflection case=accusative number=singular} + كيلومترا + + + + كيلومتر + + {$source :inflection case=accusative number=dual} + كيلومترين + + + + كيلومتر + + {$source :inflection case=accusative number=plural} + كيلومترات + + + + كيلومتر + + {$source :inflection case=genitive number=singular} + كيلومتر + + + + كيلومتر + + {$source :inflection case=genitive number=dual} + كيلومترين + + + + كيلومتر + + {$source :inflection case=genitive number=plural} + كيلومترات + + + + هذا + + {$source :inflection gender=masculine number=singular} + هذا + + + + هذا + + {$source :inflection case=genitive gender=masculine number=dual} + هذين + + + + هذا + + {$source :inflection case=accusative gender=masculine number=dual} + هذين + + + + هذا + + {$source :inflection case=nominative gender=masculine number=dual} + هذان + + + + هذا + + {$source :inflection gender=feminine number=singular} + هذه + + + + هذا + + {$source :inflection case=genitive gender=feminine number=dual} + هاتين + + + + هذا + + {$source :inflection case=nominative gender=feminine number=dual} + هاتان + + + + هذا + + {$source :inflection case=accusative gender=feminine number=dual} + هاتين + + + + هذه + + {$source :inflection gender=masculine number=singular} + هذا + + + + هذه + + {$source :inflection case=genitive gender=masculine number=dual} + هذين + + + + هذه + + {$source :inflection case=accusative gender=masculine number=dual} + هذين + + + + هذه + + {$source :inflection case=nominative gender=masculine number=dual} + هذان + + + + هذه + + {$source :inflection gender=feminine number=singular} + هذه + + + + هذه + + {$source :inflection case=genitive gender=feminine number=dual} + هاتين + + + + هذه + + {$source :inflection case=nominative gender=feminine number=dual} + هاتان + + + + هذه + + {$source :inflection case=accusative gender=feminine number=dual} + هاتين + + + + ذلك + + {$source :inflection gender=masculine number=singular} + ذلك + + + + ذلك + + {$source :inflection gender=feminine number=singular} + تلك + + + + تلك + + {$source :inflection gender=masculine number=singular} + ذلك + + + + تلك + + {$source :inflection gender=feminine number=singular} + تلك + + + + ذلك + + {$source :inflection number=plural} + أولئك + + + + مغلق + + {$source :inflection gender=feminine number=singular pos=adjective} + مغلقة + + + + مغلق + + {$source :inflection case=genitive gender=feminine number=dual pos=adjective} + مغلقتين + + + + مغلق + + {$source :inflection case=accusative gender=feminine number=dual pos=adjective} + مغلقتين + + + + مغلق + + {$source :inflection case=nominative gender=feminine number=dual pos=adjective} + مغلقتان + + + + مقفل + + {$source :inflection gender=feminine number=singular pos=adjective} + مقفلة + + + + مقفل + + {$source :inflection case=genitive gender=feminine number=dual pos=adjective} + مقفلتين + + + + مقفل + + {$source :inflection case=accusative gender=feminine number=dual pos=adjective} + مقفلتين + + + + مقفل + + {$source :inflection case=nominative gender=feminine number=dual pos=adjective} + مقفلتان + + + + معطل + + {$source :inflection gender=feminine number=singular pos=adjective} + معطلة + + + + معطل + + {$source :inflection case=genitive gender=feminine number=dual pos=adjective} + معطلتين + + + + معطل + + {$source :inflection case=accusative gender=feminine number=dual pos=adjective} + معطلتين + + + + معطل + + {$source :inflection case=nominative gender=feminine number=dual pos=adjective} + معطلتان + + + + عالق + + {$source :inflection gender=feminine number=singular pos=adjective} + عالقة + + + + عالق + + {$source :inflection case=genitive gender=feminine number=dual pos=adjective} + عالقتين + + + + عالق + + {$source :inflection case=accusative gender=feminine number=dual pos=adjective} + عالقتين + + + + عالق + + {$source :inflection case=nominative gender=feminine number=dual pos=adjective} + عالقتان + + + + مفتوح + + {$source :inflection gender=feminine number=singular pos=adjective} + مفتوحة + + + + مفتوح + + {$source :inflection case=genitive gender=feminine number=dual pos=adjective} + مفتوحتين + + + + مفتوح + + {$source :inflection case=accusative gender=feminine number=dual pos=adjective} + مفتوحتين + + + + مفتوح + + {$source :inflection case=nominative gender=feminine number=dual pos=adjective} + مفتوحتان + + + + مفعّل + + {$source :inflection gender=feminine number=singular} + مفعّلة + + + + مفعّل + + {$source :inflection case=genitive gender=feminine number=dual} + مفعّلتين + + + + مفعّل + + {$source :inflection case=accusative gender=feminine number=dual} + مفعّلتين + + + + مفعّل + + {$source :inflection case=nominative gender=feminine number=dual} + مفعّلتان + + + + مشغول + + {$source :inflection gender=feminine number=singular} + مشغولة + + + + مشغول + + {$source :inflection case=genitive gender=feminine number=dual} + مشغولتين + + + + مشغول + + {$source :inflection case=accusative gender=feminine number=dual} + مشغولتين + + + + مشغول + + {$source :inflection case=nominative gender=feminine number=dual} + مشغولتان + + + + أرسله + + {$source :inflection gender=feminine number=singular} + أرسلته + + + + يرسله + + {$source :inflection gender=feminine number=singular} + ترسله + + + + يعجبه + + {$source :inflection gender=feminine number=singular} + تعجبه + + + + أسند + + {$source :inflection gender=feminine number=singular pos=verb tense=past} + أسندت + + + + أسند + + {$source :inflection gender=feminine number=dual tense=past} + أسندتا + + + + أسند + + {$source :inflection gender=feminine number=plural tense=past} + أسندن + + + + أسند + + {$source :inflection gender=masculine number=singular tense=past} + أسند + + + + أسند + + {$source :inflection gender=masculine number=dual tense=past} + أسندا + + + + أسند + + {$source :inflection gender=masculine number=plural tense=past} + أسندوا + + + + أرسل + + {$source :inflection gender=feminine number=singular tense=past} + أرسلت + + + + أرسل + + {$source :inflection gender=feminine number=dual tense=past} + أرسلتا + + + + أرسل + + {$source :inflection gender=feminine number=plural tense=past} + أرسلن + + + + أرسل + + {$source :inflection gender=masculine number=singular tense=past} + أرسل + + + + أرسل + + {$source :inflection gender=masculine number=dual tense=past} + أرسلا + + + + أرسل + + {$source :inflection gender=masculine number=plural tense=past} + أرسلوا + + + + بيت جميل + + {$source :inflection case=nominative number=dual} + بيتان جميلان + + + + + + .local $feature = {$source :inflection select=withWithPrep} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + هاتف + + .local $feature = {$source :inflection select=withWithPrep} .match $feature |بهاتف| {{correct answer}} * {{Wrong}} + correct answer + + + + iPhone + + .local $feature = {$source :inflection select=withWithPrep} .match $feature |بـ iPhone| {{correct answer}} * {{Wrong}} + correct answer + + + + هاتف + + .local $feature = {$source :inflection select=withWithPrep} .match $feature |بهاتف| {{correct answer}} * {{Wrong}} + correct answer + + + + iPhone + + .local $feature = {$source :inflection select=withWithPrep} .match $feature |بـ iPhone| {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=withToPrep} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + هاتف + + .local $feature = {$source :inflection select=withToPrep} .match $feature |لهاتف| {{correct answer}} * {{Wrong}} + correct answer + + + + iPhone + + .local $feature = {$source :inflection select=withToPrep} .match $feature |لـ iPhone| {{correct answer}} * {{Wrong}} + correct answer + + + + هاتف + + .local $feature = {$source :inflection select=withToPrep} .match $feature |لهاتف| {{correct answer}} * {{Wrong}} + correct answer + + + + iPhone + + .local $feature = {$source :inflection select=withToPrep} .match $feature |لـ iPhone| {{correct answer}} * {{Wrong}} + correct answer + + + + المنزل + + .local $feature = {$source :inflection select=withToPrep} .match $feature |للمنزل| {{correct answer}} * {{Wrong}} + correct answer + + + + احمد + + .local $feature = {$source :inflection select=withToPrep} .match $feature |لاحمد| {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=withAsPrep} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + هاتف + + .local $feature = {$source :inflection select=withAsPrep} .match $feature |كهاتف| {{correct answer}} * {{Wrong}} + correct answer + + + + iPhone + + .local $feature = {$source :inflection select=withAsPrep} .match $feature |كـ iPhone| {{correct answer}} * {{Wrong}} + correct answer + + + + هاتف + + .local $feature = {$source :inflection select=withAsPrep} .match $feature |كهاتف| {{correct answer}} * {{Wrong}} + correct answer + + + + iPhone + + .local $feature = {$source :inflection select=withAsPrep} .match $feature |كـ iPhone| {{correct answer}} * {{Wrong}} + correct answer + + + + هاتف + + {$source :inflection} + هاتف + + + + أخ + + {$source :inflection case=nominative} + أخ + + + + أب + + {$source :inflection case=accusative} + أبا + + + + أب + + {$source :inflection case=genitive} + أب + + + + يعجبه + + {$source :inflection gender=feminine number=dual} + تعجبانه + + + + اسحب + + {$source :inflection gender=feminine mood=imperative number=singular person=second} + اسحبي + + + + انقر + + {$source :inflection gender=feminine mood=imperative number=singular person=second} + انقري + + + + انتقل + + {$source :inflection gender=feminine mood=imperative number=plural person=second} + انتقلن + + + + افتح + + {$source :inflection gender=feminine mood=imperative number=singular} + افتحي + + + + مفعّل + + {$source :inflection case=genitive gender=feminine number=dual} + مفعّلتين + + + + مفعّل + + {$source :inflection case=accusative gender=feminine number=dual} + مفعّلتين + + + + مفعّل + + {$source :inflection case=nominative gender=feminine number=dual} + مفعّلتان + + + + مشغول + + {$source :inflection gender=feminine number=singular} + مشغولة + + + + مشغول + + {$source :inflection case=genitive gender=feminine number=dual} + مشغولتين + + + + مشغول + + {$source :inflection case=accusative gender=feminine number=dual} + مشغولتين + + + + مشغول + + {$source :inflection case=nominative gender=feminine number=dual} + مشغولتان + + + + استخدم + + {$source :inflection gender=feminine mood=imperative number=singular} + استخدمي + + + + استخدم + + {$source :inflection gender=feminine mood=imperative number=plural} + استخدمن + + + + استخدم + + {$source :inflection gender=masculine mood=imperative number=singular} + استخدم + + + + استخدم + + {$source :inflection gender=masculine mood=imperative number=plural} + استخدموا + + + + اتصل + + {$source :inflection gender=feminine number=singular person=third tense=past} + اتصلت + + + + اتصل + + {$source :inflection gender=feminine number=plural person=third tense=past} + اتصلن + + + + اتصل + + {$source :inflection gender=masculine number=plural person=third tense=past} + اتصلوا + + + + أضاف + + {$source :inflection gender=feminine number=singular person=third} + أضافت + + + + أضاف + + {$source :inflection gender=feminine number=plural person=third} + أضفن + + + + أضاف + + {$source :inflection gender=masculine number=plural person=third} + أضافوا + + + + أزال + + {$source :inflection gender=feminine number=singular person=third pos=verb tense=past} + أزالت + + + + أزال + + {$source :inflection gender=feminine number=plural person=third pos=verb tense=past} + أزلن + + + + أزال + + {$source :inflection gender=masculine number=plural person=third pos=verb tense=past} + أزالوا + + + + أشار + + {$source :inflection gender=feminine number=singular person=third} + أشارت + + + + أشار + + {$source :inflection gender=feminine number=plural person=third} + أشرن + + + + أشار + + {$source :inflection gender=masculine number=plural person=third} + أشاروا + + + + شارك + + {$source :inflection gender=feminine number=singular person=third pos=verb tense=past} + شاركت + + + + شارك + + {$source :inflection gender=feminine number=plural person=third pos=verb tense=past} + شاركن + + + + شارك + + {$source :inflection gender=masculine number=plural person=third pos=verb tense=past} + شاركوا + + + + باب مغلق + + {$source :inflection case=genitive number=dual} + بابين مغلقين + + + + باب مغلق + + {$source :inflection case=nominative number=dual} + بابان مغلقان + + + + شغّل + + {$source :inflection gender=masculine number=plural} + شغّلوا + + + + شغّل + + {$source :inflection gender=feminine number=plural} + شغّلن + + + + اختر + + {$source :inflection gender=feminine mood=imperative number=singular} + اختاري + + + + مضاف + + {$source :inflection gender=feminine number=singular person=third} + مضافة + + + + متوقف + + {$source :inflection gender=feminine number=singular person=third} + متوقفة + + + + اضغط + + {$source :inflection gender=feminine number=singular} + اضغطي + + + + اضغط + + {$source :inflection gender=feminine number=plural} + اضغطن + + + + اضغط + + {$source :inflection gender=masculine number=singular} + اضغط + + + + اضغط + + {$source :inflection gender=masculine number=plural} + اضغطوا + + + + أعجب + + {$source :inflection gender=masculine number=singular tense=past} + أعجب + + + + أدخل + + {$source :inflection gender=feminine mood=imperative number=singular person=second} + أدخلي + + + + انتقل + + {$source :inflection gender=feminine mood=imperative number=singular person=second} + انتقلي + + + + توقف + + {$source :inflection gender=feminine number=singular person=third pos=verb tense=past} + توقفت + + + + توقف + + {$source :inflection gender=feminine number=plural person=third pos=verb tense=past} + توقفن + + + + توقف + + {$source :inflection gender=masculine number=plural person=third pos=verb tense=past} + توقفوا + + + + تمرن + + {$source :inflection gender=feminine number=singular person=third pos=verb tense=past} + تمرنت + + + + تمرن + + {$source :inflection gender=masculine number=plural person=third pos=verb tense=past} + تمرنوا + + + + كسب + + {$source :inflection gender=feminine number=singular person=third pos=verb tense=past} + كسبت + + + + كسب + + {$source :inflection gender=feminine number=plural person=third pos=verb tense=past} + كسبن + + + + كسب + + {$source :inflection gender=masculine number=plural person=third pos=verb tense=past} + كسبوا + + + + قبل + + {$source :inflection gender=feminine number=singular person=third pos=verb tense=past} + قبلت + + + + قبل + + {$source :inflection gender=feminine number=plural person=third pos=verb tense=past} + قبلن + + + + قبل + + {$source :inflection gender=masculine number=plural person=third pos=verb tense=past} + قبلوا + + + + نافذة مفتوحة + + {$source :inflection animacy=nonhuman number=plural} + نوافذ مفتوحة + + + + تريد + + {$source :inflection gender=masculine number=plural person=second} + تريدون + + + + تريد + + {$source :inflection gender=feminine number=singular person=second} + تريدين + + + + أوقف + + {$source :inflection gender=feminine mood=imperative number=singular} + أوقفي + + + + تتذكر + + {$source :inflection gender=feminine number=singular person=second} + تتذكرين + + + + متفائل + + {$source :inflection gender=feminine number=singular pos=adjective} + متفائلة + + + + واثق + + {$source :inflection gender=feminine number=singular pos=adjective} + واثقة + + + + متضايق + + {$source :inflection gender=feminine number=singular} + متضايقة + + + + متفاجئ + + {$source :inflection gender=feminine number=singular} + متفاجئة + + + + خائف + + {$source :inflection gender=feminine number=singular} + خائفة + + + + فخور + + {$source :inflection gender=feminine number=singular pos=adjective} + فخورة + + + + شغوف + + {$source :inflection gender=feminine number=singular} + شغوفة + + + + غيور + + {$source :inflection gender=feminine number=singular} + غيورة + + + + مرتاح + + {$source :inflection gender=feminine number=singular} + مرتاحة + + + + يائس + + {$source :inflection gender=feminine number=singular pos=adjective} + يائسة + + + + مذنب + + {$source :inflection gender=feminine number=singular pos=adjective} + مذنبة + + + + ممتن + + {$source :inflection gender=feminine number=singular pos=adjective} + ممتنة + + + + مشمئز + + {$source :inflection gender=feminine number=singular} + مشمئزة + + + + خائب + + {$source :inflection gender=feminine number=singular} + خائبة + + + + هادئ + + {$source :inflection gender=feminine number=singular} + هادئة + + + + شجاع + + {$source :inflection gender=feminine number=singular} + شجاعة + + + + مستمتع + + {$source :inflection gender=feminine number=singular} + مستمتعة + + + + مندهش + + {$source :inflection gender=feminine number=singular} + مندهشة + + + + متوتر + + {$source :inflection gender=feminine number=singular pos=adjective} + متوترة + + + + حزين + + {$source :inflection gender=feminine number=singular pos=adjective} + حزينة + + + + وحيد + + {$source :inflection gender=feminine number=singular} + وحيدة + + + + مرح + + {$source :inflection gender=feminine number=singular pos=adjective} + مرحة + + + + منزعج + + {$source :inflection gender=feminine number=singular pos=adjective} + منزعجة + + + + سعيد + + {$source :inflection gender=feminine number=singular} + سعيدة + + + + محبط + + {$source :inflection gender=feminine number=singular} + محبطة + + + + متحمس + + {$source :inflection gender=feminine number=singular pos=adjective} + متحمسة + + + + فاقد + + {$source :inflection gender=feminine number=singular} + فاقدة + + + + مسرور + + {$source :inflection gender=feminine number=singular} + مسرورة + + + + قلق + + {$source :inflection gender=feminine number=singular pos=adjective} + قلقة + + + + غاضب + + {$source :inflection gender=feminine number=singular pos=adjective} + غاضبة + + + diff --git a/inflection/test/resources/inflection/dialog/message/da.xml b/inflection/test/resources/inflection/dialog/message/da.xml new file mode 100644 index 00000000..0bad4b22 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/da.xml @@ -0,0 +1,734 @@ + + + + + + lampes + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + lampen + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + ølbrikken + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + spinklere + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + QQQQQQ + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=withPossArticle} .match $feature |din value| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=withPossArticle gender=neuter number=singular} .match $feature |dit value| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=withPossArticle number=plural} .match $feature |dine value| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=withInterrogativeArticle} .match $feature |hvilken value| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=withInterrogativeArticle gender=neuter number=singular} .match $feature |hvilket value| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=withInterrogativeArticle number=plural} .match $feature |hvilke value| {{correct answer}} * {{Wrong}} + correct answer + + + + torsdag + + {$source :inflection definiteness=indefinite number=singular} + torsdag + + + + torsdag + + {$source :inflection definiteness=definite number=singular} + torsdagen + + + + torsdag + + {$source :inflection definiteness=indefinite number=plural} + torsdage + + + + torsdag + + {$source :inflection definiteness=definite number=plural} + torsdagene + + + + torsdag + + {$source :inflection case=genitive definiteness=indefinite number=singular} + torsdags + + + + torsdag + + {$source :inflection case=genitive definiteness=definite number=singular} + torsdagens + + + + torsdag + + {$source :inflection case=genitive definiteness=indefinite number=plural} + torsdages + + + + torsdag + + {$source :inflection case=genitive definiteness=definite number=plural} + torsdagenes + + + + torsdag + + {$source :inflection definiteness=definite} + torsdagen + + + + torsdag + + {$source :inflection number=plural} + torsdage + + + + torsdag + + {$source :inflection case=genitive} + torsdags + + + + sarkom + + {$source :inflection definiteness=definite} + sarkomet + + + + sarkom + + {$source :inflection number=plural} + sarkomer + + + + sarkom + + {$source :inflection case=genitive} + sarkoms + + + + sarkom + + {$source :inflection definiteness=indefinite number=singular} + sarkom + + + + sarkom + + {$source :inflection definiteness=definite number=singular} + sarkomet + + + + sarkom + + {$source :inflection definiteness=indefinite number=plural} + sarkomer + + + + sarkom + + {$source :inflection definiteness=definite number=plural} + sarkomerne + + + + sarkom + + {$source :inflection case=genitive definiteness=indefinite number=singular} + sarkoms + + + + sarkom + + {$source :inflection case=genitive definiteness=definite number=singular} + sarkomets + + + + sarkom + + {$source :inflection case=genitive definiteness=indefinite number=plural} + sarkomers + + + + sarkom + + {$source :inflection case=genitive definiteness=definite number=plural} + sarkomernes + + + + stor torsdag + + {$source :inflection definiteness=indefinite number=singular} + stor torsdag + + + + stor torsdag + + {$source :inflection definiteness=definite number=singular} + store torsdag + + + + stor torsdag + + {$source :inflection definiteness=indefinite number=plural} + store torsdage + + + + stor torsdag + + {$source :inflection definiteness=definite number=plural} + store torsdage + + + + stor torsdag + + {$source :inflection case=genitive definiteness=indefinite number=singular} + stor torsdags + + + + stor torsdag + + {$source :inflection case=genitive definiteness=definite number=singular} + store torsdags + + + + stor torsdag + + {$source :inflection case=genitive definiteness=indefinite number=plural} + store torsdages + + + + stor torsdag + + {$source :inflection case=genitive definiteness=definite number=plural} + store torsdages + + + + stor sarkom + + {$source :inflection definiteness=indefinite number=singular} + stort sarkom + + + + stor sarkom + + {$source :inflection definiteness=definite number=singular} + store sarkom + + + + stor sarkom + + {$source :inflection definiteness=indefinite number=plural} + store sarkomer + + + + stor sarkom + + {$source :inflection definiteness=definite number=plural} + store sarkomer + + + + stor sarkom + + {$source :inflection case=genitive definiteness=indefinite number=singular} + stort sarkoms + + + + stor sarkom + + {$source :inflection case=genitive definiteness=definite number=singular} + store sarkoms + + + + stor sarkom + + {$source :inflection case=genitive definiteness=indefinite number=plural} + store sarkomers + + + + stor sarkom + + {$source :inflection case=genitive definiteness=definite number=plural} + store sarkomers + + + + stor + + {$source :inflection definiteness=indefinite gender=common number=singular} + stor + + + + stor + + {$source :inflection definiteness=definite gender=common number=singular} + store + + + + stor + + {$source :inflection definiteness=indefinite gender=common number=plural} + store + + + + stor + + {$source :inflection definiteness=definite gender=common number=plural} + store + + + + stor + + {$source :inflection definiteness=indefinite gender=neuter number=singular} + stort + + + + stor + + {$source :inflection definiteness=definite gender=neuter number=singular} + store + + + + stor + + {$source :inflection definiteness=indefinite gender=neuter number=plural} + store + + + + stor + + {$source :inflection definiteness=definite gender=neuter number=plural} + store + + + + Andrea + + {$source :inflection case=genitive} + Andreas + + + + Andreas + + {$source :inflection case=genitive} + Andreas’ + + + + Julie Olsen + + {$source :inflection case=genitive} + Julie Olsens + + + + Olga Kals + + {$source :inflection case=genitive} + Olga Kals’ + + + + Channel 10 + + {$source :inflection case=genitive} + Channel 10’s + + + + NATO + + {$source :inflection case=genitive} + NATO’s + + + + SAS + + {$source :inflection case=genitive} + SAS’ + + + + Kbh. + + {$source :inflection case=genitive} + Kbh.s + + + + Christian 4. + + {$source :inflection case=genitive} + Christian 4.s + + + + burger.dk + + {$source :inflection case=genitive} + burger.dk’s + + + + saxo.com + + {$source :inflection case=genitive} + saxo.coms + + + + Ajax + + {$source :inflection definiteness=indefinite gender=common number=singular pos=adjective} + Ajax + + + + Ajax + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + Ajaxt + + + + Ajax + + {$source :inflection definiteness=indefinite gender=common number=plural pos=adjective} + Ajaxe + + + + Ajax + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + Ajaxe + + + + Ajax + + {$source :inflection definiteness=definite gender=common number=singular pos=adjective} + Ajaxe + + + + Ajax + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + Ajaxe + + + + Ajax + + {$source :inflection definiteness=definite gender=common number=plural pos=adjective} + Ajaxe + + + + Ajax + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + Ajaxe + + + + taxa + + {$source :inflection definiteness=indefinite gender=common number=singular pos=adjective} + taxa + + + + taxa + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + taxa + + + + taxa + + {$source :inflection definiteness=indefinite gender=common number=plural pos=adjective} + taxa + + + + taxa + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + taxa + + + + taxa + + {$source :inflection definiteness=definite gender=common number=singular pos=adjective} + taxa + + + + taxa + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + taxa + + + + taxa + + {$source :inflection definiteness=definite gender=common number=plural pos=adjective} + taxa + + + + taxa + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + taxa + + + + abefest + + {$source :inflection definiteness=indefinite gender=common number=singular pos=adjective} + abefest + + + + abefest + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + abefest + + + + abefest + + {$source :inflection definiteness=indefinite gender=common number=plural pos=adjective} + abefeste + + + + abefest + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + abefeste + + + + abefest + + {$source :inflection definiteness=definite gender=common number=singular pos=adjective} + abefeste + + + + abefest + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + abefeste + + + + abefest + + {$source :inflection definiteness=definite gender=common number=plural pos=adjective} + abefeste + + + + abefest + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + abefeste + + + + parcel + + {$source :inflection definiteness=indefinite gender=common number=singular pos=adjective} + parcel + + + + parcel + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + parcelt + + + + parcel + + {$source :inflection definiteness=indefinite gender=common number=plural pos=adjective} + parcele + + + + parcel + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + parcele + + + + parcel + + {$source :inflection definiteness=definite gender=common number=singular pos=adjective} + parcele + + + + parcel + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + parcele + + + + parcel + + {$source :inflection definiteness=definite gender=common number=plural pos=adjective} + parcele + + + + parcel + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + parcele + + + + michael + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + michaele + + + + lyset + + {$source :inflection case=genitive definiteness=definite} + lysets + + + + gods + + {$source :inflection definiteness=definite} + godset + + + + godset + + {$source :inflection case=genitive definiteness=definite} + godsets + + diff --git a/inflection/test/resources/inflection/dialog/message/de.xml b/inflection/test/resources/inflection/dialog/message/de.xml new file mode 100644 index 00000000..8117b4d5 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/de.xml @@ -0,0 +1,1973 @@ + + + + + + Termin + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + Besprechung + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + Ereignis + + .local $feature = {$source :inflection select=gender} .match $feature |neuter| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=indefArticle case=nominative number=singular} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + Alp + + .local $feature = {$source :inflection select=indefArticle case=nominative number=singular} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + Fundort + + .local $feature = {$source :inflection select=indefArticle case=nominative number=singular} .match $feature |ein| {{correct answer}} * {{Wrong}} + correct answer + + + + Fundort + + .local $feature = {$source :inflection select=indefArticle case=genitive number=singular} .match $feature |eines| {{correct answer}} * {{Wrong}} + correct answer + + + + Fundort + + .local $feature = {$source :inflection select=indefArticle case=dative number=singular} .match $feature |einem| {{correct answer}} * {{Wrong}} + correct answer + + + + Fundort + + .local $feature = {$source :inflection select=indefArticle case=accusative number=singular} .match $feature |einen| {{correct answer}} * {{Wrong}} + correct answer + + + + Bank + + .local $feature = {$source :inflection select=indefArticle case=nominative number=singular} .match $feature |eine| {{correct answer}} * {{Wrong}} + correct answer + + + + Bank + + .local $feature = {$source :inflection select=indefArticle case=genitive number=singular} .match $feature |einer| {{correct answer}} * {{Wrong}} + correct answer + + + + Bank + + .local $feature = {$source :inflection select=indefArticle case=dative number=singular} .match $feature |einer| {{correct answer}} * {{Wrong}} + correct answer + + + + Bank + + .local $feature = {$source :inflection select=indefArticle case=accusative number=singular} .match $feature |eine| {{correct answer}} * {{Wrong}} + correct answer + + + + Wort + + .local $feature = {$source :inflection select=indefArticle case=nominative number=singular} .match $feature |ein| {{correct answer}} * {{Wrong}} + correct answer + + + + Wort + + .local $feature = {$source :inflection select=indefArticle case=genitive number=singular} .match $feature |eines| {{correct answer}} * {{Wrong}} + correct answer + + + + Wort + + .local $feature = {$source :inflection select=indefArticle case=dative number=singular} .match $feature |einem| {{correct answer}} * {{Wrong}} + correct answer + + + + Wort + + .local $feature = {$source :inflection select=indefArticle case=accusative number=singular} .match $feature |ein| {{correct answer}} * {{Wrong}} + correct answer + + + + Spieltisch + + .local $feature = {$source :inflection select=indefArticle case=genitive number=singular} .match $feature |eines| {{correct answer}} * {{Wrong}} + correct answer + + + + Spielbank + + .local $feature = {$source :inflection select=indefArticle case=genitive number=singular} .match $feature |einer| {{correct answer}} * {{Wrong}} + correct answer + + + + Spielzimmer + + .local $feature = {$source :inflection select=indefArticle case=dative number=singular} .match $feature |einem| {{correct answer}} * {{Wrong}} + correct answer + + + + Fundort + + .local $feature = {$source :inflection select=defArticleInPreposition case=dative number=singular} .match $feature |im| {{correct answer}} * {{Wrong}} + correct answer + + + + Bank + + .local $feature = {$source :inflection select=defArticleInPreposition case=dative number=singular} .match $feature |in der| {{correct answer}} * {{Wrong}} + correct answer + + + + Wort + + .local $feature = {$source :inflection select=defArticleInPreposition case=nominative number=singular} .match $feature |ins| {{correct answer}} * {{Wrong}} + correct answer + + + + Fundort + + .local $feature = {$source :inflection select=withDefArticleInPreposition case=dative number=singular} .match $feature |im Fundort| {{correct answer}} * {{Wrong}} + correct answer + + + + Bank + + .local $feature = {$source :inflection select=withDefArticleInPreposition case=dative number=singular} .match $feature |in der Bank| {{correct answer}} * {{Wrong}} + correct answer + + + + Wort + + .local $feature = {$source :inflection select=withDefArticleInPreposition case=nominative number=singular} .match $feature |ins Wort| {{correct answer}} * {{Wrong}} + correct answer + + + + neu + + {$source :inflection} + neu + + + + neu + + {$source :inflection case=genitive declension=weak gender=masculine number=plural} + neuen + + + + ander + + {$source :inflection case=nominative declension=weak gender=neuter number=singular} + andere + + + + Katze + + {$source :inflection case=nominative number=singular} + Katze + + + + Katze + + {$source :inflection case=accusative number=singular} + Katze + + + + Katze + + {$source :inflection case=dative number=singular} + Katze + + + + Katze + + {$source :inflection case=genitive number=singular} + Katze + + + + Katze + + {$source :inflection case=nominative number=plural} + Katzen + + + + Katze + + {$source :inflection case=accusative number=plural} + Katzen + + + + Katze + + {$source :inflection case=dative number=plural} + Katzen + + + + Katze + + {$source :inflection case=genitive number=plural} + Katzen + + + + schön Katze + + {$source :inflection case=nominative declension=strong number=singular} + schöne Katze + + + + schön Katze + + {$source :inflection case=genitive declension=strong number=singular} + schöner Katze + + + + schön Katze + + {$source :inflection case=dative declension=strong number=singular} + schöner Katze + + + + schön Katze + + {$source :inflection case=accusative declension=strong number=singular} + schöne Katze + + + + schön Katze + + {$source :inflection case=nominative declension=strong number=plural} + schöne Katzen + + + + schön Katze + + {$source :inflection case=genitive declension=strong number=plural} + schöner Katzen + + + + schön Katze + + {$source :inflection case=dative declension=strong number=plural} + schönen Katzen + + + + schön Katze + + {$source :inflection case=accusative declension=strong number=plural} + schöne Katzen + + + + regulär Zeit + + {$source :inflection case=nominative declension=strong number=singular} + reguläre Zeit + + + + regulär Zeit + + {$source :inflection case=genitive declension=strong number=singular} + regulärer Zeit + + + + regulär Zeit + + {$source :inflection case=dative declension=strong number=singular} + regulärer Zeit + + + + regulär Zeit + + {$source :inflection case=accusative declension=strong number=singular} + reguläre Zeit + + + + regulär Zeit + + {$source :inflection case=nominative declension=strong number=plural} + reguläre Zeiten + + + + regulär Zeit + + {$source :inflection case=genitive declension=strong number=plural} + regulärer Zeiten + + + + regulär Zeit + + {$source :inflection case=dative declension=strong number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=accusative declension=strong number=plural} + reguläre Zeiten + + + + regulär Zeit + + {$source :inflection case=nominative declension=weak number=singular} + reguläre Zeit + + + + regulär Zeit + + {$source :inflection case=genitive declension=weak number=singular} + regulären Zeit + + + + regulär Zeit + + {$source :inflection case=dative declension=weak number=singular} + regulären Zeit + + + + regulär Zeit + + {$source :inflection case=accusative declension=weak number=singular} + reguläre Zeit + + + + regulär Zeit + + {$source :inflection case=nominative declension=weak number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=genitive declension=weak number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=dative declension=weak number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=accusative declension=weak number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=nominative declension=mixed number=singular} + reguläre Zeit + + + + regulär Zeit + + {$source :inflection case=genitive declension=mixed number=singular} + regulären Zeit + + + + regulär Zeit + + {$source :inflection case=dative declension=mixed number=singular} + regulären Zeit + + + + regulär Zeit + + {$source :inflection case=accusative declension=mixed number=singular} + reguläre Zeit + + + + regulär Zeit + + {$source :inflection case=nominative declension=mixed number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=genitive declension=mixed number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=dative declension=mixed number=plural} + regulären Zeiten + + + + regulär Zeit + + {$source :inflection case=accusative declension=mixed number=plural} + regulären Zeiten + + + + motorisiert Fenster + + {$source :inflection case=nominative declension=weak number=singular} + motorisierte Fenster + + + + motorisiert Fenster + + {$source :inflection case=genitive declension=weak number=singular} + motorisierten Fensters + + + + motorisiert Fenster + + {$source :inflection case=dative declension=weak number=singular} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=accusative declension=weak number=singular} + motorisierte Fenster + + + + motorisiert Fenster + + {$source :inflection case=nominative declension=weak number=plural} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=genitive declension=weak number=plural} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=dative declension=weak number=plural} + motorisierten Fenstern + + + + motorisiert Fenster + + {$source :inflection case=accusative declension=weak number=plural} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=nominative declension=strong number=singular} + motorisiertes Fenster + + + + motorisiert Fenster + + {$source :inflection case=accusative declension=strong number=singular} + motorisiertes Fenster + + + + motorisiert Fenster + + {$source :inflection case=genitive declension=strong number=singular} + motorisierten Fensters + + + + motorisiert Fenster + + {$source :inflection case=dative declension=strong number=singular} + motorisiertem Fenster + + + + motorisiert Fenster + + {$source :inflection case=nominative declension=strong number=plural} + motorisierte Fenster + + + + motorisiert Fenster + + {$source :inflection case=accusative declension=strong number=plural} + motorisierte Fenster + + + + motorisiert Fenster + + {$source :inflection case=genitive declension=strong number=plural} + motorisierter Fenster + + + + motorisiert Fenster + + {$source :inflection case=dative declension=strong number=plural} + motorisierten Fenstern + + + + motorisiert Fenster + + {$source :inflection case=nominative declension=mixed number=singular} + motorisiertes Fenster + + + + motorisiert Fenster + + {$source :inflection case=accusative declension=mixed number=singular} + motorisiertes Fenster + + + + motorisiert Fenster + + {$source :inflection case=genitive declension=mixed number=singular} + motorisierten Fensters + + + + motorisiert Fenster + + {$source :inflection case=dative declension=mixed number=singular} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=nominative declension=mixed number=plural} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=accusative declension=mixed number=plural} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=genitive declension=mixed number=plural} + motorisierten Fenster + + + + motorisiert Fenster + + {$source :inflection case=dative declension=mixed number=plural} + motorisierten Fenstern + + + + gefrierend Regen + + {$source :inflection case=nominative declension=strong number=singular} + gefrierender Regen + + + + gefrierend Regen + + {$source :inflection case=genitive declension=strong number=singular} + gefrierenden Regens + + + + gefrierend Regen + + {$source :inflection case=dative declension=strong number=singular} + gefrierendem Regen + + + + gefrierend Regen + + {$source :inflection case=accusative declension=strong number=singular} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=nominative declension=strong number=plural} + gefrierende Regen + + + + gefrierend Regen + + {$source :inflection case=genitive declension=strong number=plural} + gefrierender Regen + + + + gefrierend Regen + + {$source :inflection case=dative declension=strong number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=accusative declension=strong number=plural} + gefrierende Regen + + + + gefrierend Regen + + {$source :inflection case=nominative declension=weak number=singular} + gefrierende Regen + + + + gefrierend Regen + + {$source :inflection case=genitive declension=weak number=singular} + gefrierenden Regens + + + + gefrierend Regen + + {$source :inflection case=dative declension=weak number=singular} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=accusative declension=weak number=singular} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=nominative declension=weak number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=genitive declension=weak number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=dative declension=weak number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=accusative declension=weak number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=nominative declension=mixed number=singular} + gefrierender Regen + + + + gefrierend Regen + + {$source :inflection case=genitive declension=mixed number=singular} + gefrierenden Regens + + + + gefrierend Regen + + {$source :inflection case=dative declension=mixed number=singular} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=accusative declension=mixed number=singular} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=nominative declension=mixed number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=genitive declension=mixed number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=dative declension=mixed number=plural} + gefrierenden Regen + + + + gefrierend Regen + + {$source :inflection case=accusative declension=mixed number=plural} + gefrierenden Regen + + + + olympisch Spiel + + {$source :inflection case=nominative declension=strong number=singular} + olympisches Spiel + + + + Termin + + {$source :inflection case=nominative number=singular} + Termin + + + + Termin + + {$source :inflection case=accusative number=singular} + Termin + + + + Termin + + {$source :inflection case=dative number=singular} + Termin + + + + Termin + + {$source :inflection case=genitive number=singular} + Termines + + + + Termin + + {$source :inflection case=nominative number=plural} + Termine + + + + Termin + + {$source :inflection case=accusative number=plural} + Termine + + + + Termin + + {$source :inflection case=dative number=plural} + Terminen + + + + Termin + + {$source :inflection case=genitive number=plural} + Termine + + + + Mann + + {$source :inflection definiteness=definite} + der Mann + + + + Mann + + {$source :inflection case=nominative definiteness=definite} + der Mann + + + + Lampe + + {$source :inflection case=nominative definiteness=definite number=singular} + die Lampe + + + + Mann + + {$source :inflection case=accusative definiteness=definite} + den Mann + + + + Mann + + {$source :inflection case=dative definiteness=definite} + dem Mann + + + + Mann + + {$source :inflection case=genitive definiteness=definite} + des Mannes + + + + Mann + + {$source :inflection definiteness=indefinite} + ein Mann + + + + Mann + + {$source :inflection case=nominative definiteness=indefinite} + ein Mann + + + + Mann + + {$source :inflection case=accusative definiteness=indefinite} + einen Mann + + + + Mann + + {$source :inflection case=dative definiteness=indefinite} + einem Mann + + + + Mann + + {$source :inflection case=genitive definiteness=indefinite} + eines Mannes + + + + Mann + + {$source :inflection definiteness=definite number=plural} + die Männer + + + + Mann + + {$source :inflection case=nominative definiteness=definite number=plural} + die Männer + + + + Mann + + {$source :inflection case=accusative definiteness=definite number=plural} + die Männer + + + + Mann + + {$source :inflection case=dative definiteness=definite number=plural} + den Männern + + + + Mann + + {$source :inflection case=genitive definiteness=definite number=plural} + der Männer + + + + Frau + + {$source :inflection definiteness=definite} + die Frau + + + + Frau + + {$source :inflection case=nominative definiteness=definite} + die Frau + + + + Frau + + {$source :inflection case=accusative definiteness=definite} + die Frau + + + + Frau + + {$source :inflection case=dative definiteness=definite} + der Frau + + + + Frau + + {$source :inflection case=genitive definiteness=definite} + der Frau + + + + Frau + + {$source :inflection definiteness=indefinite} + eine Frau + + + + Frau + + {$source :inflection case=nominative definiteness=indefinite} + eine Frau + + + + Frau + + {$source :inflection case=accusative definiteness=indefinite} + eine Frau + + + + Frau + + {$source :inflection case=dative definiteness=indefinite} + einer Frau + + + + Frau + + {$source :inflection case=genitive definiteness=indefinite} + einer Frau + + + + Frau + + {$source :inflection case=nominative definiteness=definite number=plural} + die Frauen + + + + Frau + + {$source :inflection case=accusative definiteness=definite number=plural} + die Frauen + + + + Frau + + {$source :inflection case=dative definiteness=definite number=plural} + den Frauen + + + + Frau + + {$source :inflection case=genitive definiteness=definite number=plural} + der Frauen + + + + Tim + + {$source :inflection pos=proper-noun} + Tim + + + + Herz + + {$source :inflection case=genitive} + Herzens + + + + Herz + + {$source :inflection case=genitive pos=proper-noun} + Herz’ + + + + Herz + + {$source :inflection number=plural} + Herzen + + + + Tim + + {$source :inflection case=genitive pos=proper-noun} + Tims + + + + Bruce + + {$source :inflection case=genitive pos=proper-noun} + Bruce’ + + + + Bruce’ + + {$source :inflection case=genitive pos=proper-noun} + Bruce’ + + + + Klaus + + {$source :inflection case=genitive pos=proper-noun} + Klaus’ + + + + Marx + + {$source :inflection case=genitive pos=proper-noun} + Marx’ + + + + Peter + + {$source :inflection case=genitive pos=proper-noun} + Peters + + + + Champions League + + {$source :inflection case=genitive pos=proper-noun} + Champions Leagues + + + + Bad boy + + {$source :inflection case=genitive pos=proper-noun} + Bad boys + + + + Peter ❄️ + + {$source :inflection case=genitive pos=proper-noun} + Peter ❄️s + + + + стол + + {$source :inflection case=genitive pos=proper-noun} + столs + + + + Organisator + + {$source :inflection case=nominative gender=masculine number=singular} + Organisator + + + + Organisator + + {$source :inflection case=nominative gender=feminine number=singular} + Organisatorin + + + + Organisatorin + + {$source :inflection case=nominative gender=masculine number=singular} + Organisator + + + + Organisator + + {$source :inflection gender=feminine} + Organisatorin + + + + Organisatorin + + {$source :inflection gender=masculine} + Organisator + + + + Organisatorin + + {$source :inflection gender=neuter} + Organisatorin + + + + Organisator + + {$source :inflection case=nominative gender=masculine number=singular} + Organisator + + + + Organisator + + {$source :inflection case=nominative gender=feminine number=singular} + Organisatorin + + + + Organisators + + {$source :inflection case=nominative} + Organisator + + + + Organisators + + {$source :inflection gender=feminine} + Organisatorin + + + + Eigentümer + + {$source :inflection case=nominative gender=masculine number=singular} + Eigentümer + + + + Eigentümer + + {$source :inflection case=nominative gender=feminine number=singular} + Eigentümerin + + + + Eigentümer + + {$source :inflection gender=feminine} + Eigentümerin + + + + Autor + + {$source :inflection case=nominative gender=masculine number=singular} + Autor + + + + Autor + + {$source :inflection case=nominative gender=feminine number=singular} + Autorin + + + + Autor + + {$source :inflection gender=feminine} + Autorin + + + + Autors + + {$source :inflection gender=feminine} + Autorin + + + + Autoren + + {$source :inflection gender=feminine} + Autorinnen + + + + Teilnehmer + + {$source :inflection case=nominative gender=masculine number=singular} + Teilnehmer + + + + Teilnehmer + + {$source :inflection case=nominative gender=feminine number=singular} + Teilnehmerin + + + + Teilnehmer + + {$source :inflection gender=feminine} + Teilnehmerin + + + + Freund + + {$source :inflection case=nominative gender=masculine number=singular} + Freund + + + + Freund + + {$source :inflection case=nominative gender=feminine number=singular} + Freundin + + + + Freundes + + {$source :inflection gender=feminine} + Freundin + + + + Ehemann + + {$source :inflection case=nominative gender=feminine number=singular} + Ehefrau + + + + Ehefrau + + {$source :inflection case=nominative gender=feminine number=singular} + Ehefrau + + + + Ehefrau + + {$source :inflection case=nominative gender=feminine number=plural} + Ehefrauen + + + + Ehefrauen + + {$source :inflection case=nominative gender=feminine number=singular} + Ehefrau + + + + Ehemann + + {$source :inflection case=nominative gender=feminine number=plural} + Ehefrauen + + + + Ehemann + + {$source :inflection gender=feminine} + Ehefrau + + + + Ehemänner + + {$source :inflection gender=feminine} + Ehefrauen + + + + Sängerin + + {$source :inflection case=nominative gender=feminine number=plural} + Sängerinnen + + + + Innenhofes + + {$source :inflection case=nominative number=singular} + Innenhof + + + + Innenhofes + + {$source :inflection case=dative number=plural} + Innenhöfen + + + + Zeiten + + {$source :inflection case=genitive number=plural} + Zeiten + + + + Untersuchungsausschüsse + + {$source :inflection case=genitive number=singular} + Untersuchungsausschusses + + + + Decken + + {$source :inflection case=accusative number=singular} + Decke + + + + decken + + {$source :inflection case=accusative number=singular} + decken + + + + Überschusses + + {$source :inflection case=accusative number=plural} + Überschüsse + + + + Schlosses + + {$source :inflection case=nominative number=plural} + Schlösser + + + + Schlosses + + {$source :inflection case=dative number=plural} + Schlössern + + + + Füße + + {$source :inflection case=genitive number=singular} + Fußes + + + + Autos + + {$source :inflection case=nominative number=singular} + Auto + + + + Autos + + {$source :inflection case=accusative number=singular} + Auto + + + + des Autos + + {$source :inflection number=plural} + der Autos + + + + Überblick + + {$source :inflection number=plural} + Überblicke + + + + Überblick + + {$source :inflection number=plural} + Überblicke + + + + Überblicks + + {$source :inflection case=accusative} + Überblick + + + + Überblicke + + {$source :inflection case=accusative} + Überblicke + + + + Überblicken + + {$source :inflection case=accusative} + Überblicke + + + + Eigentümer + + {$source :inflection gender=neuter} + Eigentümer + + + + Eigentümer + + {$source :inflection gender=masculine} + Eigentümer + + + + Eigentümer + + {$source :inflection gender=feminine} + Eigentümerin + + + + zyxzyx + + {$source :inflection gender=feminine} + zyxzyx + + + + zyxzyxe + + {$source :inflection gender=feminine} + zyxzyxe + + + + zyxzyxen + + {$source :inflection number=singular} + zyxzyxen + + + + schöne Katze + + {$source :inflection number=plural} + schöne Katzen + + + + schönen Katzen + + {$source :inflection case=genitive} + schöner Katzen + + + + regulärer Zeit + + {$source :inflection case=dative number=plural} + regulären Zeiten + + + + reguläre Zeit + + {$source :inflection case=genitive declension=mixed} + regulären Zeit + + + + motorisierten Fenstern + + {$source :inflection case=nominative} + motorisierte Fenster + + + + motorisiertes Fenster + + {$source :inflection number=plural} + motorisierte Fenster + + + + neuen Benutzer + + {$source :inflection case=accusative gender=feminine} + neue Benutzerin + + + + hart + + {$source :inflection case=nominative declension=strong gender=masculine} + harter + + + + harter + + {$source :inflection gender=feminine} + harte + + + + harter + + {$source :inflection case=nominative gender=neuter} + hartes + + + + harte + + {$source :inflection case=nominative gender=neuter} + hartes + + + + hartes + + {$source :inflection case=nominative declension=weak gender=neuter} + harte + + + + schön + + {$source :inflection gender=feminine} + schöne + + + + schönes + + {$source :inflection gender=feminine} + schöne + + + + neuer + + {$source :inflection gender=feminine} + neue + + + + neuer + + {$source :inflection gender=neuter} + neues + + + + neue + + {$source :inflection gender=neuter} + neues + + + + schneller + + {$source :inflection gender=feminine} + schnelle + + + + schneller + + {$source :inflection gender=neuter} + schnelles + + + + schnelle + + {$source :inflection gender=neuter} + schnelles + + + + dem Überblick + + {$source :inflection number=plural} + den Überblicken + + + + der Organisatorin + + {$source :inflection case=genitive gender=masculine number=singular} + des Organisators + + + + einer Organisatorin + + {$source :inflection case=genitive gender=masculine number=singular} + eines Organisators + + + + der Organisatorin + + {$source :inflection case=genitive gender=masculine} + des Organisators + + + + einer Organisatorin + + {$source :inflection gender=masculine} + eines Organisators + + + + Einer Organisatorin + + {$source :inflection gender=masculine} + Eines Organisators + + + + der + + {$source :inflection case=genitive gender=masculine number=singular} + des + + + + einer + + {$source :inflection case=genitive gender=masculine number=singular} + eines + + + + ein + + {$source :inflection case=genitive gender=masculine number=singular} + eines + + + + ein + + {$source :inflection case=genitive number=singular} + eines + + + + ein + + {$source :inflection case=genitive} + eines + + + + den Ehefrauen + + {$source :inflection case=accusative gender=feminine number=singular} + die Ehefrau + + + + einer Ehefrau + + {$source :inflection case=accusative gender=feminine number=singular} + eine Ehefrau + + + + den Ehefrauen + + {$source :inflection case=dative number=singular} + der Ehefrau + + + + den + + {$source :inflection case=accusative gender=feminine number=singular} + die + + + + einer + + {$source :inflection case=accusative gender=feminine number=singular} + eine + + + + Handy + + {$source :inflection case=dative definiteness=definite gender=neuter number=singular} + dem Handy + + + + des Handys + + {$source :inflection case=dative gender=neuter number=singular} + dem Handy + + + + ein Handy + + {$source :inflection case=dative gender=neuter number=singular} + einem Handy + + + + eines Handys + + {$source :inflection case=dative gender=neuter number=singular} + einem Handy + + + + eines Handys + + {$source :inflection case=dative number=singular} + einem Handy + + + + des Vaters + + {$source :inflection number=plural} + der Väter + + + + der Ball + + {$source :inflection number=plural} + die Bälle + + + + der Holz + + {$source :inflection case=genitive} + des Holzes + + + + des Zelle + + {$source :inflection number=plural} + der Zellen + + + + der Ball + + {$source :inflection case=accusative} + den Ball + + + + der Bälle + + {$source :inflection case=accusative} + die Bälle + + + + der Domain-Eigentümer + + {$source :inflection gender=feminine} + die Domain-Eigentümerin + + + + den Domain-Eigentümer + + {$source :inflection gender=feminine} + die Domain-Eigentümerin + + + + dem Domain-Eigentümer + + {$source :inflection gender=feminine} + der Domain-Eigentümerin + + + + dieser Freund + + {$source :inflection gender=feminine} + diese Freundin + + + + Organspender + + {$source :inflection gender=feminine} + Organspenderin + + + + Besucher + + {$source :inflection gender=feminine} + Besucherin + + + + Schwester + + .local $feature = {$source :inflection select=withPossArticle case=nominative number=singular} .match $feature |deine Schwester| {{correct answer}} * {{Wrong}} + correct answer + + + + Bruder + + .local $feature = {$source :inflection select=withPossArticle case=nominative number=singular} .match $feature |dein Bruder| {{correct answer}} * {{Wrong}} + correct answer + + diff --git a/inflection/test/resources/inflection/dialog/message/en.xml b/inflection/test/resources/inflection/dialog/message/en.xml new file mode 100644 index 00000000..9d1bba17 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/en.xml @@ -0,0 +1,1042 @@ + + + + + + qzxyzq + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + sheep + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + light + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + lights + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq lights + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + patio + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + patio lights + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + patio light + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + lights on the patio + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + lights around the garden + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + light between the houses + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + to the light on the patio + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + to the lights on the patio + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + ❄️ on the patio + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + ❄️ on the patios + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + the cat + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + The Cat + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + THE CAT + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + the cat + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + a cat + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + an cat + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + an orange + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + thesis + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + animal + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + QQQQQQ + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + the cat + + {$source :inflection definiteness=definite} + the cat + + + + The Cat + + {$source :inflection definiteness=definite} + The Cat + + + + THE CAT + + {$source :inflection definiteness=definite} + THE CAT + + + + the cat + + {$source :inflection definiteness=definite} + the cat + + + + a + + {$source :inflection definiteness=definite} + the a + + + + a + + {$source :inflection definiteness=definite} + the a + + + + an + + {$source :inflection definiteness=definite} + the an + + + + an + + {$source :inflection definiteness=definite} + the an + + + + the + + {$source :inflection definiteness=indefinite} + a the + + + + the + + {$source :inflection definiteness=indefinite} + a the + + + + a cat + + {$source :inflection definiteness=indefinite} + a cat + + + + an cat + + {$source :inflection definiteness=indefinite} + an cat + + + + an ZZZ + + {$source :inflection definiteness=indefinite} + an ZZZ + + + + an orange + + {$source :inflection definiteness=indefinite} + an orange + + + + the cat + + {$source :inflection definiteness=indefinite} + a cat + + + + a cat + + {$source :inflection definiteness=definite} + the cat + + + + cat + + {$source :inflection definiteness=definite} + the cat + + + + the cat + + {$source :inflection definiteness=definite} + the cat + + + + thesis + + {$source :inflection definiteness=definite} + the thesis + + + + cat + + {$source :inflection definiteness=definite number=plural} + the cats + + + + cat + + {$source :inflection definiteness=indefinite} + a cat + + + + orange + + {$source :inflection definiteness=indefinite} + an orange + + + + a + + {$source :inflection definiteness=indefinite} + an a + + + + 1 + + {$source :inflection definiteness=indefinite} + a 1 + + + + 8 + + {$source :inflection definiteness=indefinite} + an 8 + + + + plural + + {$source :inflection definiteness=indefinite} + a plural + + + + plurals + + {$source :inflection definiteness=indefinite} + plurals + + + + sheep + + {$source :inflection definiteness=indefinite} + a sheep + + + + qzxyzq + + .local $feature = {$source :inflection select=case} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq's + + .local $feature = {$source :inflection select=case} .match $feature |genitive| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq’s + + .local $feature = {$source :inflection select=case} .match $feature |genitive| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzqs' + + .local $feature = {$source :inflection select=case} .match $feature |genitive| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzqs’ + + .local $feature = {$source :inflection select=case} .match $feature |genitive| {{correct answer}} * {{Wrong}} + correct answer + + + + 's + + .local $feature = {$source :inflection select=case} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + ’s + + .local $feature = {$source :inflection select=case} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + s' + + .local $feature = {$source :inflection select=case} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + s’ + + .local $feature = {$source :inflection select=case} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + A + + {$source :inflection case=genitive} + A’s + + + + 😀 + + {$source :inflection case=genitive} + 😀’s + + + + 'semantic + + {$source :inflection case=genitive} + 'semantic’s + + + + qzxyzq + + .local $feature = {$source :inflection select=indefArticle} .match $feature |a| {{correct answer}} * {{Wrong}} + correct answer + + + + aqzxyzq + + .local $feature = {$source :inflection select=indefArticle} .match $feature |an| {{correct answer}} * {{Wrong}} + correct answer + + + + cat + + .local $feature = {$source :inflection select=indefArticle} .match $feature |a| {{correct answer}} * {{Wrong}} + correct answer + + + + unicorn + + .local $feature = {$source :inflection select=indefArticle} .match $feature |a| {{correct answer}} * {{Wrong}} + correct answer + + + + umbrella + + .local $feature = {$source :inflection select=indefArticle} .match $feature |an| {{correct answer}} * {{Wrong}} + correct answer + + + + umbrella + + {$source :inflection case=genitive definiteness=indefinite} + an umbrella’s + + + + unicorn + + {$source :inflection case=genitive definiteness=indefinite} + a unicorn’s + + + + goose + + {$source :inflection} + goose + + + + goose + + {$source :inflection number=singular} + goose + + + + goose + + {$source :inflection number=plural} + geese + + + + geese + + {$source :inflection number=singular} + goose + + + + noun + + {$source :inflection number=plural} + nouns + + + + truss + + {$source :inflection number=plural} + trusses + + + + church + + {$source :inflection number=plural} + churches + + + + siriology + + {$source :inflection number=plural} + siriologies + + + + yen + + {$source :inflection number=plural} + yen + + + + yen + + {$source :inflection number=singular} + yen + + + + word phrase + + {$source :inflection number=plural} + word phrases + + + + goose + + {$source :inflection case=genitive number=singular} + goose’s + + + + goose + + {$source :inflection case=genitive number=plural} + geese’s + + + + Ylkdajhf + + {$source :inflection case=genitive} + Ylkdajhf’s + + + + it + + {$source :inflection case=genitive} + its + + + + Siri's + + {$source :inflection case=genitive} + Siri's + + + + Siri’s + + {$source :inflection case=genitive} + Siri’s + + + + Cities + + {$source :inflection case=genitive} + Cities’ + + + + Spatula City + + {$source :inflection case=genitive} + Spatula City’s + + + + Spatula Cities + + {$source :inflection case=genitive} + Spatula Cities’ + + + + day + + {$source :inflection number=plural} + days + + + + boy + + {$source :inflection number=plural} + boys + + + + fan + + {$source :inflection number=plural} + fans + + + + SAG + + {$source :inflection number=plural} + SAGS + + + + bean + + {$source :inflection number=plural} + beans + + + + beans + + {$source :inflection number=plural} + beans + + + + kidney bean + + {$source :inflection number=plural} + kidney beans + + + + kidney beans + + {$source :inflection number=plural} + kidney beans + + + + red kidney bean + + {$source :inflection number=plural} + red kidney beans + + + + bean of kidney + + {$source :inflection number=plural} + beans of kidney + + + + beans of kidney + + {$source :inflection number=plural} + beans of kidney + + + + red bean of kidney + + {$source :inflection number=plural} + red beans of kidney + + + + red beans of kidney + + {$source :inflection number=plural} + red beans of kidney + + + + sheep of a flock + + {$source :inflection number=singular} + sheep of a flock + + + + sheep of a flock + + {$source :inflection number=plural} + sheep of a flock + + + + leading sheep of a flock + + {$source :inflection number=singular} + leading sheep of a flock + + + + leading sheep of a flock + + {$source :inflection number=plural} + leading sheep of a flock + + + + good friends + + {$source :inflection number=singular} + good friend + + + + pies + + {$source :inflection number=singular} + pie + + + + goods qqqqches + + {$source :inflection number=singular} + goods qqqqch + + + + goods qqqqes + + {$source :inflection number=singular} + goods qqqqe + + + + goods qqqqs + + {$source :inflection number=singular} + goods qqqq + + + + goods qqqqies + + {$source :inflection number=singular} + goods qqqqy + + + + goods qqqq + + {$source :inflection number=singular} + goods qqqq + + + + glutei maximi + + {$source :inflection number=plural} + glutei maximi + + + + gluteus maximus + + {$source :inflection number=plural} + glutei maximi + + + + sister + + {$source :inflection number=plural} + sisters + + + + Jose + + {$source :inflection number=plural} + Joses + + + + Jose + + {$source :inflection case=genitive number=plural} + Joses’ + + + + Jose + + {$source :inflection case=genitive} + Jose’s + + + + Jesus + + {$source :inflection case=genitive} + Jesus’s + + + + Jose + + {$source :inflection definiteness=definite} + the Jose + + + + Jose + + {$source :inflection definiteness=indefinite} + a Jose + + + + Jose + + {$source :inflection case=genitive definiteness=definite} + the Jose’s + + + + Jose + + {$source :inflection definiteness=definite number=plural} + the Joses + + + + is + + {$source :inflection number=plural} + are + + + + has + + {$source :inflection number=plural} + have + + + + creates + + {$source :inflection number=plural} + create + + + + create + + {$source :inflection number=plural} + create + + + + creates + + {$source :inflection number=singular} + creates + + + + works + + {$source :inflection number=plural pos=verb} + work + + + + work + + {$source :inflection number=plural pos=verb} + work + + + + works + + {$source :inflection number=singular pos=verb} + works + + + + work + + {$source :inflection number=singular pos=verb} + works + + + + work + + {$source :inflection number=plural} + works + + + + works + + {$source :inflection number=plural} + works + + + + work + + {$source :inflection number=singular} + work + + + + works + + {$source :inflection number=singular} + work + + + + this + + {$source :inflection number=plural} + these + + + + that + + {$source :inflection number=plural} + those + + + + these + + {$source :inflection number=plural} + these + + + + those + + {$source :inflection number=plural} + those + + + + these + + {$source :inflection number=singular} + this + + + + those + + {$source :inflection number=singular} + that + + + + this + + {$source :inflection number=singular} + this + + + + that + + {$source :inflection number=singular} + that + + diff --git a/inflection/test/resources/inflection/dialog/message/es.xml b/inflection/test/resources/inflection/dialog/message/es.xml new file mode 100644 index 00000000..c49b29d9 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/es.xml @@ -0,0 +1,1245 @@ + + + + + + farola + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + café + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + camión + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + móvil + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + hábitat + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + capataz + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + anís + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + compás + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + lápiz + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + clubes + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + papás + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + ítems + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + luces + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + déficits + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + universidad + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + nariz + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + televisión + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + crisis + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + superficie + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + costumbre + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + acciones + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + papel + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + pan + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + lunes + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + clima + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + planeta + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + Luz + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + es + + .local $feature = {$source :inflection select=gender} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + qwzqwza + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + qwzqwzo + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + qwzqwzas + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + qwzqwzos + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + gato + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + el gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + los gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + los gatos + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + Los Gatos + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + LOS GATOS + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + del gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + al gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + un gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + uno gato + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + una gata + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + a gato + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=defArticle} .match $feature |el| {{correct answer}} * {{Wrong}} + correct answer + + + + gato + + .local $feature = {$source :inflection select=defArticle} .match $feature |el| {{correct answer}} * {{Wrong}} + correct answer + + + + gata + + .local $feature = {$source :inflection select=defArticle} .match $feature |la| {{correct answer}} * {{Wrong}} + correct answer + + + + gatos + + .local $feature = {$source :inflection select=defArticle} .match $feature |los| {{correct answer}} * {{Wrong}} + correct answer + + + + gatas + + .local $feature = {$source :inflection select=defArticle} .match $feature |las| {{correct answer}} * {{Wrong}} + correct answer + + + + cuarto de Victoria + + .local $feature = {$source :inflection select=defArticle} .match $feature |el| {{correct answer}} * {{Wrong}} + correct answer + + + + Habitación de Victor + + .local $feature = {$source :inflection select=defArticle} .match $feature |la| {{correct answer}} * {{Wrong}} + correct answer + + + + sensor de temperatura + + .local $feature = {$source :inflection select=indefArticle} .match $feature |un| {{correct answer}} * {{Wrong}} + correct answer + + + + alarma de incendios + + .local $feature = {$source :inflection select=indefArticle} .match $feature |una| {{correct answer}} * {{Wrong}} + correct answer + + + + sensores de humedad + + .local $feature = {$source :inflection select=indefArticle} .match $feature |unos| {{correct answer}} * {{Wrong}} + correct answer + + + + llaves de agua + + .local $feature = {$source :inflection select=indefArticle} .match $feature |unas| {{correct answer}} * {{Wrong}} + correct answer + + + + real madrid + + .local $feature = {$source :inflection select=dePrepArticle} .match $feature |del| {{correct answer}} * {{Wrong}} + correct answer + + + + pantalla para la Mac + + .local $feature = {$source :inflection select=dePrepArticle} .match $feature |de la| {{correct answer}} * {{Wrong}} + correct answer + + + + barco + + {$source :inflection} + barco + + + + pan + + {$source :inflection} + pan + + + + línea aérea + + {$source :inflection} + línea aérea + + + + paraguas + + {$source :inflection} + paraguas + + + + paracaídas + + {$source :inflection} + paracaídas + + + + precio histórico + + {$source :inflection} + precio histórico + + + + cambio porcentual en tiempo real + + {$source :inflection} + cambio porcentual en tiempo real + + + + cambio de porcentaje + + {$source :inflection} + cambio de porcentaje + + + + fax + + {$source :inflection} + fax + + + + barco + + {$source :inflection number=singular} + barco + + + + pan + + {$source :inflection number=singular} + pan + + + + línea aérea + + {$source :inflection number=singular} + línea aérea + + + + paraguas + + {$source :inflection number=singular} + paraguas + + + + paracaídas + + {$source :inflection number=singular} + paracaídas + + + + precio histórico + + {$source :inflection number=singular} + precio histórico + + + + cambio porcentual en tiempo real + + {$source :inflection number=singular} + cambio porcentual en tiempo real + + + + cambio de porcentaje + + {$source :inflection number=singular} + cambio de porcentaje + + + + fax + + {$source :inflection number=singular} + fax + + + + barco + + {$source :inflection number=plural} + barcos + + + + pan + + {$source :inflection number=plural} + panes + + + + paraguas + + {$source :inflection number=plural} + paraguas + + + + paracaídas + + {$source :inflection number=plural} + paracaídas + + + + precio histórico + + {$source :inflection number=plural} + precios históricos + + + + cambio porcentual en tiempo real + + {$source :inflection number=plural} + cambios porcentuales en tiempo real + + + + cambio de porcentaje + + {$source :inflection number=plural} + cambios de porcentaje + + + + fax + + {$source :inflection number=plural} + faxes + + + + hotel + + {$source :inflection number=plural} + hoteles + + + + qwyxor + + {$source :inflection number=plural} + qwyxores + + + + qwyxoz + + {$source :inflection number=plural} + qwyxoces + + + + qwyxión + + {$source :inflection number=plural} + qwyxiones + + + + qwyxoc + + {$source :inflection number=plural} + qwyxoques + + + + qwyxog + + {$source :inflection number=plural} + qwyxogues + + + + avión + + {$source :inflection number=plural} + aviones + + + + conversación + + {$source :inflection number=plural} + conversaciones + + + + lápiz + + {$source :inflection number=plural} + lápices + + + + actriz + + {$source :inflection number=plural} + actrices + + + + frac + + {$source :inflection number=plural} + fracs + + + + fraque + + {$source :inflection number=plural} + fraques + + + + lemming + + {$source :inflection number=plural} + lemmings + + + + lunes + + {$source :inflection number=plural} + lunes + + + + qqqqqe + + {$source :inflection number=plural} + qqqqqes + + + + análisis + + {$source :inflection number=plural} + análisis + + + + app de finanzas + + {$source :inflection number=plural} + apps de finanzas + + + + gato + + {$source :inflection definiteness=definite} + el gato + + + + gato + + {$source :inflection definiteness=indefinite} + un gato + + + + gata + + {$source :inflection definiteness=definite} + la gata + + + + gato + + {$source :inflection definiteness=definite number=plural} + los gatos + + + + gato + + {$source :inflection definiteness=definite gender=feminine number=plural} + las gatas + + + + qwzqwz + + {$source :inflection definiteness=definite gender=feminine number=plural} + las qwzqwces + + + + toquera + + {$source :inflection number=plural} + toqueras + + + + toquero + + {$source :inflection number=plural} + toqueros + + + + toquero + + {$source :inflection gender=feminine number=plural} + toqueras + + + + toquera + + {$source :inflection gender=masculine number=plural} + toqueros + + + + toqueras + + {$source :inflection number=singular} + toquera + + + + toqueros + + {$source :inflection number=singular} + toquero + + + + toqueros + + {$source :inflection gender=feminine number=singular} + toquera + + + + toqueras + + {$source :inflection gender=masculine number=singular} + toquero + + + + bienvenida + + {$source :inflection gender=feminine} + bienvenida + + + + bienvenido + + {$source :inflection gender=masculine} + bienvenido + + + + bienvenido + + {$source :inflection gender=feminine} + bienvenida + + + + bienvenida + + {$source :inflection gender=masculine} + bienvenido + + + + BIENVENIDA + + {$source :inflection gender=feminine} + BIENVENIDA + + + + BIENVENIDO + + {$source :inflection gender=masculine} + BIENVENIDO + + + + BIENVENIDO + + {$source :inflection gender=feminine} + BIENVENIDA + + + + BIENVENIDA + + {$source :inflection gender=masculine} + BIENVENIDO + + + + Bienvenida + + {$source :inflection gender=feminine} + Bienvenida + + + + Bienvenido + + {$source :inflection gender=masculine} + Bienvenido + + + + Bienvenido + + {$source :inflection gender=feminine} + Bienvenida + + + + Bienvenida + + {$source :inflection gender=masculine} + Bienvenido + + + + registrado + + {$source :inflection gender=feminine} + registrada + + + + registrada + + {$source :inflection gender=masculine} + registrado + + + + registradísimo + + {$source :inflection gender=feminine} + registradísima + + + + registradísima + + {$source :inflection gender=masculine} + registradísimo + + + + el usuario + + {$source :inflection gender=feminine} + la usuaria + + + + la usuaria + + {$source :inflection gender=masculine} + el usuario + + + + el delegado + + {$source :inflection gender=feminine} + la delegada + + + + la delegada + + {$source :inflection gender=masculine} + el delegado + + + + qwzqwza + + {$source :inflection gender=feminine} + qwzqwza + + + + qwzqwzo + + {$source :inflection gender=masculine} + qwzqwzo + + + + qwzqwzo + + {$source :inflection gender=feminine} + qwzqwza + + + + qwzqwza + + {$source :inflection gender=masculine} + qwzqwzo + + + + qwzqwzas + + {$source :inflection gender=feminine} + qwzqwzas + + + + qwzqwzos + + {$source :inflection gender=masculine} + qwzqwzos + + + + qwzqwzos + + {$source :inflection gender=feminine} + qwzqwzas + + + + qwzqwzas + + {$source :inflection gender=masculine} + qwzqwzos + + + + qwzqwzq + + {$source :inflection gender=feminine} + qwzqwzq + + + + qwzqwzq + + {$source :inflection gender=masculine} + qwzqwzq + + + + esta + + {$source :inflection number=plural} + estas + + + + esta + + {$source :inflection gender=masculine} + este + + + + está + + {$source :inflection number=plural} + están + + + + encendido + + {$source :inflection number=plural} + encendidos + + + + elecciones + + {$source :inflection number=singular} + elección + + + + elecciones + + {$source :inflection number=plural} + elecciones + + + + del + + {$source :inflection gender=feminine} + de la + + + + del + + {$source :inflection number=plural} + de los + + + + de la + + {$source :inflection gender=masculine} + del + + + + de los + + {$source :inflection number=singular} + del + + + + del gato + + {$source :inflection gender=feminine} + de la gata + + + + del gato + + {$source :inflection number=plural} + de los gatos + + + + de la gata + + {$source :inflection gender=masculine} + del gato + + + + de los gatos + + {$source :inflection number=singular} + del gato + + + + águila + + {$source :inflection definiteness=definite} + el águila + + + + amiga + + {$source :inflection definiteness=definite} + la amiga + + + + harina + + {$source :inflection definiteness=definite} + la harina + + + + habitación + + {$source :inflection definiteness=definite} + la habitación + + + + agua + + {$source :inflection definiteness=definite} + el agua + + + + agua + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |del agua| {{correct answer}} * {{Wrong}} + correct answer + + + + agua + + .local $feature = {$source :inflection select=withDemAdj} .match $feature |esta agua| {{correct answer}} * {{Wrong}} + correct answer + + + + agua fría + + {$source :inflection definiteness=definite} + el agua fría + + + + fría agua + + {$source :inflection definiteness=definite} + la fría agua + + + + aguas + + {$source :inflection definiteness=definite} + las aguas + + + + áreas + + {$source :inflection definiteness=indefinite} + unas áreas + + + + área + + {$source :inflection definiteness=indefinite number=plural} + unas áreas + + + + álgebra + + {$source :inflection definiteness=indefinite} + un álgebra + + + + álgebra + + {$source :inflection definiteness=definite} + el álgebra + + + + álgebra + + .local $feature = {$source :inflection select=withDemAdj} .match $feature |esta álgebra| {{correct answer}} * {{Wrong}} + correct answer + + + + álgebra añeja + + {$source :inflection definiteness=definite} + el álgebra añeja + + + + añeja álgebra + + {$source :inflection definiteness=definite} + la añeja álgebra + + + + área + + .local $feature = {$source :inflection select=withDemAdj} .match $feature |esta área| {{correct answer}} * {{Wrong}} + correct answer + + diff --git a/inflection/test/resources/inflection/dialog/message/fr.xml b/inflection/test/resources/inflection/dialog/message/fr.xml new file mode 100644 index 00000000..c52d113f --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/fr.xml @@ -0,0 +1,2575 @@ + + + + + + chien + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + bureau + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Chambre + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Salon + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Cour arrière + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Sous-sol + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Rez-de-chaussée + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Rez de chaussée + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Premier étage + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + bureaux + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + chaises + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + fax + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + univers + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Paris + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + Félix + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + Tour Eiffel + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Fête Nationale + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + République du Congo + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + livre sterling + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Apple Watch + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + Apple TV + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + ma chambre + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + je + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + l + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + notInDicts + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + lumière + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + chambre + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + cuisine + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + table + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + salle à manger + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + ambiance cinéma + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + garage + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + bureau + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + salon + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + rez-de-chaussée + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + Rez de chaussée + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + Premier étage + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + chat + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + carton en bas du premier étage + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + belle + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + BELLE + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + dskhjgfage + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + dskhjgfe + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + dskhjgfin + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + dskhjgfn + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + dskhjgf + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + Apple Watch + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + Apple TV + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=gender} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + chat + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + le chat + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + les chat + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + les chats + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + Les Chats + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + LES CHATS + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + l'homme + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + l’homme + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + du chat + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + au chat + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + un chat + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + une chat + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + chat + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + a chat + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + de chat + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=defArticle} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + chats + + .local $feature = {$source :inflection select=defArticle} .match $feature |les | {{correct answer}} * {{Wrong}} + correct answer + + + + hindi + + .local $feature = {$source :inflection select=defArticle} .match $feature |l’| {{correct answer}} * {{Wrong}} + correct answer + + + + radiant + + .local $feature = {$source :inflection select=defArticle} .match $feature |le | {{correct answer}} * {{Wrong}} + correct answer + + + + nova + + .local $feature = {$source :inflection select=defArticle} .match $feature |la | {{correct answer}} * {{Wrong}} + correct answer + + + + France + + .local $feature = {$source :inflection select=defArticle} .match $feature |la | {{correct answer}} * {{Wrong}} + correct answer + + + + chambre de Ludovic + + .local $feature = {$source :inflection select=defArticle} .match $feature |la | {{correct answer}} * {{Wrong}} + correct answer + + + + Amsterdam + + {$source :inflection definiteness=definite} + Amsterdam + + + + Paris Plages + + {$source :inflection definiteness=definite} + Paris Plages + + + + Paris Plage + + {$source :inflection definiteness=definite} + Paris Plage + + + + Roland Garros + + {$source :inflection definiteness=definite} + Roland Garros + + + + Tour de France + + {$source :inflection definiteness=definite} + le Tour de France + + + + 24 heures du Mans + + {$source :inflection definiteness=definite} + les 24 heures du Mans + + + + Francofolies + + {$source :inflection definiteness=definite} + les Francofolies + + + + Grand prix de Monaco + + {$source :inflection definiteness=definite} + le Grand prix de Monaco + + + + Fashion week + + {$source :inflection definiteness=definite} + la Fashion week + + + + Hellfest + + {$source :inflection definiteness=definite} + le Hellfest + + + + Japan Expo + + {$source :inflection definiteness=definite} + la Japan Expo + + + + Vendée Globe + + {$source :inflection definiteness=definite} + le Vendée Globe + + + + Solidays + + {$source :inflection definiteness=definite} + les Solidays + + + + Eurockéennes de Belfort + + {$source :inflection definiteness=definite} + les Eurockéennes de Belfort + + + + FIAC + + {$source :inflection definiteness=definite} + la FIAC + + + + Royal de Luxe + + {$source :inflection definiteness=definite} + le Royal de Luxe + + + + Tour Eiffel + + {$source :inflection definiteness=definite} + la Tour Eiffel + + + + Télé + + {$source :inflection definiteness=definite} + la Télé + + + + Salon + + {$source :inflection definiteness=definite} + le Salon + + + + Lampe + + {$source :inflection definiteness=definite} + la Lampe + + + + Lampadaire + + {$source :inflection definiteness=definite} + le Lampadaire + + + + Ventilateur + + {$source :inflection definiteness=definite} + le Ventilateur + + + + Cuisine + + {$source :inflection definiteness=definite} + la Cuisine + + + + Chambre + + {$source :inflection definiteness=definite} + la Chambre + + + + Bureau + + {$source :inflection definiteness=definite} + le Bureau + + + + Portail + + {$source :inflection definiteness=definite} + le Portail + + + + Canapé + + {$source :inflection definiteness=definite} + le Canapé + + + + Plafond + + {$source :inflection definiteness=definite} + le Plafond + + + + Table + + {$source :inflection definiteness=definite} + la Table + + + + Télévision + + {$source :inflection definiteness=definite} + la Télévision + + + + Prise + + {$source :inflection definiteness=definite} + la Prise + + + + Chevet + + {$source :inflection definiteness=definite} + le Chevet + + + + Volet + + {$source :inflection definiteness=definite} + le Volet + + + + Clim + + {$source :inflection definiteness=definite} + la Clim + + + + Lit + + {$source :inflection definiteness=definite} + le Lit + + + + Entrée + + {$source :inflection definiteness=definite} + l’Entrée + + + + Plafonnier + + {$source :inflection definiteness=definite} + le Plafonnier + + + + Guirlande + + {$source :inflection definiteness=definite} + la Guirlande + + + + Séjour + + {$source :inflection definiteness=definite} + le Séjour + + + + Couloir + + {$source :inflection definiteness=definite} + le Couloir + + + + Terrasse + + {$source :inflection definiteness=definite} + la Terrasse + + + + Garage + + {$source :inflection definiteness=definite} + le Garage + + + + Escalier + + {$source :inflection definiteness=definite} + l’Escalier + + + + Toilettes + + {$source :inflection definiteness=definite} + les Toilettes + + + + Dressing + + {$source :inflection definiteness=definite} + le Dressing + + + + Piscine + + {$source :inflection definiteness=definite} + la Piscine + + + + Apple TV + + {$source :inflection definiteness=definite} + l’Apple TV + + + + Apple Watch + + {$source :inflection definiteness=definite} + l’Apple Watch + + + + néerlandais + + {$source :inflection definiteness=definite} + le néerlandais + + + + suédois + + {$source :inflection definiteness=definite} + le suédois + + + + cinéma + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |au cinéma| {{correct answer}} * {{Wrong}} + correct answer + + + + patinoire + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |à la patinoire| {{correct answer}} * {{Wrong}} + correct answer + + + + grands magasins + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |aux grands magasins| {{correct answer}} * {{Wrong}} + correct answer + + + + auditorium + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |à l’auditorium| {{correct answer}} * {{Wrong}} + correct answer + + + + Paris + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |à Paris| {{correct answer}} * {{Wrong}} + correct answer + + + + Le Caire + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |au Caire| {{correct answer}} * {{Wrong}} + correct answer + + + + Le Mans + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |au Mans| {{correct answer}} * {{Wrong}} + correct answer + + + + Les Enfoirés + + .local $feature = {$source :inflection select=withAPrepArticle} .match $feature |aux Enfoirés| {{correct answer}} * {{Wrong}} + correct answer + + + + Pays-Bas + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des Pays-Bas| {{correct answer}} * {{Wrong}} + correct answer + + + + Italie + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’Italie| {{correct answer}} * {{Wrong}} + correct answer + + + + entrée + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’entrée| {{correct answer}} * {{Wrong}} + correct answer + + + + AS Saint-Etienne + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’AS Saint-Etienne| {{correct answer}} * {{Wrong}} + correct answer + + + + Japon + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Japon| {{correct answer}} * {{Wrong}} + correct answer + + + + salon + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du salon| {{correct answer}} * {{Wrong}} + correct answer + + + + Moyen-Orient + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Moyen-Orient| {{correct answer}} * {{Wrong}} + correct answer + + + + Chine + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de Chine| {{correct answer}} * {{Wrong}} + correct answer + + + + cuisine + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la cuisine| {{correct answer}} * {{Wrong}} + correct answer + + + + Tour Eiffel + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Tour Eiffel| {{correct answer}} * {{Wrong}} + correct answer + + + + Amiens + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |d’Amiens| {{correct answer}} * {{Wrong}} + correct answer + + + + Ariana Grande + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |d’Ariana Grande| {{correct answer}} * {{Wrong}} + correct answer + + + + Paris + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de Paris| {{correct answer}} * {{Wrong}} + correct answer + + + + Rihanna + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de Rihanna| {{correct answer}} * {{Wrong}} + correct answer + + + + Paris Plages + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de Paris Plages| {{correct answer}} * {{Wrong}} + correct answer + + + + Paris Plage + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de Paris Plage| {{correct answer}} * {{Wrong}} + correct answer + + + + Roland Garros + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de Roland Garros| {{correct answer}} * {{Wrong}} + correct answer + + + + Tour de France + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Tour de France| {{correct answer}} * {{Wrong}} + correct answer + + + + 24 heures du Mans + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des 24 heures du Mans| {{correct answer}} * {{Wrong}} + correct answer + + + + Francofolies + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des Francofolies| {{correct answer}} * {{Wrong}} + correct answer + + + + Grand prix de Monaco + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Grand prix de Monaco| {{correct answer}} * {{Wrong}} + correct answer + + + + Fashion week + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Fashion week| {{correct answer}} * {{Wrong}} + correct answer + + + + Hellfest + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Hellfest| {{correct answer}} * {{Wrong}} + correct answer + + + + Japan Expo + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Japan Expo| {{correct answer}} * {{Wrong}} + correct answer + + + + Vendée Globe + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Vendée Globe| {{correct answer}} * {{Wrong}} + correct answer + + + + Solidays + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des Solidays| {{correct answer}} * {{Wrong}} + correct answer + + + + Eurockéennes de Belfort + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des Eurockéennes de Belfort| {{correct answer}} * {{Wrong}} + correct answer + + + + FIAC + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la FIAC| {{correct answer}} * {{Wrong}} + correct answer + + + + Royal de Luxe + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Royal de Luxe| {{correct answer}} * {{Wrong}} + correct answer + + + + Le Mans + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Mans| {{correct answer}} * {{Wrong}} + correct answer + + + + Le Caire + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Caire| {{correct answer}} * {{Wrong}} + correct answer + + + + Les Enfoirés + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des Enfoirés| {{correct answer}} * {{Wrong}} + correct answer + + + + Télé + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Télé| {{correct answer}} * {{Wrong}} + correct answer + + + + Salon + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Salon| {{correct answer}} * {{Wrong}} + correct answer + + + + Lampe + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Lampe| {{correct answer}} * {{Wrong}} + correct answer + + + + Lampadaire + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Lampadaire| {{correct answer}} * {{Wrong}} + correct answer + + + + Ventilateur + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Ventilateur| {{correct answer}} * {{Wrong}} + correct answer + + + + Cuisine + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Cuisine| {{correct answer}} * {{Wrong}} + correct answer + + + + Chambre + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Chambre| {{correct answer}} * {{Wrong}} + correct answer + + + + Bureau + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Bureau| {{correct answer}} * {{Wrong}} + correct answer + + + + Portail + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Portail| {{correct answer}} * {{Wrong}} + correct answer + + + + Canapé + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Canapé| {{correct answer}} * {{Wrong}} + correct answer + + + + Plafond + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Plafond| {{correct answer}} * {{Wrong}} + correct answer + + + + Table + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Table| {{correct answer}} * {{Wrong}} + correct answer + + + + Télévision + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Télévision| {{correct answer}} * {{Wrong}} + correct answer + + + + Prise + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Prise| {{correct answer}} * {{Wrong}} + correct answer + + + + Chevet + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Chevet| {{correct answer}} * {{Wrong}} + correct answer + + + + Volet + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Volet| {{correct answer}} * {{Wrong}} + correct answer + + + + Clim + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Clim| {{correct answer}} * {{Wrong}} + correct answer + + + + Lit + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Lit| {{correct answer}} * {{Wrong}} + correct answer + + + + Entrée + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’Entrée| {{correct answer}} * {{Wrong}} + correct answer + + + + Plafonnier + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Plafonnier| {{correct answer}} * {{Wrong}} + correct answer + + + + Guirlande + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Guirlande| {{correct answer}} * {{Wrong}} + correct answer + + + + Séjour + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Séjour| {{correct answer}} * {{Wrong}} + correct answer + + + + Couloir + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Couloir| {{correct answer}} * {{Wrong}} + correct answer + + + + Terrasse + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Terrasse| {{correct answer}} * {{Wrong}} + correct answer + + + + Garage + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Garage| {{correct answer}} * {{Wrong}} + correct answer + + + + Escalier + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’Escalier| {{correct answer}} * {{Wrong}} + correct answer + + + + Toilettes + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des Toilettes| {{correct answer}} * {{Wrong}} + correct answer + + + + Dressing + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du Dressing| {{correct answer}} * {{Wrong}} + correct answer + + + + Piscine + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de la Piscine| {{correct answer}} * {{Wrong}} + correct answer + + + + le + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du| {{correct answer}} * {{Wrong}} + correct answer + + + + les + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |des| {{correct answer}} * {{Wrong}} + correct answer + + + + hôtel + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’hôtel| {{correct answer}} * {{Wrong}} + correct answer + + + + Hôtel + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’Hôtel| {{correct answer}} * {{Wrong}} + correct answer + + + + hôpital + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’hôpital| {{correct answer}} * {{Wrong}} + correct answer + + + + Hôpital + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |de l’Hôpital| {{correct answer}} * {{Wrong}} + correct answer + + + + HomePod + + .local $feature = {$source :inflection select=withDePrepArticle} .match $feature |du HomePod| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone + + .local $feature = {$source :inflection select=genitiveArticle} .match $feature |de | {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone portable + + .local $feature = {$source :inflection select=genitiveArticle} .match $feature |de | {{correct answer}} * {{Wrong}} + correct answer + + + + téléphones + + .local $feature = {$source :inflection select=genitiveArticle} .match $feature |des | {{correct answer}} * {{Wrong}} + correct answer + + + + machine + + .local $feature = {$source :inflection select=genitiveArticle} .match $feature |de la | {{correct answer}} * {{Wrong}} + correct answer + + + + appareil + + .local $feature = {$source :inflection select=genitiveArticle} .match $feature |de l’| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de téléphone| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone portable + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de téléphone portable| {{correct answer}} * {{Wrong}} + correct answer + + + + fax professionnel + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de fax professionnel| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphones + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |des téléphones| {{correct answer}} * {{Wrong}} + correct answer + + + + machine + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de la machine| {{correct answer}} * {{Wrong}} + correct answer + + + + appareil + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de l’appareil| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone personnel + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de téléphone personnel| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone principal + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de téléphone principal| {{correct answer}} * {{Wrong}} + correct answer + + + + fax personnel + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de fax personnel| {{correct answer}} * {{Wrong}} + correct answer + + + + pager + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de pager| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone sans label + + .local $feature = {$source :inflection select=withGenitiveArticle} .match $feature |de téléphone sans label| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone + + .local $feature = {$source :inflection select=demonArticle} .match $feature |ce| {{correct answer}} * {{Wrong}} + correct answer + + + + village + + .local $feature = {$source :inflection select=demonArticle} .match $feature |ce| {{correct answer}} * {{Wrong}} + correct answer + + + + montre + + .local $feature = {$source :inflection select=demonArticle} .match $feature |cette| {{correct answer}} * {{Wrong}} + correct answer + + + + image + + .local $feature = {$source :inflection select=demonArticle} .match $feature |cette| {{correct answer}} * {{Wrong}} + correct answer + + + + appareil + + .local $feature = {$source :inflection select=demonArticle} .match $feature |cet| {{correct answer}} * {{Wrong}} + correct answer + + + + ordinateurs + + .local $feature = {$source :inflection select=demonArticle} .match $feature |ces| {{correct answer}} * {{Wrong}} + correct answer + + + + QQQQQQQQ + + .local $feature = {$source :inflection select=demonArticle} .match $feature |ce| {{correct answer}} * {{Wrong}} + correct answer + + + + téléphone + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |ce téléphone| {{correct answer}} * {{Wrong}} + correct answer + + + + village + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |ce village| {{correct answer}} * {{Wrong}} + correct answer + + + + montre + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |cette montre| {{correct answer}} * {{Wrong}} + correct answer + + + + image + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |cette image| {{correct answer}} * {{Wrong}} + correct answer + + + + appareil + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |cet appareil| {{correct answer}} * {{Wrong}} + correct answer + + + + ordinateurs + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |ces ordinateurs| {{correct answer}} * {{Wrong}} + correct answer + + + + QQQQQQQQ + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |ce QQQQQQQQ| {{correct answer}} * {{Wrong}} + correct answer + + + + Apple TV + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |cette Apple TV| {{correct answer}} * {{Wrong}} + correct answer + + + + Apple Watch + + .local $feature = {$source :inflection select=withDemonArticle} .match $feature |cette Apple Watch| {{correct answer}} * {{Wrong}} + correct answer + + + + appartement + + .local $feature = {$source :inflection select=withDePrep} .match $feature |d’appartement| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=withDePrep} .match $feature |de qzxyzq| {{correct answer}} * {{Wrong}} + correct answer + + + + maison + + .local $feature = {$source :inflection select=withDePrep} .match $feature |de maison| {{correct answer}} * {{Wrong}} + correct answer + + + + Hollande + + .local $feature = {$source :inflection select=withDePrep} .match $feature |de Hollande| {{correct answer}} * {{Wrong}} + correct answer + + + + Line + + .local $feature = {$source :inflection select=que} .match $feature |que | {{correct answer}} * {{Wrong}} + correct answer + + + + Emilie + + .local $feature = {$source :inflection select=que} .match $feature |qu’| {{correct answer}} * {{Wrong}} + correct answer + + + + ami + + {$source :inflection number=plural} + amis + + + + amis + + {$source :inflection number=plural} + amis + + + + carnavals + + {$source :inflection number=singular} + carnaval + + + + ami + + {$source :inflection number=singular} + ami + + + + abckk + + {$source :inflection number=plural} + abckks + + + + abckkeu + + {$source :inflection number=plural} + abckkeux + + + + abckkeau + + {$source :inflection number=plural} + abckkeaux + + + + abckkx + + {$source :inflection number=plural} + abckkx + + + + abckks + + {$source :inflection number=plural} + abckks + + + + abckkz + + {$source :inflection number=plural} + abckkz + + + + abckkal + + {$source :inflection number=plural} + abckkaux + + + + abckkail + + {$source :inflection number=plural} + abckkaux + + + + abckk + + {$source :inflection number=singular} + abckk + + + + amical + + {$source :inflection number=plural} + amicaux + + + + lieu + + {$source :inflection number=plural} + lieux + + + + acajou + + {$source :inflection number=plural} + acajous + + + + sas + + {$source :inflection number=plural} + sas + + + + gaz + + {$source :inflection number=plural} + gaz + + + + relax + + {$source :inflection number=plural} + relax + + + + ciel + + {$source :inflection number=plural} + cieux + + + + œil + + {$source :inflection number=plural} + yeux + + + + yeux + + {$source :inflection number=singular} + œil + + + + travail + + {$source :inflection number=plural} + travaux + + + + aval + + {$source :inflection number=plural} + avals + + + + bal + + {$source :inflection number=plural} + bals + + + + carnaval + + {$source :inflection number=plural} + carnavals + + + + chacal + + {$source :inflection number=plural} + chacals + + + + corral + + {$source :inflection number=plural} + corrals + + + + festival + + {$source :inflection number=plural} + festivals + + + + récital + + {$source :inflection number=plural} + récitals + + + + régal + + {$source :inflection number=plural} + régals + + + + bijou + + {$source :inflection number=plural} + bijoux + + + + caillou + + {$source :inflection number=plural} + cailloux + + + + chou + + {$source :inflection number=plural} + choux + + + + genou + + {$source :inflection number=plural} + genoux + + + + hibou + + {$source :inflection number=plural} + hiboux + + + + joujou + + {$source :inflection number=plural} + joujoux + + + + pou + + {$source :inflection number=plural} + poux + + + + bleu + + {$source :inflection number=plural} + bleus + + + + émeu + + {$source :inflection number=plural} + émeus + + + + pneu + + {$source :inflection number=plural} + pneus + + + + landau + + {$source :inflection number=plural} + landaus + + + + sarrau + + {$source :inflection number=plural} + sarraus + + + + pour + + {$source :inflection number=plural} + pour + + + + dans + + {$source :inflection number=plural} + dans + + + + en + + {$source :inflection number=plural} + en + + + + avec + + {$source :inflection number=plural} + avec + + + + Torche électrique + + {$source :inflection number=plural} + Torches électriques + + + + clinique d'avortement privée + + {$source :inflection number=plural} + cliniques d'avortement privées + + + + boutique d'objets de collection + + {$source :inflection number=plural} + boutiques d'objets de collection + + + + centre de désintoxication + + {$source :inflection number=plural} + centres de désintoxication + + + + enfouissement des déchets + + {$source :inflection number=plural} + enfouissements des déchets + + + + service de gestion du plomb + + {$source :inflection number=plural} + services de gestion du plomb + + + + service des lacs et voies d'eau + + {$source :inflection number=plural} + services des lacs et voies d'eau + + + + service d'aide en cas de faillite + + {$source :inflection number=plural} + services d'aide en cas de faillite + + + + société de cartes de crédit d'entreprise + + {$source :inflection number=plural} + sociétés de cartes de crédit d'entreprise + + + + entreprise de financement de l'investissement + + {$source :inflection number=plural} + entreprises de financement de l'investissements + + + + service en ligne + + {$source :inflection number=plural} + services en ligne + + + + créé + + {$source :inflection number=plural} + créés + + + + modifié + + {$source :inflection number=plural} + modifiés + + + + déplacée + + {$source :inflection number=plural} + déplacées + + + + iMessage + + {$source :inflection number=plural} + iMessages + + + + photo + + {$source :inflection number=plural} + photos + + + + hôtel + + {$source :inflection number=plural} + hôtels + + + + restaurant + + {$source :inflection number=plural} + restaurants + + + + japonais + + {$source :inflection number=plural} + japonais + + + + japonaise + + {$source :inflection number=plural} + japonaises + + + + biographique + + {$source :inflection number=plural} + biographiques + + + + musical + + {$source :inflection number=plural} + musicaux + + + + musicale + + {$source :inflection number=plural} + musicales + + + + comédie familiale + + {$source :inflection number=plural} + comédies familiales + + + + pour adolescents + + {$source :inflection number=plural} + pour adolescents + + + + d'action + + {$source :inflection number=plural} + d'action + + + + pour la famille + + {$source :inflection number=plural} + pour les familles + + + + film d’action + + {$source :inflection number=plural} + films d’action + + + + table + + {$source :inflection definiteness=indefinite} + une table + + + + salon + + {$source :inflection definiteness=indefinite} + un salon + + + + yeux + + {$source :inflection definiteness=indefinite number=singular} + un œil + + + + ciel + + {$source :inflection definiteness=definite number=plural} + les cieux + + + + œil + + {$source :inflection definiteness=definite number=plural} + les yeux + + + + yeux + + {$source :inflection definiteness=definite number=singular} + l’œil + + + + bienvenu + + {$source :inflection gender=masculine number=plural} + bienvenus + + + + bienvenu + + {$source :inflection gender=feminine number=singular} + bienvenue + + + + bienvenu + + {$source :inflection gender=feminine number=plural} + bienvenues + + + + bienvenue + + {$source :inflection gender=masculine number=singular} + bienvenu + + + + bienvenue + + {$source :inflection gender=masculine number=plural} + bienvenus + + + + bienvenue + + {$source :inflection gender=feminine number=plural} + bienvenues + + + + BIENVENU + + {$source :inflection gender=feminine number=singular} + BIENVENUE + + + + informé + + {$source :inflection gender=feminine} + informée + + + + Vous serez informé + + {$source :inflection gender=feminine} + Vous serez informée + + + + prêt + + {$source :inflection gender=feminine} + prête + + + + vous serez prêt + + {$source :inflection gender=feminine} + vous serez prête + + + + mentionné + + {$source :inflection gender=masculine} + mentionné + + + + mentionné + + {$source :inflection gender=feminine} + mentionnée + + + + été mentionné + + {$source :inflection gender=masculine} + été mentionné + + + + été mentionné + + {$source :inflection gender=feminine} + été mentionnée + + + + réveillé + + {$source :inflection gender=masculine} + réveillé + + + + réveillé + + {$source :inflection gender=feminine} + réveillée + + + + Une + + {$source :inflection gender=masculine} + Un + + + + Une + + {$source :inflection gender=feminine} + Une + + + + Une fois que vous êtes réveillé + + {$source :inflection gender=masculine} + Un fois que vous êtes réveillé + + + + Une fois que vous êtes réveillé + + {$source :inflection gender=feminine} + Une fois que vous êtes réveillée + + + + excité + + {$source :inflection gender=masculine} + excité + + + + excité + + {$source :inflection gender=feminine} + excitée + + + + nerveux + + {$source :inflection gender=masculine} + nerveux + + + + nerveux + + {$source :inflection gender=feminine} + nerveuse + + + + stressé + + {$source :inflection gender=masculine} + stressé + + + + stressé + + {$source :inflection gender=feminine} + stressée + + + + excité, nerveux ou stressé + + {$source :inflection gender=masculine} + excité, nerveux ou stressé + + + + excité, nerveux ou stressé + + {$source :inflection gender=feminine} + excitée, nerveuse ou stressée + + + + resté inactif + + {$source :inflection gender=masculine} + resté inactif + + + + resté inactif + + {$source :inflection gender=feminine} + restée inactive + + + + êtes resté inactif + + {$source :inflection gender=masculine} + êtes resté inactif + + + + êtes resté inactif + + {$source :inflection gender=feminine} + êtes restée inactive + + + + actif + + {$source :inflection gender=masculine} + actif + + + + actif + + {$source :inflection gender=feminine} + active + + + + déshydraté + + {$source :inflection gender=masculine} + déshydraté + + + + déshydraté + + {$source :inflection gender=feminine} + déshydratée + + + + le délégué + + {$source :inflection gender=masculine} + le délégué + + + + le délégué + + {$source :inflection gender=feminine} + la déléguée + + + + organisateur + + {$source :inflection gender=masculine} + organisateur + + + + organisateur + + {$source :inflection gender=feminine} + organisatrice + + + + l’organisateur + + {$source :inflection gender=masculine} + l’organisateur + + + + l’organisateur + + {$source :inflection gender=feminine} + l’organisatrice + + + + crée + + {$source :inflection number=plural} + créent + + + + est + + {$source :inflection number=plural pos=verb} + sont + + + + très grand + + {$source :inflection gender=feminine} + très grande + + + + mien + + {$source :inflection gender=masculine number=plural} + miens + + + + mien + + {$source :inflection gender=feminine number=plural} + miennes + + + + mienne + + {$source :inflection gender=masculine number=plural} + miens + + + + mienne + + {$source :inflection gender=feminine number=plural} + miennes + + diff --git a/inflection/test/resources/inflection/dialog/message/he.xml b/inflection/test/resources/inflection/dialog/message/he.xml new file mode 100644 index 00000000..783a843e --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/he.xml @@ -0,0 +1,1945 @@ + + + + + + אובססיה + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + אגם + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + אחות + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + חברה + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + מנהלת + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + מלונה + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + ידידה + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + אפשרות + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + העדפה + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + מכונית + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + חבר + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + ידיד + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + מנהל + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + מלון + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + רעיון + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + אוטו + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + אח + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + תשואה + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + שרבה + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + הסטונהנג׳ + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + סטונהנג׳ + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + תרומת + + .local $feature = {$source :inflection select=definiteness} .match $feature |construct| {{correct answer}} * {{Wrong}} + correct answer + + + + תתרענן + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + תתתתתתתתתתתת + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + תתעלל + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + word + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + דלת + + {$source :inflection number=plural} + דלתות + + + + ספרים + + {$source :inflection} + ספרים + + + + ספרים + + {$source :inflection definiteness=indefinite} + ספרים + + + + ספרים + + {$source :inflection definiteness=definite} + הספרים + + + + מחשב + + {$source :inflection} + מחשב + + + + מחשב + + {$source :inflection definiteness=indefinite} + מחשב + + + + מחשב + + {$source :inflection definiteness=definite} + המחשב + + + + משרד מכירות + + {$source :inflection} + משרד מכירות + + + + משרד מכירות + + {$source :inflection definiteness=indefinite} + משרד מכירות + + + + משרד מכירות + + {$source :inflection definiteness=definite} + משרד המכירות + + + + משרד עורכי-דין + + {$source :inflection} + משרד עורכי-דין + + + + משרד עורכי-דין + + {$source :inflection definiteness=indefinite} + משרד עורכי-דין + + + + משרד עורכי-דין + + {$source :inflection definiteness=definite} + משרד עורכי-הדין + + + + בית-משפט + + {$source :inflection} + בית-משפט + + + + בית-משפט + + {$source :inflection definiteness=indefinite} + בית-משפט + + + + בית-משפט + + {$source :inflection definiteness=definite} + בית-המשפט + + + + חבר + + {$source :inflection} + חבר + + + + חבר + + {$source :inflection number=singular} + חבר + + + + חבר + + {$source :inflection number=dual} + חברים + + + + חבר + + {$source :inflection number=plural} + חברים + + + + מכונית + + {$source :inflection} + מכונית + + + + מכונית + + {$source :inflection number=singular} + מכונית + + + + מכונית + + {$source :inflection number=dual} + מכוניות + + + + מכונית + + {$source :inflection number=plural} + מכוניות + + + + חברה + + {$source :inflection} + חברה + + + + חברה + + {$source :inflection number=singular} + חברה + + + + חברה + + {$source :inflection number=dual} + חברות + + + + חברה + + {$source :inflection number=plural} + חברות + + + + דרך + + {$source :inflection} + דרך + + + + דרך + + {$source :inflection number=singular} + דרך + + + + דרך + + {$source :inflection number=dual} + דרכים + + + + דרך + + {$source :inflection number=plural} + דרכים + + + + מכונית + + {$source :inflection} + מכונית + + + + מכונית + + {$source :inflection number=singular} + מכונית + + + + מכונית + + {$source :inflection number=dual} + מכוניות + + + + מכונית + + {$source :inflection number=plural} + מכוניות + + + + חשבון + + {$source :inflection} + חשבון + + + + חשבון + + {$source :inflection number=singular} + חשבון + + + + חשבון + + {$source :inflection number=dual} + חשבונות + + + + חשבון + + {$source :inflection number=plural} + חשבונות + + + + רעיון + + {$source :inflection} + רעיון + + + + רעיון + + {$source :inflection number=singular} + רעיון + + + + רעיון + + {$source :inflection number=dual} + רעיונות + + + + רעיון + + {$source :inflection number=plural} + רעיונות + + + + צל + + {$source :inflection} + צל + + + + צל + + {$source :inflection number=singular} + צל + + + + צל + + {$source :inflection number=dual} + צללים + + + + צל + + {$source :inflection number=plural} + צללים + + + + אפשרות + + {$source :inflection} + אפשרות + + + + אפשרות + + {$source :inflection number=singular} + אפשרות + + + + אפשרות + + {$source :inflection number=dual} + אפשרויות + + + + אפשרות + + {$source :inflection number=plural} + אפשרויות + + + + חלון + + {$source :inflection} + חלון + + + + חלון + + {$source :inflection number=singular} + חלון + + + + חלון + + {$source :inflection number=dual} + חלונות + + + + חלון + + {$source :inflection number=plural} + חלונות + + + + שבוע + + {$source :inflection} + שבוע + + + + שבוע + + {$source :inflection number=singular} + שבוע + + + + שבוע + + {$source :inflection number=dual} + שבועיים + + + + שבוע + + {$source :inflection number=plural} + שבועות + + + + איש קשר + + {$source :inflection} + איש קשר + + + + איש קשר + + {$source :inflection number=singular} + איש קשר + + + + איש קשר + + {$source :inflection number=dual} + אנשי קשר + + + + איש קשר + + {$source :inflection number=plural} + אנשי קשר + + + + הודעת טקסט + + {$source :inflection} + הודעת טקסט + + + + הודעת טקסט + + {$source :inflection number=singular} + הודעת טקסט + + + + הודעת טקסט + + {$source :inflection number=dual} + הודעות טקסט + + + + הודעת טקסט + + {$source :inflection number=plural} + הודעות טקסט + + + + מספר טלפון + + {$source :inflection} + מספר טלפון + + + + מספר טלפון + + {$source :inflection number=singular} + מספר טלפון + + + + מספר טלפון + + {$source :inflection number=dual} + מספרי טלפון + + + + מספר טלפון + + {$source :inflection number=plural} + מספרי טלפון + + + + שעון מעורר + + {$source :inflection} + שעון מעורר + + + + שעון מעורר + + {$source :inflection number=singular} + שעון מעורר + + + + שעון מעורר + + {$source :inflection number=dual} + שעונים מעוררים + + + + שעון מעורר + + {$source :inflection number=plural} + שעונים מעוררים + + + + מסעדה צרפתית + + {$source :inflection} + מסעדה צרפתית + + + + מסעדה צרפתית + + {$source :inflection number=singular} + מסעדה צרפתית + + + + מסעדה צרפתית + + {$source :inflection number=dual} + מסעדות צרפתיות + + + + מסעדה צרפתית + + {$source :inflection number=plural} + מסעדות צרפתיות + + + + פרק הבא + + {$source :inflection} + פרק הבא + + + + פרק הבא + + {$source :inflection number=singular} + פרק הבא + + + + פרק הבא + + {$source :inflection number=dual} + פרקים הבאים + + + + פרק הבא + + {$source :inflection number=plural} + פרקים הבאים + + + + אובססיה + + .local $feature = {$source :inflection select=withConditionalHyphen} .match $feature |אובססיה| {{correct answer}} * {{Wrong}} + correct answer + + + + test + + .local $feature = {$source :inflection select=withConditionalHyphen} .match $feature |-test| {{correct answer}} * {{Wrong}} + correct answer + + + + 9 + + .local $feature = {$source :inflection select=withConditionalHyphen} .match $feature |-9| {{correct answer}} * {{Wrong}} + correct answer + + + + 9אובססיה + + .local $feature = {$source :inflection select=withConditionalHyphen} .match $feature |-9אובססיה| {{correct answer}} * {{Wrong}} + correct answer + + + + דלת מוסך + + {$source :inflection number=plural} + דלתות מוסך + + + + דלת מוסך + + {$source :inflection definiteness=definite} + דלת המוסך + + + + דלת מוסך + + {$source :inflection definiteness=definite number=plural} + דלתות המוסך + + + + מארגן + + {$source :inflection gender=feminine} + מארגנת + + + + משתתף + + {$source :inflection gender=feminine} + משתתפת + + + + גדולים + + {$source :inflection gender=feminine number=plural} + גדולות + + + + גדולה + + {$source :inflection gender=masculine number=singular} + גדול + + + + מוכנים + + {$source :inflection gender=feminine number=plural} + מוכנות + + + + סגור + + {$source :inflection gender=feminine} + סגורה + + + + סגורים + + {$source :inflection gender=feminine number=plural} + סגורות + + + + יפים + + {$source :inflection gender=feminine number=plural} + יפות + + + + בטוח + + {$source :inflection gender=feminine} + בטוחה + + + + עסוק + + {$source :inflection gender=feminine} + עסוקה + + + + פתוחה + + {$source :inflection gender=masculine number=singular pos=adjective} + פתוח + + + + פתוחות + + {$source :inflection gender=masculine number=plural pos=adjective} + פתוחים + + + + חדשה + + {$source :inflection gender=masculine number=singular pos=adjective} + חדש + + + + חדשות + + {$source :inflection gender=masculine number=plural pos=adjective} + חדשים + + + + מוכנה + + {$source :inflection gender=masculine number=singular pos=adjective} + מוכן + + + + מוכנות + + {$source :inflection gender=masculine number=plural pos=adjective} + מוכנים + + + + פעיל + + {$source :inflection gender=feminine number=singular pos=adjective} + פעילה + + + + פעילים + + {$source :inflection gender=feminine number=plural pos=adjective} + פעילות + + + + פועל + + {$source :inflection gender=feminine number=singular pos=adjective} + פועלת + + + + פועלים + + {$source :inflection gender=feminine number=plural pos=adjective} + פועלות + + + + כבוי + + {$source :inflection gender=feminine number=singular pos=adjective} + כבויה + + + + כבויים + + {$source :inflection gender=feminine number=plural pos=adjective} + כבויות + + + + מבוטלת + + {$source :inflection gender=masculine number=singular pos=adjective} + מבוטל + + + + מבוטלות + + {$source :inflection gender=masculine number=plural pos=adjective} + מבוטלים + + + + נעולה + + {$source :inflection gender=masculine number=singular pos=adjective} + נעול + + + + נעולים + + {$source :inflection gender=feminine number=plural pos=adjective} + נעולות + + + + תקועה + + {$source :inflection gender=masculine number=singular pos=adjective} + תקוע + + + + תקועים + + {$source :inflection gender=feminine number=plural pos=adjective} + תקועות + + + + סגורה + + {$source :inflection gender=masculine number=singular pos=adjective} + סגור + + + + סגורות + + {$source :inflection gender=masculine number=plural pos=adjective} + סגורים + + + + מנותקת + + {$source :inflection gender=masculine number=singular pos=adjective} + מנותק + + + + מנותקות + + {$source :inflection gender=masculine number=plural pos=adjective} + מנותקים + + + + מאושר + + {$source :inflection gender=feminine number=singular pos=adjective} + מאושרת + + + + מאושרים + + {$source :inflection gender=feminine number=plural pos=adjective} + מאושרות + + + + חסומה + + {$source :inflection gender=masculine number=singular pos=adjective} + חסום + + + + חסומות + + {$source :inflection gender=masculine number=plural pos=adjective} + חסומים + + + + עורך + + {$source :inflection gender=feminine} + עורכת + + + + משתף + + {$source :inflection gender=feminine} + משתפת + + + + מקבלת + + {$source :inflection gender=masculine} + מקבל + + + + מתחילה + + {$source :inflection gender=masculine} + מתחיל + + + + מתחילים + + {$source :inflection gender=feminine number=plural} + מתחילות + + + + מסכים + + {$source :inflection gender=feminine} + מסכימה + + + + לא מסכים + + {$source :inflection gender=feminine} + לא מסכימה + + + + לא משתתף + + {$source :inflection gender=feminine} + לא משתתפת + + + + אפשר + + {$source :inflection gender=feminine} + אפשרי + + + + הזן + + {$source :inflection gender=feminine} + הזיני + + + + העתק + + {$source :inflection gender=feminine} + העתיקי + + + + מחק + + {$source :inflection gender=feminine} + מחקי + + + + ודא + + {$source :inflection gender=feminine} + ודאי + + + + בחר + + {$source :inflection gender=feminine} + בחרי + + + + אשר + + {$source :inflection gender=feminine} + אשרי + + + + התכונן + + {$source :inflection gender=feminine} + התכונני + + + + הקש + + {$source :inflection gender=feminine} + הקישי + + + + לחץ + + {$source :inflection gender=feminine} + לחצי + + + + התחבר + + {$source :inflection gender=feminine} + התחברי + + + + הפעל + + {$source :inflection gender=feminine} + הפעילי + + + + כבה + + {$source :inflection gender=feminine person=second} + כבי + + + + המשך + + {$source :inflection gender=feminine} + המשיכי + + + + השכירי + + {$source :inflection gender=masculine} + השכר + + + + בקרי + + {$source :inflection gender=masculine pos=verb} + בקר + + + + זה + + {$source :inflection gender=feminine} + זו + + + + אלו הם + + {$source :inflection gender=feminine} + אלו הן + + + + קח + + {$source :inflection gender=feminine} + קחי + + + + האט + + {$source :inflection gender=feminine} + האטי + + + + היזכרי + + {$source :inflection gender=masculine} + היזכר + + + + דמיין + + {$source :inflection gender=feminine person=second} + דמייני + + + + מרגישה + + {$source :inflection gender=masculine} + מרגיש + + + + תיהני + + {$source :inflection gender=masculine} + תיהנה + + + + הישאר + + {$source :inflection gender=feminine} + הישארי + + + + שב + + {$source :inflection gender=feminine pos=verb} + שבי + + + + עצום + + {$source :inflection gender=feminine pos=verb} + עצמי + + + + התנועע + + {$source :inflection gender=feminine} + התנועעי + + + + התחל + + {$source :inflection gender=feminine} + התחילי + + + + שב + + {$source :inflection gender=feminine pos=verb} + שבי + + + + התרכז + + {$source :inflection gender=feminine} + התרכזי + + + + שואף + + {$source :inflection gender=feminine} + שואפת + + + + נושף + + {$source :inflection gender=feminine} + נושפת + + + + העמק + + {$source :inflection gender=feminine} + העמיקי + + + + נושם + + {$source :inflection gender=feminine} + נושמת + + + + מצאי + + {$source :inflection gender=masculine pos=verb} + מצא + + + + שימי לב + + {$source :inflection gender=masculine} + שים לב + + + + תני + + {$source :inflection gender=masculine} + תן + + + + פתוחה + + {$source :inflection gender=masculine number=singular pos=adjective} + פתוח + + + + פתוחות + + {$source :inflection gender=masculine number=plural pos=adjective} + פתוחים + + + + חדשה + + {$source :inflection gender=masculine number=singular pos=adjective} + חדש + + + + חדשות + + {$source :inflection gender=masculine number=plural pos=adjective} + חדשים + + + + מוכנה + + {$source :inflection gender=masculine number=singular pos=adjective} + מוכן + + + + מוכנות + + {$source :inflection gender=masculine number=plural pos=adjective} + מוכנים + + + + פעיל + + {$source :inflection gender=feminine number=singular pos=adjective} + פעילה + + + + פעילים + + {$source :inflection gender=feminine number=plural pos=adjective} + פעילות + + + + פועל + + {$source :inflection gender=feminine number=singular pos=adjective} + פועלת + + + + פועלים + + {$source :inflection gender=feminine number=plural pos=adjective} + פועלות + + + + כבוי + + {$source :inflection gender=feminine number=singular pos=adjective} + כבויה + + + + כבויים + + {$source :inflection gender=feminine number=plural pos=adjective} + כבויות + + + + מבוטלת + + {$source :inflection gender=masculine number=singular pos=adjective} + מבוטל + + + + מבוטלות + + {$source :inflection gender=masculine number=plural pos=adjective} + מבוטלים + + + + לא נעולה + + {$source :inflection gender=masculine number=singular pos=adjective} + לא נעול + + + + לא נעולים + + {$source :inflection gender=feminine number=plural pos=adjective} + לא נעולות + + + + מחוברת + + {$source :inflection gender=masculine number=singular pos=adjective} + מחובר + + + + מחוברות + + {$source :inflection gender=masculine number=plural pos=adjective} + מחוברים + + + + לא מחובר + + {$source :inflection gender=feminine number=singular pos=adjective} + לא מחוברת + + + + לא מחוברים + + {$source :inflection gender=feminine number=plural pos=adjective} + לא מחוברות + + + + אושר + + {$source :inflection gender=feminine number=singular pos=adjective} + אושרה + + + + הופעלה + + {$source :inflection gender=masculine number=singular pos=adjective} + הופעל + + + + כובה + + {$source :inflection gender=feminine number=singular pos=adjective} + כובתה + + + + בוטל + + {$source :inflection gender=feminine number=singular pos=adjective} + בוטלה + + + + נעצרה + + {$source :inflection gender=masculine number=singular pos=adjective} + נעצר + + + + עצרה + + {$source :inflection gender=masculine number=singular pos=adjective} + עצר + + + + נחסם + + {$source :inflection gender=feminine number=singular pos=adjective} + נחסמה + + + + התקשר + + {$source :inflection gender=feminine person=third pos=verb} + התקשרה + + + + קיבל + + {$source :inflection gender=feminine} + קיבלה + + + + הוסיף + + {$source :inflection gender=feminine} + הוסיפה + + + + הקצתה + + {$source :inflection gender=masculine} + הקצה + + + + ביטלה + + {$source :inflection gender=masculine} + ביטל + + + + השלימה + + {$source :inflection gender=masculine} + השלים + + + + סירב + + {$source :inflection gender=feminine} + סירבה + + + + זכה + + {$source :inflection gender=feminine person=third pos=verb} + זכתה + + + + הרוויח + + {$source :inflection gender=feminine} + הרוויחה + + + + הזמין + + {$source :inflection gender=feminine} + הזמינה + + + + ביקשה + + {$source :inflection gender=masculine} + ביקש + + + + עדכנה + + {$source :inflection gender=masculine} + עדכן + + + + ערך + + {$source :inflection gender=feminine} + ערכה + + + + שיתף + + {$source :inflection gender=feminine} + שיתפה + + + + אזכר + + {$source :inflection gender=feminine person=third pos=verb} + אזכרה + + + + אוזכר + + {$source :inflection gender=feminine} + אוזכרה + + + + העביר + + {$source :inflection gender=feminine} + העבירה + + + + בחר + + {$source :inflection gender=feminine person=third pos=verb} + בחרה + + + + ניסה + + {$source :inflection gender=feminine} + ניסתה + + + + שינה + + {$source :inflection gender=feminine person=third pos=verb} + שינתה + + + + יצרה + + {$source :inflection gender=masculine} + יצר + + + + מחק + + {$source :inflection gender=feminine person=third pos=verb} + מחקה + + + + ערך + + {$source :inflection gender=feminine} + ערכה + + + + ביצע + + {$source :inflection gender=feminine} + ביצעה + + + + סיים + + {$source :inflection gender=feminine person=third} + סיימה + + + + השלים + + {$source :inflection gender=feminine} + השלימה + + + + חסם + + {$source :inflection gender=feminine} + חסמה + + + + אישר + + {$source :inflection gender=feminine} + אישרה + + + + הסיר + + {$source :inflection gender=feminine} + הסירה + + + + הפסיק + + {$source :inflection gender=feminine} + הפסיקה + + + + רכש + + {$source :inflection gender=feminine} + רכשה + + + + משדר + + {$source :inflection gender=feminine} + משדרת + + + + אהבה + + {$source :inflection gender=masculine} + אהב + + + + צחקה + + {$source :inflection gender=masculine} + צחק + + + + עוצרת + + {$source :inflection gender=masculine} + עוצר + + + + עוצרים + + {$source :inflection gender=feminine number=plural} + עוצרות + + + + עזבה + + {$source :inflection gender=masculine} + עזב + + + + ביצעה + + {$source :inflection gender=masculine} + ביצע + + + + השהתה + + {$source :inflection gender=masculine} + השהה + + + + ביקשה + + {$source :inflection gender=masculine} + ביקש + + + + מבקשת + + {$source :inflection gender=masculine} + מבקש + + + + חידשה + + {$source :inflection gender=masculine} + חידש + + + + שלחה + + {$source :inflection gender=masculine} + שלח + + + + דילגה + + {$source :inflection gender=masculine} + דילג + + + + צילמה + + {$source :inflection gender=masculine} + צילם + + + + העתיק + + {$source :inflection gender=feminine} + העתיקה + + + + שכפל + + {$source :inflection gender=feminine person=third} + שכפלה + + + + אוזכר + + {$source :inflection gender=feminine} + אוזכרה + + + + שרף + + {$source :inflection gender=feminine} + שרפה + + + + השקיע + + {$source :inflection gender=feminine} + השקיעה + + + + הוציא + + {$source :inflection gender=feminine} + הוציאה + + diff --git a/inflection/test/resources/inflection/dialog/message/hi.xml b/inflection/test/resources/inflection/dialog/message/hi.xml new file mode 100644 index 00000000..8bf62f96 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/hi.xml @@ -0,0 +1,685 @@ + + + + + + लड़का + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + आशिया + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + दुकान + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + दुकानें + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + लड़का + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + दरवाज़ा + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + छोटा कमरा + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + लाल बत्ती + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + लाल बत्तियाँ + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + लम्बी लड़कियाँ + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + कमरे की बत्ती + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + कमरे की बत्तियाँ + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + कमरों की बत्ती + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + दुकान + + {$source :inflection number=plural} + दुकानें + + + + तस्वीर + + {$source :inflection number=plural} + तस्वीरें + + + + संदेश + + {$source :inflection number=plural} + संदेश + + + + दरवाज़ा + + {$source :inflection number=plural} + दरवाज़े + + + + कमरा + + {$source :inflection number=plural} + कमरे + + + + पंखा + + {$source :inflection number=plural} + पंखे + + + + ऐपलए + + {$source :inflection number=singular} + ऐपलआ + + + + अप्पलके + + {$source :inflection number=singular} + अप्पलका + + + + मोरफ़ूनु + + {$source :inflection number=plural} + मोरफ़ूनुएँ + + + + अप्पलेकी + + {$source :inflection number=plural} + अप्पलेकियाँ + + + + अबकया + + {$source :inflection number=plural} + अबकयाँ + + + + क्ष्यजआ + + {$source :inflection number=plural} + क्ष्यजए + + + + क्ष्यजा + + {$source :inflection number=plural} + क्ष्यजे + + + + कीबें + + {$source :inflection number=singular} + कीबे + + + + FaceTime + + {$source :inflection number=singular} + FaceTime + + + + Apple + + {$source :inflection number=plural} + Apple + + + + लड़का + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + लड़की + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + आपका + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + आपकी + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + रहा + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + कुत्ता + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + गाना + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + गाड़ी + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + चलाया + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + चलायी + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + चल + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + लम्बी लड़कियाँ + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + ऊँचा पहाड़ + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + पहला + + {$source :inflection gender=feminine} + पहली + + + + पहली + + {$source :inflection gender=masculine} + पहला + + + + दूसरा + + {$source :inflection gender=feminine} + दूसरी + + + + दूसरी + + {$source :inflection gender=masculine} + दूसरा + + + + तीसरा + + {$source :inflection gender=feminine} + तीसरी + + + + तीसरी + + {$source :inflection gender=masculine} + तीसरा + + + + खुला + + {$source :inflection gender=feminine} + खुली + + + + खुली + + {$source :inflection gender=masculine} + खुला + + + + नया + + {$source :inflection gender=feminine} + नई + + + + नई + + {$source :inflection gender=masculine} + नया + + + + छिपा + + {$source :inflection gender=feminine} + छिपी + + + + छिपी + + {$source :inflection gender=masculine} + छिपा + + + + गया + + {$source :inflection gender=feminine} + गई + + + + गई + + {$source :inflection gender=masculine} + गया + + + + दबाया + + {$source :inflection gender=feminine} + दबाई + + + + दबाई + + {$source :inflection gender=masculine} + दबाया + + + + Calculator + + {$source :inflection gender=masculine} + Calculator + + + + Clock + + {$source :inflection gender=feminine} + Clock + + + + आबका + + {$source :inflection gender=feminine number=plural} + आबकियाँ + + + + कबकी + + {$source :inflection gender=masculine number=plural} + कबके + + + + का + + {$source :inflection gender=feminine} + की + + + + के + + {$source :inflection number=singular} + का + + + + का + + {$source :inflection number=plural} + के + + + + की + + {$source :inflection gender=masculine} + का + + + + की + + {$source :inflection number=singular} + की + + + + की + + {$source :inflection number=plural} + की + + + + सकता + + {$source :inflection gender=feminine} + सकती + + + + सकते + + {$source :inflection gender=feminine} + सकतीं + + + + सकते हैं + + {$source :inflection gender=feminine} + सकती हैं + + + + करता + + {$source :inflection gender=feminine} + करती + + + + करते + + {$source :inflection gender=feminine} + करतीं + + + + करते हैं + + {$source :inflection gender=feminine} + करती हैं + + + + चाहता + + {$source :inflection gender=feminine} + चाहती + + + + चाहते + + {$source :inflection gender=feminine} + चाहतीं + + + + चाहते हैं + + {$source :inflection gender=feminine} + चाहती हैं + + + + रहा + + {$source :inflection gender=feminine} + रही + + + + रहे + + {$source :inflection gender=feminine} + रहीं + + + + रहे हैं + + {$source :inflection gender=feminine} + रही हैं + + + + चलते + + {$source :inflection gender=feminine} + चलतीं + + + + चलते रहते + + {$source :inflection gender=feminine} + चलती रहतीं + + + + चलते रहते हैं + + {$source :inflection gender=feminine} + चलती रहती हैं + + + + गलियारा में + + {$source :inflection number=singular} + गलियारे में + + + + दरवाज़ा का + + {$source :inflection number=singular} + दरवाज़े का + + + + दरवाज़ा का बात + + {$source :inflection gender=feminine} + दरवाज़े की बात + + + + सकते थे + + {$source :inflection gender=feminine} + सकती थीं + + + + करते थे + + {$source :inflection gender=feminine} + करती थीं + + + + चाहते थे + + {$source :inflection gender=feminine} + चाहती थीं + + + + आयोजक + + {$source :inflection gender=feminine} + आयोजिका + + + + बच्चा + + {$source :inflection gender=feminine} + बच्ची + + + + निर्माता + + {$source :inflection gender=feminine} + निर्मात्री + + + + शिक्षक + + {$source :inflection gender=feminine} + शिक्षिका + + + + गायक + + {$source :inflection gender=feminine} + गायिका + + + + लेखक + + {$source :inflection gender=feminine} + लेखिका + + + + सदस्य + + {$source :inflection gender=feminine} + सदस्या + + + + अभिभावक + + {$source :inflection gender=feminine} + अभिभाविका + + diff --git a/inflection/test/resources/inflection/dialog/message/it.xml b/inflection/test/resources/inflection/dialog/message/it.xml new file mode 100644 index 00000000..caf85e18 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/it.xml @@ -0,0 +1,965 @@ + + + + + + casa + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + salotto + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + automobile + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + gatto + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + capo redattore + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + case + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + salotti + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + automobili + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + gatti + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + capi redattore + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + notInDicta + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + notInDicti + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + notInDict + + .local $feature = {$source :inflection select=number} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + automobile + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + donna + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + armadio + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + letto + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + pastello + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + notInDictzione + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + notInDictore + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + notInDict + + .local $feature = {$source :inflection select=gender} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + gatto + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + il gatto + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + il gatti + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + i gatti + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + I Gatti + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + I GATTI + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + del gatto + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + al gatto + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + un gatto + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + uno gatto + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + una gatta + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + un'arancia + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + un’arancia + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + a gatto + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=defArticle} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + gatto + + .local $feature = {$source :inflection select=defArticle} .match $feature |il | {{correct answer}} * {{Wrong}} + correct answer + + + + gatti + + .local $feature = {$source :inflection select=defArticle} .match $feature |i | {{correct answer}} * {{Wrong}} + correct answer + + + + gatte + + .local $feature = {$source :inflection select=defArticle} .match $feature |le | {{correct answer}} * {{Wrong}} + correct answer + + + + gatta + + .local $feature = {$source :inflection select=defArticle} .match $feature |la | {{correct answer}} * {{Wrong}} + correct answer + + + + italiano + + .local $feature = {$source :inflection select=defArticle} .match $feature |l’| {{correct answer}} * {{Wrong}} + correct answer + + + + italiani + + .local $feature = {$source :inflection select=defArticle} .match $feature |gli | {{correct answer}} * {{Wrong}} + correct answer + + + + italiane + + .local $feature = {$source :inflection select=defArticle} .match $feature |le | {{correct answer}} * {{Wrong}} + correct answer + + + + italiana + + .local $feature = {$source :inflection select=defArticle} .match $feature |l’| {{correct answer}} * {{Wrong}} + correct answer + + + + gnocchi + + .local $feature = {$source :inflection select=defArticle} .match $feature |gli | {{correct answer}} * {{Wrong}} + correct answer + + + + gnomo + + .local $feature = {$source :inflection select=defArticle} .match $feature |lo | {{correct answer}} * {{Wrong}} + correct answer + + + + hotel + + .local $feature = {$source :inflection select=defArticle} .match $feature |l’| {{correct answer}} * {{Wrong}} + correct answer + + + + stanza di Edoardo + + .local $feature = {$source :inflection select=defArticle} .match $feature |la | {{correct answer}} * {{Wrong}} + correct answer + + + + lunedì + + .local $feature = {$source :inflection select=defArticle} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + lunedì + + .local $feature = {$source :inflection select=defArticle number=singular} .match $feature |il | {{correct answer}} * {{Wrong}} + correct answer + + + + lunedì + + .local $feature = {$source :inflection select=defArticle number=plural} .match $feature |i | {{correct answer}} * {{Wrong}} + correct answer + + + + zio + + .local $feature = {$source :inflection select=defArticle} .match $feature |lo | {{correct answer}} * {{Wrong}} + correct answer + + + + manager + + .local $feature = {$source :inflection select=defArticle gender=masculine number=singular} .match $feature |il | {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=indefArticle} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + gatto + + .local $feature = {$source :inflection select=indefArticle} .match $feature |un | {{correct answer}} * {{Wrong}} + correct answer + + + + gatti + + .local $feature = {$source :inflection select=indefArticle} .match $feature |dei | {{correct answer}} * {{Wrong}} + correct answer + + + + gatte + + .local $feature = {$source :inflection select=indefArticle} .match $feature |delle | {{correct answer}} * {{Wrong}} + correct answer + + + + gatta + + .local $feature = {$source :inflection select=indefArticle} .match $feature |una | {{correct answer}} * {{Wrong}} + correct answer + + + + italiano + + .local $feature = {$source :inflection select=indefArticle} .match $feature |un | {{correct answer}} * {{Wrong}} + correct answer + + + + italiani + + .local $feature = {$source :inflection select=indefArticle} .match $feature |degli | {{correct answer}} * {{Wrong}} + correct answer + + + + italiane + + .local $feature = {$source :inflection select=indefArticle} .match $feature |delle | {{correct answer}} * {{Wrong}} + correct answer + + + + italiana + + .local $feature = {$source :inflection select=indefArticle} .match $feature |un’| {{correct answer}} * {{Wrong}} + correct answer + + + + gnocchi + + .local $feature = {$source :inflection select=indefArticle} .match $feature |degli | {{correct answer}} * {{Wrong}} + correct answer + + + + gnomo + + .local $feature = {$source :inflection select=indefArticle} .match $feature |uno | {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + {$source :inflection} + casa + + + + case + + {$source :inflection} + case + + + + casa + + {$source :inflection number=singular} + casa + + + + case + + {$source :inflection number=plural} + case + + + + casa + + {$source :inflection number=plural} + case + + + + case + + {$source :inflection number=singular} + casa + + + + cinema + + {$source :inflection number=singular} + cinema + + + + cinema + + {$source :inflection number=plural} + cinema + + + + caffè + + {$source :inflection number=singular} + caffè + + + + caffè + + {$source :inflection number=plural} + caffè + + + + aperto + + {$source :inflection number=plural} + aperti + + + + barcellona + + {$source :inflection} + barcellona + + + + barcellona + + {$source :inflection number=singular} + barcellona + + + + barcellona + + {$source :inflection number=plural} + barcellona + + + + casa + + {$source :inflection definiteness=indefinite} + una casa + + + + armadio + + {$source :inflection definiteness=indefinite} + un armadio + + + + case + + {$source :inflection definiteness=indefinite number=singular} + una casa + + + + casa + + {$source :inflection definiteness=definite number=plural} + le case + + + + armadio + + {$source :inflection definiteness=definite number=plural} + gli armadi + + + + case + + {$source :inflection definiteness=definite number=singular} + la casa + + + + prima + + {$source :inflection definiteness=definite} + la prima + + + + una + + {$source :inflection definiteness=definite} + l’una + + + + benvenuto + + {$source :inflection gender=feminine number=singular} + benvenuta + + + + benvenuto + + {$source :inflection gender=feminine number=plural} + benvenute + + + + benvenuto + + {$source :inflection gender=masculine number=plural} + benvenuti + + + + benvenuta + + {$source :inflection gender=masculine number=singular} + benvenuto + + + + benvenuta + + {$source :inflection gender=masculine number=plural} + benvenuti + + + + benvenuta + + {$source :inflection gender=feminine number=plural} + benvenute + + + + Benvenuto + + {$source :inflection gender=feminine number=singular} + Benvenuta + + + + BENVENUTO + + {$source :inflection gender=feminine number=singular} + BENVENUTA + + + + iscritto + + {$source :inflection gender=feminine} + iscritta + + + + iscritta + + {$source :inflection gender=masculine} + iscritto + + + + cui sei iscritto + + {$source :inflection gender=feminine} + cui sei iscritta + + + + cui sei iscritta + + {$source :inflection gender=masculine} + cui sei iscritto + + + + Benvenuto in Note + + {$source :inflection gender=feminine} + Benvenuta in Note + + + + sei un delegato + + {$source :inflection gender=feminine} + sei una delegata + + + + essere connesso a internet + + {$source :inflection gender=feminine} + essere connessa a internet + + + + connesso + + {$source :inflection gender=feminine} + connessa + + + + stato invitato + + {$source :inflection gender=feminine} + stata invitata + + + + produttore cinematografico + + {$source :inflection gender=feminine} + produttrice cinematografica + + + + attore teatrale + + {$source :inflection gender=feminine} + attrice teatrale + + + + attore televisivo + + {$source :inflection gender=feminine} + attrice televisiva + + + + regista cinematografico + + {$source :inflection gender=feminine} + regista cinematografica + + + + cassiere di banca + + {$source :inflection gender=feminine} + cassiera di banca + + + + allenato + + {$source :inflection gender=feminine} + allenata + + + + è + + {$source :inflection number=plural} + sono + + + + lavora + + {$source :inflection number=plural} + lavorano + + + + il + + {$source :inflection gender=feminine number=plural} + le + + + + il + + {$source :inflection gender=feminine} + la + + + + il + + {$source :inflection gender=masculine} + il + + + + il dottore + + {$source :inflection number=plural} + i dottori + + + + il dottore + + {$source :inflection gender=feminine} + la dottoressa + + + + l’italiano + + {$source :inflection number=plural} + gli italiani + + + + l’italiano + + {$source :inflection gender=feminine} + l’italiana + + + + italiano + + {$source :inflection definiteness=definite} + l’italiano + + + + italiana + + {$source :inflection definiteness=definite} + l’italiana + + + + ombrellone + + {$source :inflection definiteness=indefinite} + un ombrellone + + + + ombrellone + + {$source :inflection definiteness=definite} + l’ombrellone + + + + ombrellone + + {$source :inflection definiteness=indefinite number=plural} + degli ombrelloni + + + + ombrellone + + {$source :inflection definiteness=definite number=plural} + gli ombrelloni + + + + aula + + {$source :inflection definiteness=indefinite} + un’aula + + + + aula + + {$source :inflection definiteness=definite} + l’aula + + + + casa + + {$source :inflection definiteness=indefinite} + una casa + + + + casa + + {$source :inflection definiteness=definite} + la casa + + + + scoglio + + {$source :inflection definiteness=indefinite} + uno scoglio + + + + scoglio + + {$source :inflection definiteness=definite} + lo scoglio + + + + scogli + + {$source :inflection definiteness=indefinite} + degli scogli + + + + scogli + + {$source :inflection definiteness=definite} + gli scogli + + + + pneumatici + + {$source :inflection definiteness=definite} + gli pneumatici + + + + casetta + + {$source :inflection definiteness=indefinite} + una casetta + + + + casetta + + {$source :inflection definiteness=definite} + la casetta + + diff --git a/inflection/test/resources/inflection/dialog/message/ko.xml b/inflection/test/resources/inflection/dialog/message/ko.xml new file mode 100644 index 00000000..75047c06 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/ko.xml @@ -0,0 +1,629 @@ + + + + + + Richard + + {$source :inflection case=nominative} + Richard는 + + + + Richard는 + + {$source :inflection case=nominative} + Richard는 + + + + Richard은 + + {$source :inflection case=nominative} + Richard는 + + + + Richard + + {$source :inflection case=nominative clusivity=exclusive} + Richard는 + + + + Richard는 + + {$source :inflection case=nominative clusivity=exclusive} + Richard는 + + + + Richard은 + + {$source :inflection case=nominative clusivity=exclusive} + Richard는 + + + + 리차드 + + {$source :inflection case=nominative} + 리차드는 + + + + KT + + {$source :inflection case=nominative} + KT는 + + + + 케이티 + + {$source :inflection case=nominative} + 케이티는 + + + + NHN + + {$source :inflection case=nominative} + NHN은 + + + + 엔에이치엔 + + {$source :inflection case=nominative} + 엔에이치엔은 + + + + Hans' + + {$source :inflection case=nominative} + Hans'는 + + + + 한스' + + {$source :inflection case=nominative} + 한스'는 + + + + Eric + + {$source :inflection case=nominative} + Eric은 + + + + Eric는 + + {$source :inflection case=nominative} + Eric은 + + + + Eric은 + + {$source :inflection case=nominative} + Eric은 + + + + 에릭 + + {$source :inflection case=nominative} + 에릭은 + + + + George + + {$source :inflection case=nominative} + George는 + + + + 조지 + + {$source :inflection case=nominative} + 조지는 + + + + Apple + + {$source :inflection case=nominative} + Apple은 + + + + 애플 + + {$source :inflection case=nominative} + 애플은 + + + + Richard + + {$source :inflection case=nominative clusivity=inclusive} + Richard가 + + + + 리차드 + + {$source :inflection case=nominative clusivity=inclusive} + 리차드가 + + + + KT + + {$source :inflection case=nominative clusivity=inclusive} + KT가 + + + + 케이티 + + {$source :inflection case=nominative clusivity=inclusive} + 케이티가 + + + + NHN + + {$source :inflection case=nominative clusivity=inclusive} + NHN이 + + + + 엔에이치엔 + + {$source :inflection case=nominative clusivity=inclusive} + 엔에이치엔이 + + + + Hans' + + {$source :inflection case=nominative clusivity=inclusive} + Hans'가 + + + + 한스' + + {$source :inflection case=nominative clusivity=inclusive} + 한스'가 + + + + Eric + + {$source :inflection case=nominative clusivity=inclusive} + Eric이 + + + + 에릭 + + {$source :inflection case=nominative clusivity=inclusive} + 에릭이 + + + + George + + {$source :inflection case=nominative clusivity=inclusive} + George가 + + + + 조지 + + {$source :inflection case=nominative clusivity=inclusive} + 조지가 + + + + Apple + + {$source :inflection case=nominative clusivity=inclusive} + Apple이 + + + + 애플 + + {$source :inflection case=nominative clusivity=inclusive} + 애플이 + + + + Richard + + {$source :inflection case=accusative} + Richard를 + + + + 리차드 + + {$source :inflection case=accusative} + 리차드를 + + + + KT + + {$source :inflection case=accusative} + KT를 + + + + 케이티 + + {$source :inflection case=accusative} + 케이티를 + + + + NHN + + {$source :inflection case=accusative} + NHN을 + + + + 엔에이치엔 + + {$source :inflection case=accusative} + 엔에이치엔을 + + + + Hans' + + {$source :inflection case=accusative} + Hans'를 + + + + 한스' + + {$source :inflection case=accusative} + 한스'를 + + + + Eric + + {$source :inflection case=accusative} + Eric을 + + + + 에릭 + + {$source :inflection case=accusative} + 에릭을 + + + + George + + {$source :inflection case=accusative} + George를 + + + + 조지 + + {$source :inflection case=accusative} + 조지를 + + + + Apple + + {$source :inflection case=accusative} + Apple을 + + + + 애플 + + {$source :inflection case=accusative} + 애플을 + + + + Presents + + {$source :inflection case=accusative} + Presents를 + + + + Chris Tall Presents + + {$source :inflection case=accusative} + Chris Tall Presents를 + + + + 스페인어(미국)을 + + {$source :inflection case=accusative} + 스페인어(미국)를 + + + + 엔에이치엔(미국)을 + + {$source :inflection case=accusative} + 엔에이치엔(미국)을 + + + + 스페인어{미국}을 + + {$source :inflection case=accusative} + 스페인어{미국}를 + + + + 스페인어〘미국〙을 + + {$source :inflection case=accusative} + 스페인어〘미국〙를 + + + + (미국)을 + + {$source :inflection case=accusative} + (미국)을 + + + + Eric(미국)을 + + {$source :inflection case=accusative} + Eric(미국)을 + + + + Eric(미국)를 + + {$source :inflection case=accusative} + Eric(미국)을 + + + + George(미국)을 + + {$source :inflection case=accusative} + George(미국)를 + + + + George(미국)를 + + {$source :inflection case=accusative} + George(미국)를 + + + + Richard + + {$source :inflection case=comitative} + Richard와 + + + + 리차드 + + {$source :inflection case=comitative} + 리차드와 + + + + KT + + {$source :inflection case=comitative} + KT와 + + + + 케이티 + + {$source :inflection case=comitative} + 케이티와 + + + + NHN + + {$source :inflection case=comitative} + NHN과 + + + + 엔에이치엔 + + {$source :inflection case=comitative} + 엔에이치엔과 + + + + Hans' + + {$source :inflection case=comitative} + Hans'와 + + + + 한스' + + {$source :inflection case=comitative} + 한스'와 + + + + Eric + + {$source :inflection case=comitative} + Eric과 + + + + 에릭 + + {$source :inflection case=comitative} + 에릭과 + + + + George + + {$source :inflection case=comitative} + George와 + + + + 조지 + + {$source :inflection case=comitative} + 조지와 + + + + Apple + + {$source :inflection case=comitative} + Apple과 + + + + 애플 + + {$source :inflection case=comitative} + 애플과 + + + + 안타 + + {$source :inflection case=instrumental} + 안타로 + + + + 장타율 + + {$source :inflection case=instrumental} + 장타율로 + + + + 홈런 + + {$source :inflection case=instrumental} + 홈런으로 + + + + Eric + + {$source :inflection case=instrumental} + Eric으로 + + + + George + + {$source :inflection case=instrumental} + George로 + + + + ChatGPT + + {$source :inflection case=instrumental} + ChatGPT로 + + + + 23 + + {$source :inflection case=instrumental} + 23으로 + + + + 23로 + + {$source :inflection case=instrumental} + 23으로 + + + + word 23로 + + {$source :inflection case=instrumental} + word 23으로 + + + + 매출 + + {$source :inflection adjectival=predicative} + 매출이라 + + + + 매출이라 + + {$source :inflection adjectival=predicative} + 매출이라 + + + + 매출라 + + {$source :inflection adjectival=predicative} + 매출이라 + + + + 회의 + + {$source :inflection adjectival=predicative} + 회의라 + + + + 회의이라 + + {$source :inflection adjectival=predicative} + 회의라 + + + + 회의라 + + {$source :inflection adjectival=predicative} + 회의라 + + diff --git a/inflection/test/resources/inflection/dialog/message/nb.xml b/inflection/test/resources/inflection/dialog/message/nb.xml new file mode 100644 index 00000000..714e12d8 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/nb.xml @@ -0,0 +1,1553 @@ + + + + + + lampe + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + lampa + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + snørekjørende + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + QQQQQQ + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=possArticle} .match $feature |din| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=possArticle gender=masculine number=singular} .match $feature |din| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=possArticle gender=feminine number=singular} .match $feature |di| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=possArticle gender=neuter number=singular} .match $feature |ditt| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=possArticle number=plural} .match $feature |dine| {{correct answer}} * {{Wrong}} + correct answer + + + + møte + + .local $feature = {$source :inflection select=possArticle} .match $feature |ditt| {{correct answer}} * {{Wrong}} + correct answer + + + + avtale + + .local $feature = {$source :inflection select=possArticle} .match $feature |din| {{correct answer}} * {{Wrong}} + correct answer + + + + øvinga + + .local $feature = {$source :inflection select=possArticle} .match $feature |di| {{correct answer}} * {{Wrong}} + correct answer + + + + møter + + .local $feature = {$source :inflection select=possArticle} .match $feature |dine| {{correct answer}} * {{Wrong}} + correct answer + + + + administrasjon + + {$source :inflection definiteness=indefinite number=singular} + administrasjon + + + + administrasjon + + {$source :inflection definiteness=definite number=singular} + administrasjonen + + + + administrasjon + + {$source :inflection definiteness=indefinite number=plural} + administrasjoner + + + + administrasjon + + {$source :inflection definiteness=definite number=plural} + administrasjonene + + + + belte + + {$source :inflection definiteness=indefinite number=singular} + belte + + + + belte + + {$source :inflection definiteness=definite number=singular} + beltet + + + + belte + + {$source :inflection definiteness=indefinite number=plural} + belter + + + + belte + + {$source :inflection definiteness=definite number=plural} + beltene + + + + belta + + {$source :inflection definiteness=definite number=plural} + belta + + + + beltene + + {$source :inflection definiteness=definite number=plural} + beltene + + + + høyest administrasjon + + {$source :inflection definiteness=indefinite number=singular} + høyest administrasjon + + + + høyest administrasjon + + {$source :inflection definiteness=definite number=singular} + høyeste administrasjonen + + + + høyest administrasjon + + {$source :inflection definiteness=indefinite number=plural} + høyeste administrasjoner + + + + høyest administrasjon + + {$source :inflection definiteness=definite number=plural} + høyeste administrasjonene + + + + høyest belte + + {$source :inflection definiteness=indefinite number=singular} + høyest belte + + + + høyest belte + + {$source :inflection definiteness=definite number=singular} + høyeste beltet + + + + høyest belte + + {$source :inflection definiteness=indefinite number=plural} + høyeste belter + + + + høyest belte + + {$source :inflection definiteness=definite number=plural} + høyeste beltene + + + + belte + + {$source :inflection number=plural} + belter + + + + administrasjon + + {$source :inflection definiteness=definite} + administrasjonen + + + + belte + + {$source :inflection} + belte + + + + belte + + {$source :inflection case=genitive} + beltes + + + + belte + + {$source :inflection case=genitive definiteness=indefinite number=singular} + beltes + + + + belte + + {$source :inflection case=genitive definiteness=definite number=singular} + beltets + + + + belte + + {$source :inflection case=genitive definiteness=indefinite number=plural} + belters + + + + belte + + {$source :inflection case=genitive definiteness=definite number=plural} + beltenes + + + + ås + + {$source :inflection case=genitive} + ås’ + + + + jazz + + {$source :inflection case=genitive} + jazz’ + + + + crux + + {$source :inflection case=genitive} + crux’ + + + + god + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + god + + + + god + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + god + + + + god + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + godt + + + + god + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + gode + + + + god + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + gode + + + + god + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + gode + + + + god + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + gode + + + + god + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + gode + + + + god + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + gode + + + + god + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + gode + + + + god + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + gode + + + + god + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + gode + + + + norsk + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + norsk + + + + norsk + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + norsk + + + + norsk + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + norsk + + + + norsk + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + norske + + + + ekte + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + ekte + + + + ekte + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + ekte + + + + norsk + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + norsk + + + + norsk + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + norsk + + + + norsk + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + norsk + + + + norsk + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + norske + + + + norsk + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + norske + + + + praktisk + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + praktisk + + + + praktisk + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + praktisk + + + + praktisk + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + praktisk + + + + praktisk + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + praktiske + + + + praktisk + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + praktiske + + + + vennlig + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + vennlig + + + + vennlig + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + vennlig + + + + vennlig + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + vennlig + + + + vennlig + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + vennlige + + + + vennlig + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + vennlige + + + + tykk + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + tykk + + + + tykk + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + tykk + + + + tykk + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + tykt + + + + tykk + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + tykke + + + + tykk + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + tykke + + + + oppskjørtet + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + oppskjørtet + + + + oppskjørtet + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + oppskjørtet + + + + oppskjørtet + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + oppskjørtet + + + + oppskjørtet + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + oppskjørtete + + + + oppskjørtet + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + oppskjørtete + + + + makaber + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + makaber + + + + makaber + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + makaber + + + + makaber + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + makabert + + + + makaber + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + makabre + + + + makaber + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + makabre + + + + lunken + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + lunken + + + + lunken + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + lunken + + + + lunken + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + lunkent + + + + lunken + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + lunkne + + + + lunken + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + lunkne + + + + gammel + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + gammel + + + + gammel + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + gammel + + + + gammel + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + gammelt + + + + gammel + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + gamle + + + + gammel + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + gamle + + + + fast + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + fast + + + + fast + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + fast + + + + fast + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + fast + + + + fast + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + faste + + + + fast + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + faste + + + + absurd + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + absurd + + + + absurd + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + absurd + + + + absurd + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + absurd + + + + absurd + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + absurde + + + + absurd + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + absurde + + + + rosa + + {$source :inflection definiteness=indefinite gender=masculine number=singular pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=indefinite gender=feminine number=singular pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=indefinite gender=neuter number=singular pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=definite gender=masculine number=singular pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=definite gender=feminine number=singular pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=definite gender=neuter number=singular pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=indefinite gender=masculine number=plural pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=indefinite gender=feminine number=plural pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=indefinite gender=neuter number=plural pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=definite gender=masculine number=plural pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=definite gender=feminine number=plural pos=adjective} + rosa + + + + rosa + + {$source :inflection definiteness=definite gender=neuter number=plural pos=adjective} + rosa + + + + mor + + {$source :inflection definiteness=definite gender=masculine number=singular} + moren + + + + moren + + {$source :inflection definiteness=definite gender=masculine number=singular} + moren + + + + mor + + {$source :inflection definiteness=definite gender=feminine number=singular} + mora + + + + mor + + {$source :inflection definiteness=definite number=singular} + moren + + + + moren + + {$source :inflection definiteness=definite number=singular} + moren + + + + mor + + {$source :inflection definiteness=indefinite number=singular} + mor + + + + moren + + {$source :inflection definiteness=indefinite number=singular} + mor + + + + mor + + {$source :inflection definiteness=definite number=plural} + mødrene + + + + moren + + {$source :inflection definiteness=definite number=plural} + mødrene + + + + mor + + {$source :inflection definiteness=indefinite number=plural} + mødre + + + + moren + + {$source :inflection definiteness=indefinite number=plural} + mødre + + diff --git a/inflection/test/resources/inflection/dialog/message/nl.xml b/inflection/test/resources/inflection/dialog/message/nl.xml new file mode 100644 index 00000000..89ba8beb --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/nl.xml @@ -0,0 +1,1280 @@ + + + + + + een huis + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + de man + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + de vrouw + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + het huis + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + zakenkrant + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + QQQQQQ + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + value + + {$source :inflection definiteness=definite gender=masculine number=singular} + de value + + + + value + + {$source :inflection definiteness=definite gender=neuter number=singular} + het value + + + + value + + {$source :inflection definiteness=definite number=singular sizeness=diminutive} + het value + + + + value + + {$source :inflection definiteness=definite number=plural} + de value + + + + huis + + {$source :inflection definiteness=definite} + het huis + + + + tuinhuis + + {$source :inflection definiteness=definite} + het tuinhuis + + + + boek + + {$source :inflection definiteness=definite} + het boek + + + + tafel + + {$source :inflection definiteness=definite} + de tafel + + + + keukentafel + + {$source :inflection definiteness=definite} + de keukentafel + + + + boekenkast + + {$source :inflection definiteness=definite} + de boekenkast + + + + huizen + + {$source :inflection definiteness=definite} + de huizen + + + + tuinhuizen + + {$source :inflection definiteness=definite} + de tuinhuizen + + + + boekenkastje + + {$source :inflection definiteness=definite} + het boekenkastje + + + + boekenkastjes + + {$source :inflection definiteness=definite} + de boekenkastjes + + + + bureaulampje + + {$source :inflection definiteness=definite} + het bureaulampje + + + + bureaulampjes + + {$source :inflection definiteness=definite} + de bureaulampjes + + + + stadscentrum + + {$source :inflection definiteness=definite} + het stadscentrum + + + + stadscentra + + {$source :inflection definiteness=definite} + de stadscentra + + + + appelblauwzeegroene huis + + {$source :inflection definiteness=definite} + het appelblauwzeegroene huis + + + + vervallen huis + + {$source :inflection definiteness=definite} + het vervallen huis + + + + dikke boek + + {$source :inflection definiteness=definite} + het dikke boek + + + + bruine tafel + + {$source :inflection definiteness=definite} + de bruine tafel + + + + nieuwe keukentafel + + {$source :inflection definiteness=definite} + de nieuwe keukentafel + + + + lege boekenkast + + {$source :inflection definiteness=definite} + de lege boekenkast + + + + vervallen huizen + + {$source :inflection definiteness=definite} + de vervallen huizen + + + + grote tuinhuizen + + {$source :inflection definiteness=definite} + de grote tuinhuizen + + + + lege boekenkastje + + {$source :inflection definiteness=definite} + het lege boekenkastje + + + + lege boekenkastjes + + {$source :inflection definiteness=definite} + de lege boekenkastjes + + + + kleine bureaulampje + + {$source :inflection definiteness=definite} + het kleine bureaulampje + + + + kleine bureaulampjes + + {$source :inflection definiteness=definite} + de kleine bureaulampjes + + + + oude stadscentrum + + {$source :inflection definiteness=definite} + het oude stadscentrum + + + + moderne stadscentra + + {$source :inflection definiteness=definite} + de moderne stadscentra + + + + vervallen huis dat gebouwd is in 1977 + + {$source :inflection definiteness=definite} + het vervallen huis dat gebouwd is in 1977 + + + + dikke boek over Steve Jobs + + {$source :inflection definiteness=definite} + het dikke boek over Steve Jobs + + + + bruine tafel waaop het boek ligt + + {$source :inflection definiteness=definite} + de bruine tafel waaop het boek ligt + + + + nieuwe keukentafel in de living + + {$source :inflection definiteness=definite} + de nieuwe keukentafel in de living + + + + lege boekenkast uit Ikea + + {$source :inflection definiteness=definite} + de lege boekenkast uit Ikea + + + + vervallen huizen in Gent + + {$source :inflection definiteness=definite} + de vervallen huizen in Gent + + + + grote tuinhuizen van de buren + + {$source :inflection definiteness=definite} + de grote tuinhuizen van de buren + + + + lege boekenkastjes met boeken + + {$source :inflection definiteness=definite} + de lege boekenkastjes met boeken + + + + kleine bureaulampjes van mijn broer + + {$source :inflection definiteness=definite} + de kleine bureaulampjes van mijn broer + + + + oude stadscentrum van Gent + + {$source :inflection definiteness=definite} + het oude stadscentrum van Gent + + + + moderne stadscentra in Europa + + {$source :inflection definiteness=definite} + de moderne stadscentra in Europa + + + + kamer van Tom + + {$source :inflection definiteness=definite} + de kamer van Tom + + + + huis van Tom + + {$source :inflection definiteness=definite} + het huis van Tom + + + + reis + + {$source :inflection number=singular} + reis + + + + reis + + {$source :inflection number=plural} + reizen + + + + feestdag + + {$source :inflection number=singular} + feestdag + + + + feestdag + + {$source :inflection number=plural} + feestdagen + + + + schip + + {$source :inflection number=singular} + schip + + + + schip + + {$source :inflection number=plural} + schepen + + + + uitstapje + + {$source :inflection number=singular} + uitstapje + + + + uitstapje + + {$source :inflection number=plural} + uitstapjes + + + + vegetarisch + + {$source :inflection declension=undeclined} + vegetarisch + + + + vegetarisch + + {$source :inflection declension=declined} + vegetarische + + + + ouder + + {$source :inflection number=singular} + ouder + + + + ouder + + {$source :inflection number=plural} + ouders + + + + zakelijk nummer + + {$source :inflection number=singular} + zakelijk nummer + + + + zakelijk nummer + + {$source :inflection number=plural} + zakelijke nummers + + + + groot rood + + {$source :inflection declension=declined number=plural} + grote rode + + + + ik + + {$source :inflection case=genitive} + mijn + + + + zij + + {$source :inflection case=genitive number=singular} + haar + + + + zij + + {$source :inflection case=genitive number=plural} + hun + + + + Tom + + {$source :inflection case=genitive} + Tom’s + + + + Yasser + + {$source :inflection case=genitive} + Yasser’s + + + + Alex + + {$source :inflection case=genitive} + Alex’ + + + + ik + + {$source :inflection case=genitive} + mijn + + + + me + + {$source :inflection case=genitive} + mijn + + + + mij + + {$source :inflection case=genitive} + mijn + + + + je + + {$source :inflection case=genitive} + jouw + + + + jij + + {$source :inflection case=genitive} + jouw + + + + jou + + {$source :inflection case=genitive} + jouw + + + + hij + + {$source :inflection case=genitive} + zijn + + + + hem + + {$source :inflection case=genitive} + zijn + + + + haar + + {$source :inflection case=genitive} + haar + + + + hen + + {$source :inflection case=genitive} + hun + + + + hun + + {$source :inflection case=genitive} + hun + + + + ze + + {$source :inflection case=genitive number=singular} + haar + + + + zij + + {$source :inflection case=genitive number=singular} + haar + + + + ze + + {$source :inflection case=genitive number=plural} + hun + + + + zij + + {$source :inflection case=genitive number=plural} + hun + + + + we + + {$source :inflection case=genitive declension=undeclined} + ons + + + + wij + + {$source :inflection case=genitive declension=undeclined} + ons + + + + we + + {$source :inflection case=genitive declension=declined} + onze + + + + wij + + {$source :inflection case=genitive declension=declined} + onze + + + + Tom + + {$source :inflection case=genitive} + Tom’s + + + + Eric + + {$source :inflection case=genitive} + Eric’s + + + + Ellen + + {$source :inflection case=genitive} + Ellen’s + + + + Tom's + + {$source :inflection case=genitive} + Tom's + + + + Eric's + + {$source :inflection case=genitive} + Eric's + + + + Ellen's + + {$source :inflection case=genitive} + Ellen's + + + + Jezus + + {$source :inflection case=genitive} + Jezus’ + + + + Inez + + {$source :inflection case=genitive} + Inez’ + + + + Chris + + {$source :inflection case=genitive} + Chris’ + + + + Bush + + {$source :inflection case=genitive} + Bush’ + + + + Alex + + {$source :inflection case=genitive} + Alex’ + + + + Vermeesch + + {$source :inflection case=genitive} + Vermeesch’ + + + + Jezus' + + {$source :inflection case=genitive} + Jezus' + + + + Inez' + + {$source :inflection case=genitive} + Inez' + + + + Chris' + + {$source :inflection case=genitive} + Chris' + + + + Bush' + + {$source :inflection case=genitive} + Bush' + + + + Alex' + + {$source :inflection case=genitive} + Alex' + + + + Vermeesch' + + {$source :inflection case=genitive} + Vermeesch' + + + + BRB' + + {$source :inflection case=genitive} + BRB's + + + + JK' + + {$source :inflection case=genitive} + JK's + + + + huis + + {$source :inflection definiteness=definite} + het huis + + + + vrouw + + {$source :inflection definiteness=definite} + de vrouw + + + + man + + {$source :inflection definiteness=definite} + de man + + + + huis + + {$source :inflection definiteness=indefinite} + een huis + + + + vrouw + + {$source :inflection definiteness=indefinite} + een vrouw + + + + man + + {$source :inflection definiteness=indefinite} + een man + + + + dag + + {$source :inflection number=plural} + dagen + + + + lang saai programma + + {$source :inflection pos=adjective} + lang saai programma + + + + lang saai programma + + {$source :inflection declension=declined} + lang saai programma + + + + lang saai programma + + {$source :inflection declension=undeclined} + lang saai programma + + + + lang saai programma + + {$source :inflection number=singular} + lang saai programma + + + + lang saai programma + + {$source :inflection declension=declined number=singular} + lang saai programma + + + + lang saai programma + + {$source :inflection declension=undeclined number=singular} + lang saai programma + + + + lang saai programma + + {$source :inflection number=plural} + lange saaie programma’s + + + + lang saai programma + + {$source :inflection declension=declined number=plural} + lange saaie programma’s + + + + lang saai programma + + {$source :inflection declension=undeclined number=plural} + lange saaie programma’s + + + + groot boos wolf + + {$source :inflection pos=adjective} + groot boos wolf + + + + groot boos wolf + + {$source :inflection declension=declined} + groot boos wolf + + + + groot boos wolf + + {$source :inflection declension=undeclined} + groot boos wolf + + + + groot boos wolf + + {$source :inflection number=singular} + grote boze wolf + + + + groot boos wolf + + {$source :inflection declension=declined number=singular} + grote boze wolf + + + + groot boos wolf + + {$source :inflection declension=undeclined number=singular} + grote boze wolf + + + + groot boos wolf + + {$source :inflection number=plural} + grote boze wolven + + + + groot boos wolf + + {$source :inflection declension=declined number=plural} + grote boze wolven + + + + groot boos wolf + + {$source :inflection declension=undeclined number=plural} + grote boze wolven + + + + xxx + + {$source :inflection} + xxx + + + + xxx + + {$source :inflection declension=declined} + xxx + + + + xxx + + {$source :inflection declension=undeclined} + xxx + + + + xxx + + {$source :inflection number=singular} + xxx + + + + xxx + + {$source :inflection number=plural} + xxx + + + + xxx + + {$source :inflection declension=declined number=singular} + xxx + + + + xxx + + {$source :inflection declension=undeclined number=plural} + xxx + + + + kamer van jan + + {$source :inflection} + kamer van jan + + + + kamer van jan + + {$source :inflection declension=declined} + kamer van jan + + + + kamer van jan + + {$source :inflection declension=undeclined} + kamer van jan + + + + kamer van jan + + {$source :inflection number=singular} + kamer van jan + + + + kamer van jan + + {$source :inflection number=plural} + kamer van jan + + + + kamer van jan + + {$source :inflection declension=declined number=singular} + kamer van jan + + + + kamer van jan + + {$source :inflection declension=undeclined number=plural} + kamer van jan + + + + Jan groot kamer + + {$source :inflection} + Jan groot kamer + + + + Jan groot kamer + + {$source :inflection declension=declined} + Jan groot kamer + + + + Jan groot kamer + + {$source :inflection declension=undeclined} + Jan groot kamer + + + + Jan groot kamer + + {$source :inflection number=singular} + Jan groot kamer + + + + Jan groot kamer + + {$source :inflection number=plural} + Jan groot kamer + + + + Jan groot kamer + + {$source :inflection declension=declined number=singular} + Jan groot kamer + + + + Jan groot kamer + + {$source :inflection declension=undeclined number=plural} + Jan groot kamer + + + + kamer lelijk + + {$source :inflection} + kamer lelijk + + + + kamer lelijk + + {$source :inflection declension=declined} + kamer lelijk + + + + kamer lelijk + + {$source :inflection declension=undeclined} + kamer lelijk + + + + kamer lelijk + + {$source :inflection number=singular} + kamer lelijk + + + + kamer lelijk + + {$source :inflection number=plural} + kamer lelijk + + + + kamer lelijk + + {$source :inflection declension=declined number=singular} + kamer lelijk + + + + kamer lelijk + + {$source :inflection declension=undeclined number=plural} + kamer lelijk + + + + auto oud jong beschonken + + {$source :inflection} + auto oud jong beschonken + + + + auto oud jong beschonken + + {$source :inflection declension=declined} + auto oud jong beschonken + + + + auto oud jong beschonken + + {$source :inflection declension=undeclined} + auto oud jong beschonken + + + + auto oud jong beschonken + + {$source :inflection number=singular} + auto oud jong beschonken + + + + auto oud jong beschonken + + {$source :inflection number=plural} + auto oud jong beschonken + + + + auto oud jong beschonken + + {$source :inflection declension=declined number=singular} + auto oud jong beschonken + + + + auto oud jong beschonken + + {$source :inflection declension=undeclined number=plural} + auto oud jong beschonken + + + + bewillig + + {$source :inflection number=singular} + bewillig + + + + bewilligen + + {$source :inflection number=singular} + bewillig + + + + bewillig + + {$source :inflection number=plural} + bewilligen + + + + bewilligt + + {$source :inflection number=plural} + bewilligen + + + + bewilligen + + {$source :inflection number=plural} + bewilligen + + + + zat + + {$source :inflection number=singular} + zat + + + + zaten + + {$source :inflection number=singular} + zate + + + + zaten + + {$source :inflection number=singular pos=noun} + zate + + + + zaten + + {$source :inflection number=singular pos=verb} + zat + + + + zat + + {$source :inflection number=plural} + zaten + + + + zaten + + {$source :inflection number=plural} + zaten + + diff --git a/inflection/test/resources/inflection/dialog/message/pt.xml b/inflection/test/resources/inflection/dialog/message/pt.xml new file mode 100644 index 00000000..a48e03bd --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/pt.xml @@ -0,0 +1,1665 @@ + + + + + + luz + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + sala + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + cozinha + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + porta + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + mãe + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + mãe de santo + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + sala de estar + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + sala de tv + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + gata + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + portão da garagem + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + fogão + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + escritório + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + banheiro público + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + banheiro + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + gato + + .local $feature = {$source :inflection select=number} .match $feature |singular| {{correct answer}} * {{Wrong}} + correct answer + + + + luzes + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + salas + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + cozinhas + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + portas + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + mães + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + mães de santo + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + salas de estar + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + salas de tv + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + gatas + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + portões da garagem + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + fogões + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + escritórios + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + banheiros público + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + banheiros + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + gatos + + .local $feature = {$source :inflection select=number} .match $feature |plural| {{correct answer}} * {{Wrong}} + correct answer + + + + luz + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + Luz + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + sala + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + cozinha + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + porta + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + mesas + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + sala de estar + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + sala de tv + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + portão de garagem + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + fogão + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + escritório + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + banheiros + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + banheiro público + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + pai + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + trabalho + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + gato + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + mãe + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + mães + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + tia + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + avó + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + prima + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + primo + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + tataravó + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + afilhada + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + gato + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + o gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + os gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + os gatos + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + Os Gatos + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + OS GATOS + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + do gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + os(as) gatos + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + nos gatos + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + um gato + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + uma gata + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + em gato + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + osos + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=defArticle} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=defArticle} .match $feature |o| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=defArticle} .match $feature |a| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=defArticle} .match $feature |os| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=defArticle} .match $feature |as| {{correct answer}} * {{Wrong}} + correct answer + + + + gato + + .local $feature = {$source :inflection select=defArticle} .match $feature |o| {{correct answer}} * {{Wrong}} + correct answer + + + + gatos + + .local $feature = {$source :inflection select=defArticle} .match $feature |os| {{correct answer}} * {{Wrong}} + correct answer + + + + Tocador de São Paulo + + .local $feature = {$source :inflection select=defArticle} .match $feature |o| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora de São Paulo + + .local $feature = {$source :inflection select=defArticle} .match $feature |a| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=possArticle} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=possArticle} .match $feature |seu| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=possArticle} .match $feature |sua| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=possArticle} .match $feature |seus| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=possArticle} .match $feature |suas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=dePrepArticle} .match $feature |de| {{correct answer}} * {{Wrong}} + correct answer + + + + campo + + .local $feature = {$source :inflection select=dePrepArticle} .match $feature |do| {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=dePrepArticle} .match $feature |da| {{correct answer}} * {{Wrong}} + correct answer + + + + campos + + .local $feature = {$source :inflection select=dePrepArticle} .match $feature |dos| {{correct answer}} * {{Wrong}} + correct answer + + + + casas + + .local $feature = {$source :inflection select=dePrepArticle} .match $feature |das| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=emPrepArticle} .match $feature |em| {{correct answer}} * {{Wrong}} + correct answer + + + + campo + + .local $feature = {$source :inflection select=emPrepArticle} .match $feature |no| {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=emPrepArticle} .match $feature |na| {{correct answer}} * {{Wrong}} + correct answer + + + + campos + + .local $feature = {$source :inflection select=emPrepArticle} .match $feature |nos| {{correct answer}} * {{Wrong}} + correct answer + + + + casas + + .local $feature = {$source :inflection select=emPrepArticle} .match $feature |nas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=emPrepIndefArticle} .match $feature |em| {{correct answer}} * {{Wrong}} + correct answer + + + + campo + + .local $feature = {$source :inflection select=emPrepIndefArticle} .match $feature |num| {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=emPrepIndefArticle} .match $feature |numa| {{correct answer}} * {{Wrong}} + correct answer + + + + campos + + .local $feature = {$source :inflection select=emPrepIndefArticle} .match $feature |nuns| {{correct answer}} * {{Wrong}} + correct answer + + + + casas + + .local $feature = {$source :inflection select=emPrepIndefArticle} .match $feature |numas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=porPrepArticle} .match $feature |por| {{correct answer}} * {{Wrong}} + correct answer + + + + campo + + .local $feature = {$source :inflection select=porPrepArticle} .match $feature |pelo| {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=porPrepArticle} .match $feature |pela| {{correct answer}} * {{Wrong}} + correct answer + + + + campos + + .local $feature = {$source :inflection select=porPrepArticle} .match $feature |pelos| {{correct answer}} * {{Wrong}} + correct answer + + + + casas + + .local $feature = {$source :inflection select=porPrepArticle} .match $feature |pelas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=demAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=demAdj} .match $feature |este| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=demAdj} .match $feature |esta| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=demAdj} .match $feature |estes| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=demAdj} .match $feature |estas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=inDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + campo + + .local $feature = {$source :inflection select=inDemAdj} .match $feature |neste| {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=inDemAdj} .match $feature |nesta| {{correct answer}} * {{Wrong}} + correct answer + + + + campos + + .local $feature = {$source :inflection select=inDemAdj} .match $feature |nestes| {{correct answer}} * {{Wrong}} + correct answer + + + + casas + + .local $feature = {$source :inflection select=inDemAdj} .match $feature |nestas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=ofDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=ofDemAdj} .match $feature |deste| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=ofDemAdj} .match $feature |desta| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=ofDemAdj} .match $feature |destes| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=ofDemAdj} .match $feature |destas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=thisDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=thisDemAdj} .match $feature |esse| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=thisDemAdj} .match $feature |essa| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=thisDemAdj} .match $feature |esses| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=thisDemAdj} .match $feature |essas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=inThisDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + campo + + .local $feature = {$source :inflection select=inThisDemAdj} .match $feature |nesse| {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=inThisDemAdj} .match $feature |nessa| {{correct answer}} * {{Wrong}} + correct answer + + + + campos + + .local $feature = {$source :inflection select=inThisDemAdj} .match $feature |nesses| {{correct answer}} * {{Wrong}} + correct answer + + + + casas + + .local $feature = {$source :inflection select=inThisDemAdj} .match $feature |nessas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=ofThisDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=ofThisDemAdj} .match $feature |desse| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=ofThisDemAdj} .match $feature |dessa| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=ofThisDemAdj} .match $feature |desses| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=ofThisDemAdj} .match $feature |dessas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=thatDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=thatDemAdj} .match $feature |aquele| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=thatDemAdj} .match $feature |aquela| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=thatDemAdj} .match $feature |aqueles| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=thatDemAdj} .match $feature |aquelas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=inThatDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + campo + + .local $feature = {$source :inflection select=inThatDemAdj} .match $feature |naquele| {{correct answer}} * {{Wrong}} + correct answer + + + + casa + + .local $feature = {$source :inflection select=inThatDemAdj} .match $feature |naquela| {{correct answer}} * {{Wrong}} + correct answer + + + + campos + + .local $feature = {$source :inflection select=inThatDemAdj} .match $feature |naqueles| {{correct answer}} * {{Wrong}} + correct answer + + + + casas + + .local $feature = {$source :inflection select=inThatDemAdj} .match $feature |naquelas| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=ofThatDemAdj} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + tocador + + .local $feature = {$source :inflection select=ofThatDemAdj} .match $feature |daquele| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadora + + .local $feature = {$source :inflection select=ofThatDemAdj} .match $feature |daquela| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadores + + .local $feature = {$source :inflection select=ofThatDemAdj} .match $feature |daqueles| {{correct answer}} * {{Wrong}} + correct answer + + + + tocadoras + + .local $feature = {$source :inflection select=ofThatDemAdj} .match $feature |daquelas| {{correct answer}} * {{Wrong}} + correct answer + + + + barco + + {$source :inflection} + barco + + + + pão + + {$source :inflection} + pão + + + + linha aérea + + {$source :inflection} + linha aérea + + + + pai-de-santo + + {$source :inflection} + pai-de-santo + + + + guarda-chuva + + {$source :inflection} + guarda-chuva + + + + para-quedas + + {$source :inflection} + para-quedas + + + + preço histórico + + {$source :inflection} + preço histórico + + + + mudança percentual em tempo real + + {$source :inflection} + mudança percentual em tempo real + + + + mudança de percentual + + {$source :inflection} + mudança de percentual + + + + fax + + {$source :inflection} + fax + + + + barco + + {$source :inflection number=singular} + barco + + + + pão + + {$source :inflection number=singular} + pão + + + + linha aérea + + {$source :inflection number=singular} + linha aérea + + + + pai-de-santo + + {$source :inflection number=singular} + pai-de-santo + + + + guarda-chuva + + {$source :inflection number=singular} + guarda-chuva + + + + pára-quedas + + {$source :inflection number=singular} + pára-quedas + + + + preço histórico + + {$source :inflection number=singular} + preço histórico + + + + mudança percentual em tempo real + + {$source :inflection number=singular} + mudança percentual em tempo real + + + + mudança de percentual + + {$source :inflection number=singular} + mudança de percentual + + + + fax + + {$source :inflection number=singular} + fax + + + + barcos + + {$source :inflection number=singular} + barco + + + + pães + + {$source :inflection number=singular} + pão + + + + linhas aéreas + + {$source :inflection number=singular} + linha aérea + + + + pais-de-santo + + {$source :inflection number=singular} + pai-de-santo + + + + guarda-chuvas + + {$source :inflection number=singular} + guarda-chuva + + + + preços históricos + + {$source :inflection number=singular} + preço histórico + + + + mudança percentual em tempo real + + {$source :inflection number=singular} + mudança percentual em tempo real + + + + mudanças de percentual + + {$source :inflection number=singular} + mudança de percentual + + + + barco + + {$source :inflection number=plural} + barcos + + + + pão + + {$source :inflection number=plural} + pães + + + + linha aérea + + {$source :inflection number=plural} + linhas aéreas + + + + pai-de-santo + + {$source :inflection number=plural} + pais-de-santo + + + + guarda-chuva + + {$source :inflection number=plural} + guarda-chuvas + + + + pára-quedas + + {$source :inflection number=plural} + pára-quedas + + + + preço histórico + + {$source :inflection number=plural} + preços históricos + + + + mudança percentual em tempo real + + {$source :inflection number=plural} + mudanças percentual em tempo real + + + + mudança climática em tempo real + + {$source :inflection number=plural} + mudanças climáticas em tempo real + + + + mudança de percentual + + {$source :inflection number=plural} + mudanças de percentual + + + + fax + + {$source :inflection number=plural} + fax + + + + vergalhão + + {$source :inflection number=plural} + vergalhões + + + + hotel + + {$source :inflection number=plural} + hotéis + + + + qwyxor + + {$source :inflection number=plural} + qwyxores + + + + qwyxorão + + {$source :inflection number=plural} + qwyxorões + + + + funil + + {$source :inflection number=plural} + funis + + + + francês + + {$source :inflection number=plural} + franceses + + + + português + + {$source :inflection number=plural} + portugueses + + + + chinês + + {$source :inflection number=plural} + chineses + + + + japonês + + {$source :inflection number=plural} + japoneses + + + + inglês + + {$source :inflection number=plural} + ingleses + + + + irlandês + + {$source :inflection number=plural} + irlandeses + + + + iPad Air 2 + + {$source :inflection number=plural} + iPad Air 2 + + + + prima + + {$source :inflection number=plural} + primas + + + + qqqês + + {$source :inflection number=plural} + qqqeses + + + + qqqal + + {$source :inflection number=plural} + qqqais + + + + qqqil + + {$source :inflection number=plural} + qqqis + + + + qqqm + + {$source :inflection number=plural} + qqqns + + + + qqqq + + {$source :inflection number=plural} + qqqqs + + + + qqqqx + + {$source :inflection number=plural} + qqqqx + + + + prima + + {$source :inflection definiteness=indefinite} + uma prima + + + + primo + + {$source :inflection definiteness=indefinite} + um primo + + + + linha aérea + + {$source :inflection definiteness=indefinite} + uma linha aérea + + + + primo + + {$source :inflection definiteness=definite number=plural} + os primos + + + + prima + + {$source :inflection definiteness=definite number=plural} + as primas + + + + bem-vindo + + {$source :inflection gender=feminine number=singular} + bem-vinda + + + + bem-vindo + + {$source :inflection gender=masculine number=plural} + bem-vindos + + + + bem-vindo + + {$source :inflection gender=feminine number=plural} + bem-vindas + + + + bem-vinda + + {$source :inflection gender=masculine number=singular} + bem-vindo + + + + bem-vinda + + {$source :inflection gender=masculine number=plural} + bem-vindos + + + + bem-vinda + + {$source :inflection gender=feminine number=plural} + bem-vindas + + + + BEM-VINDO + + {$source :inflection gender=feminine number=singular} + BEM-VINDA + + + + separado + + {$source :inflection gender=feminine} + separada + + + + diagnosticado + + {$source :inflection gender=feminine} + diagnosticada + + + + registrado + + {$source :inflection gender=feminine} + registrada + + + + removido + + {$source :inflection gender=feminine} + removida + + + + o + + {$source :inflection number=plural} + os + + + + a + + {$source :inflection number=plural} + as + + + + os + + {$source :inflection number=plural} + os + + + + as + + {$source :inflection number=plural} + as + + + + o + + {$source :inflection number=singular} + o + + + + a + + {$source :inflection number=singular} + a + + + + os + + {$source :inflection number=singular} + o + + + + as + + {$source :inflection number=singular} + a + + + + o + + {$source :inflection gender=masculine} + o + + + + a + + {$source :inflection gender=masculine} + o + + + + os + + {$source :inflection gender=masculine} + os + + + + as + + {$source :inflection gender=masculine} + os + + + + o + + {$source :inflection gender=feminine} + a + + + + a + + {$source :inflection gender=feminine} + a + + + + os + + {$source :inflection gender=feminine} + as + + + + as + + {$source :inflection gender=feminine} + as + + diff --git a/inflection/test/resources/inflection/dialog/message/ru.xml b/inflection/test/resources/inflection/dialog/message/ru.xml new file mode 100644 index 00000000..d5bfb363 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/ru.xml @@ -0,0 +1,881 @@ + + + + + + hello + + .local $feature = {$source :inflection select=gender} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + ясперсон + + .local $feature = {$source :inflection select=gender} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + Иванов + + .local $feature = {$source :inflection select=gender} .match $feature |masculine| {{correct answer}} * {{Wrong}} + correct answer + + + + Ивановна + + .local $feature = {$source :inflection select=gender} .match $feature |feminine| {{correct answer}} * {{Wrong}} + correct answer + + + + аббатство + + .local $feature = {$source :inflection select=gender} .match $feature |neuter| {{correct answer}} * {{Wrong}} + correct answer + + + + всадники + + .local $feature = {$source :inflection select=withAboutPrep} .match $feature |обо всадники| {{correct answer}} * {{Wrong}} + correct answer + + + + ресторан + + {$source :inflection} + ресторан + + + + склерозы + + {$source :inflection case=dative number=plural} + склерозам + + + + ресторан + + {$source :inflection case=genitive number=plural} + ресторанов + + + + restaurant + + {$source :inflection case=genitive number=plural} + restaurant + + + + завтра + + {$source :inflection case=genitive number=singular} + завтра + + + + сан-франциско + + {$source :inflection case=genitive number=singular} + сан-франциско + + + + кремлёвская башня + + {$source :inflection case=nominative number=singular} + кремлёвская башня + + + + эйфелева башня + + {$source :inflection case=nominative number=singular} + эйфелева башня + + + + леной + + {$source :inflection case=instrumental number=singular} + леной + + + + 79264496730 + + {$source :inflection case=instrumental number=singular} + 79264496730 + + + + пятого ноль второго 1988-го + + {$source :inflection case=nominative number=singular} + пятый ноль второе 1988-го + + + + 12.01.1988 + + {$source :inflection case=nominative number=singular} + 12.01.1988 + + + + 10 января 2016 г. + + {$source :inflection case=genitive number=singular} + 10 января 2016 г. + + + + 10 марта 2016 г. + + {$source :inflection case=genitive number=singular} + 10 марта 2016 г. + + + + 10 мая 2016 г. + + {$source :inflection case=genitive number=singular} + 10 мая 2016 г. + + + + таджикистан + + {$source :inflection case=genitive} + таджикистана + + + + сегодняшний день в 17:21 + + {$source :inflection case=genitive number=singular} + сегодняшнего дня в 17:21 + + + + завтрашний день в 17:59 + + {$source :inflection case=genitive number=singular} + завтрашнего дня в 17:59 + + + + Евгения Смирнова + + {$source :inflection case=nominative} + Евгения Смирнова + + + + Абра Смирнова + + {$source :inflection case=nominative} + Абра Смирнова + + + + Майкл + + {$source :inflection case=genitive pos=proper-noun} + Майкла + + + + Иванович + + {$source :inflection case=genitive pos=proper-noun} + Ивановича + + + + Иваныч + + {$source :inflection case=genitive pos=proper-noun} + Иваныча + + + + 23 апреля 2015 г. + + {$source :inflection case=accusative number=singular} + 23 апреля 2015 г. + + + + lifecell центр + + {$source :inflection case=genitive} + lifecell центра + + + + Ремонт Iphone + + {$source :inflection case=genitive} + Ремонта Iphone + + + + ❤️Муж❤️ + + {$source :inflection case=genitive} + ❤️Мужа❤️ + + + + ОЛЬГА + + {$source :inflection case=dative number=singular} + ОЛЬГЕ + + + + лимонадный + + {$source :inflection case=genitive} + лимонадного + + + + 1-м + + {$source :inflection case=prepositional number=singular} + 1-м + + + + м-м + + {$source :inflection case=prepositional number=singular} + м-м + + + + latin-м + + {$source :inflection case=prepositional number=singular} + latin-м + + + + Сергій + + {$source :inflection case=genitive number=singular} + Сергій + + + + Сергiй + + {$source :inflection case=genitive number=singular} + Сергiй + + + + Мама 2 + + {$source :inflection case=genitive number=singular} + Мамы 2 + + + + сегодняшний день в 23:30 + + {$source :inflection case=genitive number=singular} + сегодняшнего дня в 23:30 + + + + сегодняшний день с 13:00 по 14:00 + + {$source :inflection case=genitive number=singular} + сегодняшнего дня с 13:00 по 14:00 + + + + среда в 23:55 + + {$source :inflection case=genitive number=singular} + среды в 23:55 + + + + 13:15 суббота + + {$source :inflection case=accusative number=singular} + 13:15 субботу + + + + утро в 6:00 + + {$source :inflection case=instrumental number=singular} + утром в 6:00 + + + + завтрашний вечер в 5:21 + + {$source :inflection case=genitive number=singular} + завтрашнего вечера в 5:21 + + + + деревом + + {$source :inflection case=nominative} + дерево + + + + дереве + + {$source :inflection case=nominative} + дерево + + + + дерева + + {$source :inflection case=nominative} + дерево + + + + дереву + + {$source :inflection case=nominative} + дерево + + + + корзины + + {$source :inflection case=nominative} + корзины + + + + корзине + + {$source :inflection case=nominative} + корзина + + + + корзину + + {$source :inflection case=nominative} + корзина + + + + стуле + + {$source :inflection case=nominative} + стул + + + + Анатольевичу + + {$source :inflection case=nominative number=singular} + Анатольевич + + + + Анатоличу + + {$source :inflection case=nominative number=singular} + Анатолич + + + + Анатолию + + {$source :inflection case=nominative number=singular} + Анатолий + + + + Филипов + + {$source :inflection case=nominative number=singular} + Филипов + + + + Сарапулов + + {$source :inflection case=nominative number=singular} + Сарапулов + + + + Назад Шляху Немає + + {$source :inflection case=nominative} + Назад Шляху Немає + + + + Назад Шляху Немає + + {$source :inflection case=genitive} + Назад Шляху Немає + + + + Вася Чапаєвський + + {$source :inflection case=nominative} + Вася Чапаєвський + + + + Вася Чапаєвський + + {$source :inflection case=genitive} + Вася Чапаєвський + + + + Теорія Простору + + {$source :inflection case=nominative} + Теорія Простору + + + + Теорія Простору + + {$source :inflection case=genitive} + Теорія Простору + + + + человек очень быстро бежит по большому саду + + {$source :inflection case=genitive} + человека очень быстрого бежит по большого сада + + + + кошка + + {$source :inflection case=instrumental number=plural} + кошками + + + + кошка + + {$source :inflection case=instrumental number=singular} + кошкой + + + + кошка + + {$source :inflection case=accusative number=plural} + кошек + + + + кошка + + {$source :inflection case=accusative number=singular} + кошку + + + + кошка + + {$source :inflection case=dative number=plural} + кошкам + + + + кошка + + {$source :inflection case=dative number=singular} + кошке + + + + кошка + + {$source :inflection case=genitive number=plural} + кошек + + + + кошка + + {$source :inflection case=genitive number=singular} + кошки + + + + кошка + + {$source :inflection case=prepositional number=plural} + кошках + + + + кошка + + {$source :inflection case=prepositional number=singular} + кошке + + + + кошка + + {$source :inflection case=nominative number=plural} + кошки + + + + кошка + + {$source :inflection case=nominative number=singular} + кошка + + + + ресторан + + {$source :inflection case=instrumental number=plural} + ресторанами + + + + ресторан + + {$source :inflection case=instrumental number=singular} + рестораном + + + + ресторан + + {$source :inflection case=accusative number=plural} + рестораны + + + + ресторан + + {$source :inflection case=accusative number=singular} + ресторан + + + + ресторан + + {$source :inflection case=dative number=plural} + ресторанам + + + + ресторан + + {$source :inflection case=dative number=singular} + ресторану + + + + ресторан + + {$source :inflection case=genitive number=plural} + ресторанов + + + + ресторан + + {$source :inflection case=genitive number=singular} + ресторана + + + + ресторан + + {$source :inflection case=prepositional number=plural} + ресторанах + + + + ресторан + + {$source :inflection case=prepositional number=singular} + ресторане + + + + ресторан + + {$source :inflection case=nominative number=plural} + рестораны + + + + ресторан + + {$source :inflection case=nominative number=singular} + ресторан + + + + красивый + + {$source :inflection case=instrumental number=plural} + красивыми + + + + красивый + + {$source :inflection case=instrumental number=singular} + красивым + + + + красивый + + {$source :inflection animacy=inanimate case=accusative number=plural} + красивые + + + + красивый + + {$source :inflection animacy=inanimate case=accusative number=singular} + красивый + + + + красивый + + {$source :inflection case=dative number=plural} + красивым + + + + красивый + + {$source :inflection case=dative number=singular} + красивому + + + + красивый + + {$source :inflection case=genitive number=plural} + красивых + + + + красивый + + {$source :inflection case=genitive number=singular} + красивого + + + + красивый + + {$source :inflection case=prepositional number=plural} + красивых + + + + красивый + + {$source :inflection case=prepositional number=singular} + красивом + + + + красивый + + {$source :inflection case=nominative number=plural} + красивые + + + + красивый + + {$source :inflection case=nominative number=singular} + красивый + + + + + + .local $feature = {$source :inflection select=withAboutPrep case=nominative} .match $feature |о| {{correct answer}} * {{Wrong}} + correct answer + + + + ждлоыва + + .local $feature = {$source :inflection select=withAboutPrep case=nominative} .match $feature |о ждлоыва| {{correct answer}} * {{Wrong}} + correct answer + + + + новости + + .local $feature = {$source :inflection select=withAboutPrep case=nominative} .match $feature |о новости| {{correct answer}} * {{Wrong}} + correct answer + + + + этом + + .local $feature = {$source :inflection select=withAboutPrep case=prepositional} .match $feature |об этом| {{correct answer}} * {{Wrong}} + correct answer + + + + открытии + + .local $feature = {$source :inflection select=withAboutPrep case=prepositional} .match $feature |об открытии| {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=withInPrep case=nominative} .match $feature |в| {{correct answer}} * {{Wrong}} + correct answer + + + + ждлоыва + + .local $feature = {$source :inflection select=withInPrep case=nominative} .match $feature |в ждлоыва| {{correct answer}} * {{Wrong}} + correct answer + + + + речке + + .local $feature = {$source :inflection select=withInPrep} .match $feature |в речке| {{correct answer}} * {{Wrong}} + correct answer + + + + мне + + .local $feature = {$source :inflection select=withInPrep case=nominative} .match $feature |во мне| {{correct answer}} * {{Wrong}} + correct answer + + + + рву + + .local $feature = {$source :inflection select=withInPrep case=dative} .match $feature |во рву| {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=withWithPrep case=nominative} .match $feature |с| {{correct answer}} * {{Wrong}} + correct answer + + + + ждлоыва + + .local $feature = {$source :inflection select=withWithPrep case=nominative} .match $feature |со ждлоыва| {{correct answer}} * {{Wrong}} + correct answer + + + + тобой + + .local $feature = {$source :inflection select=withWithPrep case=instrumental} .match $feature |с тобой| {{correct answer}} * {{Wrong}} + correct answer + + + + мной + + .local $feature = {$source :inflection select=withWithPrep case=instrumental} .match $feature |со мной| {{correct answer}} * {{Wrong}} + correct answer + + + + вторника + + .local $feature = {$source :inflection select=withWithPrep case=genitive} .match $feature |со вторника| {{correct answer}} * {{Wrong}} + correct answer + + + + сгущенкой + + .local $feature = {$source :inflection select=withWithPrep case=instrumental} .match $feature |со сгущенкой| {{correct answer}} * {{Wrong}} + correct answer + + + + вчерашний день + + .local $feature = {$source :inflection select=withWithPrep case=nominative} .match $feature |со вчерашний день| {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=withToPrep case=nominative} .match $feature |к| {{correct answer}} * {{Wrong}} + correct answer + + + + ждлоыва + + .local $feature = {$source :inflection select=withToPrep case=nominative} .match $feature |к ждлоыва| {{correct answer}} * {{Wrong}} + correct answer + + + + нему + + .local $feature = {$source :inflection select=withToPrep case=dative} .match $feature |к нему| {{correct answer}} * {{Wrong}} + correct answer + + + + мне + + .local $feature = {$source :inflection select=withToPrep case=dative} .match $feature |ко мне| {{correct answer}} * {{Wrong}} + correct answer + + + + вторнику + + .local $feature = {$source :inflection select=withToPrep case=dative} .match $feature |ко вторнику| {{correct answer}} * {{Wrong}} + correct answer + + diff --git a/inflection/test/resources/inflection/dialog/message/sr.xml b/inflection/test/resources/inflection/dialog/message/sr.xml new file mode 100644 index 00000000..e0252980 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/sr.xml @@ -0,0 +1 @@ + diff --git a/inflection/test/resources/inflection/dialog/message/sv.xml b/inflection/test/resources/inflection/dialog/message/sv.xml new file mode 100644 index 00000000..335e3c45 --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/sv.xml @@ -0,0 +1,580 @@ + + + + + + lampa + + .local $feature = {$source :inflection select=definiteness} .match $feature |indefinite| {{correct answer}} * {{Wrong}} + correct answer + + + + lampan + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + slampiga + + .local $feature = {$source :inflection select=definiteness} .match $feature |definite| {{correct answer}} * {{Wrong}} + correct answer + + + + Landqvist + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + QQQQQQ + + .local $feature = {$source :inflection select=definiteness} .match $feature || {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=defArticle} .match $feature |den| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=defArticle gender=common number=singular} .match $feature |den| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=defArticle gender=neuter number=singular} .match $feature |det| {{correct answer}} * {{Wrong}} + correct answer + + + + value + + .local $feature = {$source :inflection select=defArticle number=plural} .match $feature |de| {{correct answer}} * {{Wrong}} + correct answer + + + + hund + + .local $feature = {$source :inflection select=defArticle} .match $feature |den| {{correct answer}} * {{Wrong}} + correct answer + + + + äpple + + .local $feature = {$source :inflection select=defArticle} .match $feature |det| {{correct answer}} * {{Wrong}} + correct answer + + + + hus + + .local $feature = {$source :inflection select=defArticle} .match $feature |det| {{correct answer}} * {{Wrong}} + correct answer + + + + hundar + + .local $feature = {$source :inflection select=defArticle} .match $feature |de| {{correct answer}} * {{Wrong}} + correct answer + + + + katt + + {$source :inflection} + katt + + + + flicka + + {$source :inflection definiteness=indefinite number=singular} + flicka + + + + flicka + + {$source :inflection definiteness=definite number=singular} + flickan + + + + flicka + + {$source :inflection definiteness=indefinite number=plural} + flickor + + + + flicka + + {$source :inflection definiteness=definite number=plural} + flickorna + + + + flicka + + {$source :inflection case=genitive definiteness=indefinite number=singular} + flickas + + + + flicka + + {$source :inflection case=genitive definiteness=definite number=singular} + flickans + + + + flicka + + {$source :inflection case=genitive definiteness=indefinite number=plural} + flickors + + + + flicka + + {$source :inflection case=genitive definiteness=definite number=plural} + flickornas + + + + hund + + {$source :inflection definiteness=indefinite number=singular} + hund + + + + hund + + {$source :inflection definiteness=definite number=singular} + hunden + + + + hund + + {$source :inflection definiteness=indefinite number=plural} + hundar + + + + hund + + {$source :inflection definiteness=definite number=plural} + hundarna + + + + hund + + {$source :inflection case=genitive definiteness=indefinite number=singular} + hunds + + + + hund + + {$source :inflection case=genitive definiteness=definite number=singular} + hundens + + + + hund + + {$source :inflection case=genitive definiteness=indefinite number=plural} + hundars + + + + hund + + {$source :inflection case=genitive definiteness=definite number=plural} + hundarnas + + + + katt + + {$source :inflection definiteness=indefinite number=singular} + katt + + + + katt + + {$source :inflection definiteness=definite number=singular} + katten + + + + katt + + {$source :inflection definiteness=indefinite number=plural} + katter + + + + katt + + {$source :inflection definiteness=definite number=plural} + katterna + + + + katt + + {$source :inflection case=genitive definiteness=indefinite number=singular} + katts + + + + katt + + {$source :inflection case=genitive definiteness=definite number=singular} + kattens + + + + katt + + {$source :inflection case=genitive definiteness=indefinite number=plural} + katters + + + + katt + + {$source :inflection case=genitive definiteness=definite number=plural} + katternas + + + + sko + + {$source :inflection definiteness=indefinite number=singular} + sko + + + + sko + + {$source :inflection definiteness=definite number=singular} + skon + + + + sko + + {$source :inflection definiteness=indefinite number=plural} + skor + + + + sko + + {$source :inflection definiteness=definite number=plural} + skorna + + + + sko + + {$source :inflection case=genitive definiteness=indefinite number=singular} + skos + + + + sko + + {$source :inflection case=genitive definiteness=definite number=singular} + skons + + + + sko + + {$source :inflection case=genitive definiteness=indefinite number=plural} + skors + + + + sko + + {$source :inflection case=genitive definiteness=definite number=plural} + skornas + + + + hjärta + + {$source :inflection definiteness=indefinite number=singular} + hjärta + + + + hjärta + + {$source :inflection definiteness=definite number=singular} + hjärtat + + + + hjärta + + {$source :inflection definiteness=indefinite number=plural} + hjärtan + + + + hjärta + + {$source :inflection definiteness=definite number=plural} + hjärtana + + + + hjärta + + {$source :inflection case=genitive definiteness=indefinite number=singular} + hjärtas + + + + hjärta + + {$source :inflection case=genitive definiteness=definite number=singular} + hjärtats + + + + hjärta + + {$source :inflection case=genitive definiteness=indefinite number=plural} + hjärtans + + + + hjärta + + {$source :inflection case=genitive definiteness=definite number=plural} + hjärtanas + + + + skydd + + {$source :inflection definiteness=indefinite number=singular} + skydd + + + + skydd + + {$source :inflection definiteness=definite number=singular} + skyddet + + + + skydd + + {$source :inflection definiteness=indefinite number=plural} + skydd + + + + skydd + + {$source :inflection definiteness=definite number=plural} + skydden + + + + skydd + + {$source :inflection case=genitive definiteness=indefinite number=singular} + skydds + + + + skydd + + {$source :inflection case=genitive definiteness=definite number=singular} + skyddets + + + + skydd + + {$source :inflection case=genitive definiteness=indefinite number=plural} + skydds + + + + skydd + + {$source :inflection case=genitive definiteness=definite number=plural} + skyddens + + + + röd hjärta + + {$source :inflection definiteness=indefinite number=singular} + rött hjärta + + + + röd hjärta + + {$source :inflection definiteness=definite number=singular} + röda hjärtat + + + + röd hjärta + + {$source :inflection definiteness=indefinite number=plural} + röda hjärtan + + + + röd hjärta + + {$source :inflection definiteness=definite number=plural} + röda hjärtana + + + + röd kort + + {$source :inflection definiteness=indefinite number=singular} + rött kort + + + + röd kort + + {$source :inflection definiteness=definite number=singular} + röda kortet + + + + röd kort + + {$source :inflection definiteness=indefinite number=plural} + röda kort + + + + röd kort + + {$source :inflection definiteness=definite number=plural} + röda korten + + + + XXX YYY kort + + {$source :inflection definiteness=indefinite number=singular} + XXX YYY kort + + + + XXX YYY kort + + {$source :inflection definiteness=definite number=singular} + XXX YYY kortet + + + + XXX YYY kort + + {$source :inflection definiteness=indefinite number=plural} + XXX YYY kort + + + + XXX YYY kort + + {$source :inflection definiteness=definite number=plural} + XXX YYY korten + + + + XYXYXY + + {$source :inflection definiteness=indefinite number=singular} + XYXYXY + + + + XYXYXY + + {$source :inflection definiteness=definite number=singular} + XYXYXY + + + + XYXYXY + + {$source :inflection definiteness=indefinite number=plural} + XYXYXY + + + + XYXYXY + + {$source :inflection definiteness=definite number=plural} + XYXYXY + + + + katter + + {$source :inflection number=singular} + katt + + + + katter + + {$source :inflection definiteness=definite number=singular} + katten + + + + katter + + {$source :inflection case=genitive} + katters + + + + katter + + {$source :inflection case=genitive definiteness=definite number=singular} + kattens + + diff --git a/inflection/test/resources/inflection/dialog/message/tr.xml b/inflection/test/resources/inflection/dialog/message/tr.xml new file mode 100644 index 00000000..607243be --- /dev/null +++ b/inflection/test/resources/inflection/dialog/message/tr.xml @@ -0,0 +1,1273 @@ + + + + + + + + .local $feature = {$source :inflection select=interrogativeArticle} .match $feature | mi| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=interrogativeArticle} .match $feature |qzxyzq mi| {{correct answer}} * {{Wrong}} + correct answer + + + + kitap + + .local $feature = {$source :inflection select=interrogativeArticle} .match $feature |kitap mı| {{correct answer}} * {{Wrong}} + correct answer + + + + terlik + + .local $feature = {$source :inflection select=interrogativeArticle} .match $feature |terlik mi| {{correct answer}} * {{Wrong}} + correct answer + + + + okul + + .local $feature = {$source :inflection select=interrogativeArticle} .match $feature |okul mu| {{correct answer}} * {{Wrong}} + correct answer + + + + gözlük + + .local $feature = {$source :inflection select=interrogativeArticle} .match $feature |gözlük mü| {{correct answer}} * {{Wrong}} + correct answer + + + + + + .local $feature = {$source :inflection select=deConjunction} .match $feature | de| {{correct answer}} * {{Wrong}} + correct answer + + + + qzxyzq + + .local $feature = {$source :inflection select=deConjunction} .match $feature |qzxyzq de| {{correct answer}} * {{Wrong}} + correct answer + + + + kitap + + .local $feature = {$source :inflection select=deConjunction} .match $feature |kitap da| {{correct answer}} * {{Wrong}} + correct answer + + + + terlik + + .local $feature = {$source :inflection select=deConjunction} .match $feature |terlik de| {{correct answer}} * {{Wrong}} + correct answer + + + + alarm + + {$source :inflection} + alarm + + + + alarm + + {$source :inflection number=plural} + alarmlar + + + + iPhone + + {$source :inflection} + iPhone + + + + Miami’ + + {$source :inflection} + Miami’ + + + + alarm + + {$source :inflection case=ablative copula=third number=plural person=first pronounNumber=plural tense=present} + alarmlarımızdandır + + + + alarm + + {$source :inflection number=plural person=third pronounNumber=singular} + alarmları + + + + alarm + + {$source :inflection number=singular person=third pronoun=plural} + alarmları + + + + alarm + + {$source :inflection number=plural person=third pronounNumber=plural} + alarmları + + + + uçak + + {$source :inflection case=accusative} + uçağı + + + + küp + + {$source :inflection case=accusative} + küpü + + + + knot + + {$source :inflection case=accusative} + knotu + + + + uçak + + {$source :inflection case=locative} + uçakta + + + + arka + + {$source :inflection case=accusative} + arkayı + + + + arka + + {$source :inflection case=accusative person=third pronounNumber=singular} + arkasını + + + + Uçak' + + {$source :inflection case=accusative} + Uçak'ı + + + + Uçak’ + + {$source :inflection case=accusative} + Uçak’ı + + + + "Uçak" + + {$source :inflection case=accusative} + "Uçak"ı + + + + Uçak + + {$source :inflection case=accusative} + Uçak ı + + + + iPhone + + {$source :inflection case=accusative} + iPhone’u + + + + iPad' + + {$source :inflection case=accusative} + iPad’i + + + + Domino’s’ + + {$source :inflection case=accusative} + Domino’s’u + + + + Domino’s + + {$source :inflection case=accusative} + Domino’su + + + + IKEA’ + + {$source :inflection case=accusative} + IKEA’yı + + + + 6:00’ + + {$source :inflection case=dative} + 6:00’ya + + + + 6:01’ + + {$source :inflection case=dative} + 6:01’e + + + + pazar 6:00’ + + {$source :inflection case=locative} + pazar 6:00’da + + + + pazar ÖS 6’ + + {$source :inflection case=locative} + pazar ÖS 6’da + + + + Mart 2013 + + {$source :inflection case=locative} + Mart 2013’te + + + + 6,80 + + {$source :inflection case=dative} + 6,80’e + + + + 2,00 + + {$source :inflection case=dative} + 2,00’ye + + + + 00:00 + + {$source :inflection case=dative} + 00:00’a + + + + 3.000 + + {$source :inflection case=dative} + 3.000’e + + + + 21.12.2009 + + {$source :inflection case=dative} + 21.12.2009’a + + + + 0 555 333 22 17 + + {$source :inflection case=dative} + 0 555 333 22 17’ye + + + + Numara 0 + + {$source :inflection case=dative} + Numara 0’a + + + + Blink23 + + {$source :inflection case=accusative} + Blink23’ü + + + + Blink23” + + {$source :inflection case=accusative} + Blink23”ü + + + + 3. + + {$source :inflection case=dative} + 3.’ye + + + + ,' + + {$source :inflection case=dative} + ,'e + + + + 😎’ + + {$source :inflection case=dative} + 😎’e + + + + Sanayi ve Ticaret A.Ş. + + {$source :inflection case=genitive} + Sanayi ve Ticaret A.Ş.’nin + + + + Galata Kulesi + + {$source :inflection case=dative} + Galata Kulesine + + + + Amerika Birleşik Devletleri’ + + {$source :inflection case=locative} + Amerika Birleşik Devletleri’nde + + + + Birleşik Arap Emirlikleri’ + + {$source :inflection case=locative} + Birleşik Arap Emirlikleri’nde + + + + Apple Watch + + {$source :inflection case=locative person=second pronounNumber=singular} + Apple Watch’unda + + + + garaj kapısı + + {$source :inflection copula=third tense=present} + garaj kapısıdır + + + + el feneri + + {$source :inflection person=first pronounNumber=plural} + el fenerimiz + + + + El Feneri’ + + {$source :inflection person=second pronounNumber=singular} + El Feneri’n + + + + El Feneri’ + + {$source :inflection person=third pronounNumber=singular} + El Feneri’si + + + + Merkez Cami’ + + {$source :inflection case=dative} + Merkez Cami’ye + + + + Şampiyonlar Ligi’ + + {$source :inflection case=locative} + Şampiyonlar Ligi’nde + + + + Avrupa Ligi’ + + {$source :inflection case=dative} + Avrupa Ligi’ne + + + + Zlatan Ibrahimović’ + + {$source :inflection case=ablative} + Zlatan Ibrahimović’ten + + + + Ousmane Dembélé’ + + {$source :inflection case=accusative} + Ousmane Dembélé’yi + + + + Testó’ + + {$source :inflection case=accusative} + Testó’yu + + + + Manchester United’ + + {$source :inflection case=accusative} + Manchester United’ı + + + + Chelsea’ + + {$source :inflection case=accusative} + Chelsea’yi + + + + Lakers’ + + {$source :inflection case=accusative} + Lakers’ı + + + + basket + + {$source :inflection case=accusative} + basketi + + + + faul + + {$source :inflection case=accusative} + faulü + + + + NBA Finalleri’ + + {$source :inflection case=locative} + NBA Finalleri’nde + + + + Gençlerbirliği’ + + {$source :inflection case=accusative} + Gençlerbirliği’ni + + + + Ankaragücü’ + + {$source :inflection case=accusative} + Ankaragücü’nü + + + + Kuşadası’ + + {$source :inflection case=dative} + Kuşadası’na + + + + Taşucu’ + + {$source :inflection case=dative} + Taşucu’na + + + + Atatürk Havalimanı’ + + {$source :inflection case=dative} + Atatürk Havalimanı’na + + + + Esenboğa Havaalanı’ + + {$source :inflection case=dative} + Esenboğa Havaalanı’na + + + + alarm + + {$source :inflection person=first} + alarmım + + + + alarm + + {$source :inflection tense=present} + alarmdır + + + + gol + + {$source :inflection case=dative} + gole + + + + avukat + + {$source :inflection case=dative} + avukata + + + + tuvalet + + {$source :inflection case=dative} + tuvalete + + + + noter + + {$source :inflection case=dative} + notere + + + + Kemal’ + + {$source :inflection case=dative} + Kemal’e + + + + Tom Cruise’ + + {$source :inflection case=genitive} + Tom Cruise’un + + + + Stockholm’ + + {$source :inflection case=dative} + Stockholm’e + + + + Bilal’ + + {$source :inflection case=dative} + Bilal’e + + + + Yasemin Mori’ + + {$source :inflection case=dative} + Yasemin Mori’ye + + + + cep + + {$source :inflection case=accusative} + cebi + + + + kürk + + {$source :inflection case=accusative} + kürkü + + + + renk + + {$source :inflection case=accusative} + rengi + + + + renk + + {$source :inflection case=locative} + renkte + + + + ampul + + {$source :inflection case=accusative} + ampulü + + + + pist + + {$source :inflection case=accusative} + pisti + + + + kâr + + {$source :inflection case=accusative} + kârı + + + + termostat + + {$source :inflection case=accusative} + termostatı + + + + limit + + {$source :inflection case=accusative} + limiti + + + + market + + {$source :inflection case=dative} + markete + + + + Xerox’ + + {$source :inflection case=locative} + Xerox’ta + + + + Clorox’ + + {$source :inflection case=ablative} + Clorox’tan + + + + iPhone + + {$source :inflection case=accusative} + iPhone’u + + + + iPhone + + {$source :inflection case=locative} + iPhone’da + + + + iPad + + {$source :inflection case=accusative} + iPad’i + + + + iPad + + {$source :inflection case=locative} + iPad’de + + + + 3D touch + + {$source :inflection case=accusative} + 3D touch’ı + + + + 3D touch + + {$source :inflection case=locative} + 3D touch’ta + + + + iBooks + + {$source :inflection case=accusative} + iBooks’u + + + + iBooks + + {$source :inflection case=locative} + iBooks’da + + + + App Store + + {$source :inflection case=accusative} + App Store’u + + + + App Store + + {$source :inflection case=locative} + App Store’da + + + + MacBook + + {$source :inflection case=accusative} + MacBook’u + + + + MacBook + + {$source :inflection case=locative} + MacBook’ta + + + + iMac + + {$source :inflection case=accusative} + iMac’i + + + + iMac + + {$source :inflection case=locative} + iMac’te + + + + Apple Music + + {$source :inflection case=accusative} + Apple Music’i + + + + Apple Music + + {$source :inflection case=locative} + Apple Music’te + + + + iTunes Match + + {$source :inflection case=accusative} + iTunes Match’i + + + + iTunes Match + + {$source :inflection case=locative} + iTunes Match’te + + + + iTunes Pass + + {$source :inflection case=accusative} + iTunes Pass’i + + + + iTunes Pass + + {$source :inflection case=locative} + iTunes Pass’te + + + + Wallet + + {$source :inflection case=accusative} + Wallet’ı + + + + Wallet + + {$source :inflection case=locative} + Wallet’ta + + + + iCloud Drive + + {$source :inflection case=accusative} + iCloud Drive’ı + + + + iCloud Drive + + {$source :inflection case=locative} + iCloud Drive’da + + + + Apple Watch + + {$source :inflection case=accusative} + Apple Watch’u + + + + Apple Watch + + {$source :inflection case=locative} + Apple Watch’ta + + + + Beats + + {$source :inflection case=accusative} + Beats’i + + + + Beats + + {$source :inflection case=locative} + Beats’te + + + + iPad Pro + + {$source :inflection case=accusative} + iPad Pro’yu + + + + iPad Pro + + {$source :inflection case=locative} + iPad Pro’da + + + + iPad Air + + {$source :inflection case=accusative} + iPad Air’i + + + + iPad Air + + {$source :inflection case=locative} + iPad Air’de + + + + Split View + + {$source :inflection case=accusative} + Split View’i + + + + Split View + + {$source :inflection case=locative} + Split View’de + + + + GarageBand + + {$source :inflection case=accusative} + GarageBand’i + + + + GarageBand + + {$source :inflection case=locative} + GarageBand’de + + + + Pages + + {$source :inflection case=accusative} + Pages’ı + + + + Pages + + {$source :inflection case=locative} + Pages’da + + + + Numbers + + {$source :inflection case=accusative} + Numbers’ı + + + + Numbers + + {$source :inflection case=locative} + Numbers’da + + + + iTunes + + {$source :inflection case=accusative} + iTunes’u + + + + iTunes + + {$source :inflection case=locative} + iTunes’da + + + + News + + {$source :inflection case=accusative} + News’i + + + + News + + {$source :inflection case=locative} + News’de + + + + iOS + + {$source :inflection case=accusative} + iOS’i + + + + iOS + + {$source :inflection case=locative} + iOS’te + + + + TestFlight + + {$source :inflection case=accusative} + TestFlight’ı + + + + TestFlight + + {$source :inflection case=locative} + TestFlight’ta + + + + okul + + {$source :inflection case=locative copula=third tense=past} + okuldaydı + + + + Eir Sport’ + + {$source :inflection case=locative copula=third tense=past} + Eir Sport’taydı + + + + Country’ + + {$source :inflection case=accusative} + Country’yi + + + + Podcasts + + {$source :inflection case=locative} + Podcasts’te + + + + iPhone 7S’ + + {$source :inflection case=accusative} + iPhone 7S’yi + + + + iPhone XR’ + + {$source :inflection case=genitive person=third pronounNumber=singular} + iPhone XR’sinin + + + + Apple TV 4K’ + + {$source :inflection case=accusative} + Apple TV 4K’yı + + + + gece yarısı + + {$source :inflection case=dative} + gece yarısına + + + + playlist + + {$source :inflection case=accusative} + playlist’i + + + + Wi-Fi + + {$source :inflection case=accusative} + Wi-Fi’ı + + + + Zuhal’ + + {$source :inflection case=dative} + Zuhal’e + + + + müzikal + + {$source :inflection case=locative} + müzikalde + + + + mail’ + + {$source :inflection case=accusative} + mail’i + + + + mail’ + + {$source :inflection case=locative} + mail’de + + + + artist + + {$source :inflection case=accusative} + artisti + + + + sohbet + + {$source :inflection case=dative} + sohbete + + + + cumhuriyet + + {$source :inflection case=genitive} + cumhuriyetin + + + + sepet + + {$source :inflection case=accusative} + sepeti + + + + adalet + + {$source :inflection case=accusative} + adaleti + + + + iki + + {$source :inflection tense=past} + ikiydi + + + + araba + + {$source :inflection person=third tense=past} + arabasıydı + + + + sıkıcı + + {$source :inflection copula=first tense=present} + sıkıcıyım + + + + abla + + {$source :inflection copula=first person=third tense=present} + ablasıyım + + + + abla + + {$source :inflection case=instrumental} + ablayla + + + + kalem + + {$source :inflection case=instrumental} + kalemle + + + + elbise + + {$source :inflection case=instrumental} + elbiseyle + + + + kaşık + + {$source :inflection case=instrumental} + kaşıkla + + + + bu + + {$source :inflection case=accusative} + bunu + + + + şu + + {$source :inflection case=accusative} + şunu + + + + o + + {$source :inflection case=dative} + ona + + + + şu + + {$source :inflection case=locative} + şunda + + + + abla + + {$source :inflection case=instrumental copula=first person=third tense=present} + ablasıylayım + + + + °C’ + + {$source :inflection case=dative} + °C’ye + + diff --git a/inflection/test/src/inflection/message2/MF2FactoryTest.cpp b/inflection/test/src/inflection/message2/MF2FactoryTest.cpp index b5512338..5f7dd719 100644 --- a/inflection/test/src/inflection/message2/MF2FactoryTest.cpp +++ b/inflection/test/src/inflection/message2/MF2FactoryTest.cpp @@ -192,3 +192,161 @@ select=withDefArticleInPreposition} \ REQUIRE(ret == u"The withDefArticleInPreposition of 'Fundort' is 'im Fundort'."); } + +static std::u16string getU16String(xmlNodePtr node) { + xmlNodePtr textNode = xmlFirstElementChild(node); + if (textNode == nullptr) { + std::u16string printStr; + XMLUtils::getContent(&printStr, node); + return printStr; + } + REQUIRE(xmlStrEqual(textNode->name, (const xmlChar *) "text")); + return XMLUtils::getRequiredAttribute(textNode, "print"); +} + +std::u16string BuildSelectorPatternFromConstraints( + const std::map& constraints, + const std::u16string& feature, + const std::u16string& match, + const std::u16string& correctResult) { + std::u16string result(u".local $feature = {$source :inflection select="); + result += feature; + for (const auto& [key, value] : constraints) { + result += u" " + key + u"=" + value; + } + result += u"} "; + result += u".match $feature "; + result += u"|" + match + u"| {{" + correctResult + u"}} "; + result += u"* {{Wrong}}"; + return result; +} + +std::u16string BuildFormatterPatternFromConstraints( + const std::map& constraints) { + std::u16string result(u"{$source :inflection"); + for (const auto& [key, value] : constraints) { + result += u" " + key + u"=" + value; + } + result += u"}"; + + return result; +} + +TEST_CASE("MF2Factory#testFormaterFromDataDriven") +{ + const auto &testLocales = TestUtils::getTestLocaleMap(); + std::string resourcePath(TestUtils::getTestResourcePath() + "dialog/inflection/"); + auto files(TestUtils::listDirectoryContents(resourcePath)); + std::sort(files.begin(), files.end()); + int32_t numFiles = 0; + + UErrorCode errorCode = U_ZERO_ERROR; + auto functionName = FunctionName("inflection"); + auto customRegistry = MFFunctionRegistry::Builder(errorCode) + .adoptFormatter(functionName, inflection::message2::MF2Factory::CreateFormatterFactory(), errorCode) + .adoptSelector(functionName, inflection::message2::MF2Factory::CreateSelectorFactory(), errorCode) + .build(); + REQUIRE(U_SUCCESS(errorCode)); + + MessageFormatter::Builder builder(errorCode); + builder.setFunctionRegistry(customRegistry); + + std::map arguments; + for (const auto& file : files) { + ::std::u16string resourceFile; + ::inflection::util::StringUtils::convert(&resourceFile, resourcePath+file); + ::inflection::util::MemoryMappedFile mMapFile(resourceFile); + xmlDocPtr xmlDoc = xmlParseMemory(mMapFile.getData(), (int)mMapFile.getSize()); + if (xmlDoc == nullptr) { + throw ::inflection::exception::IOException(resourceFile); + } + xmlNodePtr tokenizerTest = xmlDocGetRootElement(xmlDoc); + if (tokenizerTest == nullptr) { + throw ::inflection::exception::XMLParseException(u"Incorrect root element -- expecting , got "); + } + + ::std::string localeStr = file.substr(0, file.length() - ::std::string(".xml").length()); + ::inflection::util::ULocale locale(localeStr); + if (testLocales.find(locale.getLanguage()) == testLocales.end()) { + continue; + } + printf("\n"); + printf("\n"); + printf("\n", localeStr.c_str()); + // set the new locale to builder + builder.setLocale(Locale::forLanguageTag(locale.getLanguage(), errorCode)); + REQUIRE(U_SUCCESS(errorCode)); + + numFiles++; + + int32_t numTests = 0; + for (xmlNodePtr currTestNode = tokenizerTest->children; currTestNode != nullptr; currTestNode = currTestNode->next) { + if (currTestNode->type != XML_ELEMENT_NODE) { + continue; + } + REQUIRE(xmlStrEqual(currTestNode->name, (const xmlChar *) "test") != 0); + xmlNodePtr curTestChild = xmlFirstElementChild(currTestNode); + xmlNodePtr sourceNode = curTestChild; + REQUIRE(xmlStrEqual(sourceNode->name, (const xmlChar *) "source") != 0); + xmlNodePtr resultNode = xmlNextElementSibling(sourceNode); + REQUIRE(xmlStrEqual(resultNode->name, (const xmlChar *) "result") != 0); + auto sourceConstraints(XMLUtils::getAttributes(sourceNode)); + auto resultConstraints(XMLUtils::getAttributes(resultNode)); + std::u16string patternString = BuildFormatterPatternFromConstraints(sourceConstraints); + auto resultString = getU16String(resultNode); + // Test formatter if result is empty + if (resultString.length() != 0) { + patternString = BuildFormatterPatternFromConstraints(sourceConstraints); + } else { + if(resultConstraints.size() != 1) { + // skip empty result with no attribute. + continue; + } + auto iter = resultConstraints.begin(); + if (iter->first == u"exists") { + // skip exists test + continue; + } + resultString = u"correct answer"; + patternString = BuildSelectorPatternFromConstraints(sourceConstraints, + iter->first, + iter->second, + resultString); + } + arguments["source"]= Formattable(getU16String(sourceNode)); + + UnicodeString p(patternString); + std::string p8; + printf(" \n"); + printf(" \n"); + printf(" %s\n", + arguments["source"] + .getString(errorCode) + .toUTF8String(p8).c_str()); + printf(" \n"); + p8.clear(); + printf(" %s\n", p.toUTF8String(p8).c_str()); + UnicodeString r(resultString); + p8.clear(); + printf(" %s\n", r.toUTF8String(p8).c_str()); + printf(" \n"); + UParseError pe; + auto actualResult = builder.setPattern(patternString, pe, errorCode) + .build(errorCode) + .formatToString(MessageArguments(arguments, errorCode), errorCode); + REQUIRE(U_SUCCESS(errorCode)); + + REQUIRE(actualResult == resultString); + numTests++; + } + + xmlFreeDoc(xmlDoc); + REQUIRE(numTests > 0); + printf("\n"); + } + REQUIRE(numFiles > 0); + xmlCleanupParser(); +} +