Пример #1
0
    private static string MatchQualifier(IngredientData.Qualifier qualifier, IngredientData.Noun noun)
    {
        if (qualifier.Invariable != "")
        {
            return(qualifier.Invariable);
        }

        if (noun == null)
        {
            return(qualifier.SingularFeminine);
        }

        if (noun.Genre == IngredientData.Genre.FEMININE)
        {
            if (noun.Plurality == IngredientData.Plurality.SINGULAR)
            {
                return(qualifier.SingularFeminine);
            }
            return(qualifier.PluralFeminine);
        }

        if (noun.Plurality == IngredientData.Plurality.SINGULAR)
        {
            return(qualifier.SingularMasculine);
        }
        return(qualifier.PluralMasculine);
    }
Пример #2
0
    private static string MatchArticle(string article, IngredientData.Noun noun)
    {
        if (noun == null)
        {
            return("la");
        }

        bool isUndefined   = article.Contains("u");
        bool hasPossessive = article.Contains("p");

        if (noun.Plurality == IngredientData.Plurality.SINGULAR)
        {
            if (noun.Genre == IngredientData.Genre.FEMININE)
            {
                if (isUndefined)
                {
                    return(hasPossessive ? "d’une" : "une");
                }
                if (noun.HasContractedArticle)
                {
                    return(hasPossessive ? "de l’" : "l’");
                }
                return(hasPossessive ? "de la" : "la");
            }
            if (isUndefined)
            {
                return(hasPossessive ? "d’un" : "un");
            }
            if (noun.HasContractedArticle)
            {
                return(hasPossessive ? "de l’" : "l’");
            }
            return(hasPossessive ? "du" : "le");
        }
        if (isUndefined)
        {
            return(hasPossessive ? "de" : "des");
        }
        return(hasPossessive ? "des" : "les");
    }