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();
+}
+