Elvish (Quenya and Sindarin) on Duolingo: an explanation



I have posted on this before in several of the Elvish/Quenya/Sindarin threads but so many people continue to hope for an Elvish course on Duolingo that I thought I would repost my explanations here.


First of all, some people are confused about what the languages are. "Elvish" is not a language but rather can be thought of as a language family (like the Romance languages, Germanic languages, Slavic languages, etc) created by JRR Tolkien for his fantasy setting. The two most well-known and most developed are Quenya (high Elvish, or Latin-Elvish) and Sindarin (Grey Elvish, the every-day language of the elves in LOTR).


First off I want to clarify that I am a huge LOTR fan (of course) and I really encourage everyone to learn more about Quenya and Sindarin. But after diving into Quenya and studying the language quite extensively, I am convinced that a Quenya course for Duolingo would be very difficult and would need to be done with much care. In the end, I just don't think Duolingo is a very good platform for teaching these languages and I give several reasons below.


The problem is that Tolkien's languages were made for his own amusement and not for practical use. Not only does this mean that the vocabulary is limited, it also means that we know nothing about discourse in these languages and furthermore because it was Tolkien's private hobby for decades before Quenya and Sindarin were used in the LOTR, there are many different versions of these languages and even the publication of the LOTR did not stop him from tinkering with them. Even the iconic greeting that Frodo uses "Elen sila lumenn' omentielvo" was changed in later editions. The earlier form was "Elen sila lumenn' omentielmo."


Which brings up the point of why it would be so difficult (perhaps not impossible, but extremely tricky) to create a Duolingo course on Quenya. The ending -vo/-mo in the above phrase is a first person plural pronominal ending ("our"). So which ending should be used in the course? The original or the one Tolkien used later? Indeed, the pronouns in Quenya tend to be quite slippery and Tolkien changed his mind about them (and many other things) just about every time he sat down to write something! Mixing and matching from different documents and different periods of Tolkien's life does not accurately represent Quenya, it creates a new language based on Quenya ("Neo-Quenya") which might derive from Tokien's language but is emphatically not the language that Tolkien created. And there are several different competing forms of "Neo-Quenya" from different people depending on which choices that person made regarding grammar points like the pronouns mentioned above.


And the problems only start there. Many aspects of Quenya grammar are fraught with this type of fluctuation in Tolkien's many conceptions of the language. Any website out there claiming that it can teach you to write or speak Quenya is actually teaching you that author's particular amalgamation of the language, a "Neo-Quenya" version created by them and based on Tolkien but definitively not Tolkien.


In my opinion, the problem is even worse for Sindarin. Quenya generally has much better documentation and a much longer history. If you go to the Duolingo Incubator, you will see that you can apply as a Sindarin course contributor. I fear that if such a course were made, though, it would actually (necessarily) be a form of Neo-Sindarin. Indeed, if the course were based on David Salo's Sindarin that is used in the movies, I would have to decry it as something wholly different from Tolkien's Sindarin. For a view on Salo's book on Sindarin and why it is not a particularly thoughtful or scholarly recreation of "Neo-Sindarin", see


<https://groups.yahoo.com/neo/groups/lambengolmor/conversations/topics/760>


If you want an even more comprehensive explanation of the several points I have made above about why Duolingo is not a good platform for a course in Quenya (and even more so in Sindarin), the following article is a must read:


<http://www.elvish.org/articles/EASIS.pdf>







In short, I think Quenya and Sindarin can be used for composition in interesting ways if the writer is careful and has a deep understanding of the histories of the languages and is able to take that into account in their composition. But I am not convinced that this can be taught effectively through a Duolingo course. The course would end up being overly simplistic to avoid errors or to constrain itself to only the most basic and consistent aspects of grammar (and therefore not of much help to the aspiring elvish student) or it would be a full language course that necessarily deviates from Tolkien's Quenya and instead uses a form of Neo-Quenya that does not necessarily conform to Tolkien's conception of the language. And as I mentioned before, Quenya is generally much better documented and we are much more confident about the grammar and workings of Quenya than Sindarin so the problems outlined above are even more severe for a proposed Sindarin course.
I wonder if Tolkien, were he brought out of time somehow, would really want his pet languages taught on Duolingo. I dare say, at this juncture at least, that Tolkien the scholar and master of allusion would be much more enthusiastic about enabling people to learn languages like Old English, Icelandic and Finnish—which, by coincidence are all greatly requested anyway.
You are mixing [expressions](https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.expression?view=netframework-4.7.1) with [lambda expressions](https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.lambdaexpression?view=netframework-4.7.1). There are many posts showing how you can combine lambda expressions, but the essential part is to compose expressions from lambda expression [bodies](https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.lambdaexpression.body?view=netframework-4.7.1) and rebind the [parameters](https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.lambdaexpression.parameters?view=netframework-4.7.1).


The later is usually achieved by a custom [`ExpressionVisitor`](https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.expressionvisitor?view=netframework-4.7.1) like this:



```
using System.Linq.Expressions;

public static class ExpressionExtensions
{
    public static Expression ReplaceParameter(this Expression expression, ParameterExpression source, Expression target)
    {
        return new ParameterReplacer { Source = source, Target = target }.Visit(expression);
    }

    class ParameterReplacer : ExpressionVisitor
    {
        public ParameterExpression Source;
        public Expression Target;
        protected override Expression VisitParameter(ParameterExpression node)
        {
            return node == Source ? Target : base.VisitParameter(node);
        }
    }
}

```

Now regarding the EF Core combined query filters. 


Using dictionaries and expression lists seems overcomplicated for what are you doing. Since [`IMutableEntityType`](https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.metadata.imutableentitytype?view=efcore-2.1) provides read/write access to the [`QueryFilter`](https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.metadata.imutableentitytype.queryfilter?view=efcore-2.1#Microsoft_EntityFrameworkCore_Metadata_IMutableEntityType_QueryFilter), the same can be achieved with a small set of a custom extension methods.


All they go inside a class like this:



```
using System;
using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

public static class QueryFilterExtensions
{
}

```

First method:



```
public static void AddQueryFilter(this IMutableEntityType target, LambdaExpression filter)
{
    if (target.QueryFilter == null)
        target.QueryFilter = filter;
    else
    {
        var parameter = target.QueryFilter.Parameters[0];
        var left = target.QueryFilter.Body;
        var right = filter.Body.ReplaceParameter(filter.Parameters[0], parameter);
        var body = Expression.AndAlso(left, right);
        target.QueryFilter = Expression.Lambda(body, parameter);
    }
}

```

This is a non generic method which combines the exiting filter with passed filter using `AndAlso` (C# `&&`) operator and shows the aforementioned lambda expression combining principles.


However it's not so useful directly, like inside your entity type configuration loop (it can, but requires you to build manually the lambda expression instead of letting C# compiler do that). So here comes the second method:



```
public static void AddQueryFilter<T>(this IMutableEntityType target, Expression<Func<T, bool>> filter)
{
    LambdaExpression targetFilter = filter;
    if (target.ClrType != typeof(T))
    {
        var parameter = Expression.Parameter(target.ClrType, "e");
        var body = filter.Body.ReplaceParameter(filter.Parameters[0], parameter);
        targetFilter = Expression.Lambda(body, parameter);
    }
    target.AddQueryFilter(targetFilter);
}

```

It's a generic method - not quite type-safe, but allows you to use a compile time lambda expression and bind it to the actual entity type as follows:



```
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
    if (typeof(IDeleted).IsAssignableFrom(entityType.ClrType))
        entityType.AddQueryFilter<IDeleted>(e => e.DateTimeDeleted == null);
}

```

Looks better, isn't it :)


The last custom extension method is complement to (replacement of) the standard EF Core generic [`HasQueryFilter`](https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.metadata.builders.entitytypebuilder-1.hasqueryfilter?view=efcore-2.1#Microsoft_EntityFrameworkCore_Metadata_Builders_EntityTypeBuilder_1_HasQueryFilter_System_Linq_Expressions_Expression_System_Func__0_System_Boolean___) method:



```
public static EntityTypeBuilder<TEntity> AddQueryFilter<TEntity>(this EntityTypeBuilder<TEntity> target, Expression<Func<TEntity, bool>> filter)
    where TEntity : class
{
    target.Metadata.AddQueryFilter(filter);
    return target;
}

```

and allows you to replace



```
this.AddToDict<DbMyEntity>(t => t.Name == null || t.Name == "Something");

```

with the more convenient



```
modelBuilder.Entity<DbMyEntity>()
    .AddQueryFilter(t => t.Name == null || t.Name == "Something");

```

**Update (EF Core 3.0):** `QueryFilter` property has been replaced with `GetQueryFilter` and `SetQueryFilter` extension methods. The Witcher 3: Wild Hunt
The Witcher 3: Wild Hunt is an open-world action adventure game that is controlled in the third person created by CD Project Red.

The gameplay consists of action role playing elements where the player journeys through a vast world leveling up their character and his equipment in order to progress the storyline.The Witcher 3: Wild Hunt is an open-world action adventure game that is controlled in the third person created by CD Project Red.

The gameplay consists of action role playing elements where the player journeys through a vast world leveling up their character and his equipment in order to progress the storyline.Thoughtful and expansive story with well-written characters: The Witcher 3: Wild Hunt tells a deep and intricate story about the main character, Geralt, on his long journey to find his adoptive daughter, Ciri, who's on the run from the evil, supernatural warlords of the Wild Hunt. You spend the game following various leads on Ciri's whereabouts, meeting up with old friends, former lovers, powerful politicians, and all sorts of people from many walks of life. These characters usually want something in exchange for giving Geralt the information he wants, leading you down some unexpected and eye-opening paths as you learn more about who they are, how they met Ciri, and how she helped them grow as people, letting you form a bond with her through these thought-provoking tales. And as Geralt either helps or hurts these people himself, he inevitably impacts their lives in even more ways.

Aside from the main story, there are also two great expansions: Hearts of Stone, and Blood and Wine, both of which offer their own amazing narratives with hours and hours of content. Hearts of Stone has you get involved with a shady, all-powerful manipulator who gives Geralt a series of seemingly impossible tasks, while Blood and Wine lets you explore the rolling hills of the wine-loving country of Touissant, with all the political intrigue surrounding the Duchess there.

The Witcher 3's story has so much to offer, easily keeping you hooked for well over a hundred hours as you play and replay the base game and the excellent expansions. | Vast and beautiful open world to explore: The world is gorgeous in how untainted it is, with many locations to see and visit. Full of vibrant life, the medieval-style setting is simple and understated, with wide open fields, rainy meadows, snowy mountain ranges, and modest wooden towns and cities for you to roam around on horseback or on foot. There are tons of secrets to find all over, like monster lairs to destroy for loot, treasure maps to follow, and hidden side quests in remote villages. The in-game clock keeps the skies changing with the hour as you cross from city to city, country to country, brightening the horizons with brilliant, golden sunrises in the morning and burning crimson sunsets in the evening. Everything is amazing to look at, encouraging you to wander around aimlessly just to take in the sights. | Memorable and meaningful side quests: The Witcher 3 sets a new standard with how well-done the side quests are. Since Geralt is a witcher, meaning he specializes in dealing with monsters with his swords and magic spells, people often go to him when they need a monster problem taken care of. Some of these problems involve people who have lost loved ones to a monster and simply want help tracking down their corpses to give them a proper send-off, or they want Geralt to take revenge by tracking down the monster and killing it. These side stories go a long way to humanize the minor characters, letting you feel their grief, hopelessness, or anger within only a few short minutes of speaking with them and getting the quest details. It's impressive that the writers manage to consistently pack so much emotion into these optional quests that you might not even choose to play through. | Attention to detail in almost every facet of the game: The Witcher 3 is how an AAA title should play, sound, and feel like. Its deep combat, beautiful graphics, amazing sound, interesting quests, immersive story, and almost every other aspect of the game has a surprising amount of polish. | Choices matter: The Witcher 3 has three completely different endings. The decisions during main quests and side-quests affect how the endings play out, adding up 36 possible outcomes. It feels refreshing to actually impact your character's fate and not just trot along a path to an inevitable conclusion. | Lots of random side quests: You can just walk around for hours, find abandoned structures, caves, etc and find interesting side quests to do. | Convenient ways to get around the massive world: The world is intimidatingly massive but thankfully there are ways to cut down on travel time. You can ride a horse, use a boat, or just simply fast travel to explored locations. This makes the experience more accessible and enjoyable as a whole. | The soundtrack is well constructed and complementary in almost all situations: While exploring, doing a quest whether it is main or side one, the music in the back always enhances your game play. When a fight starts it pumps you up by playing Slavic or Celtic beats, and on a heartbreaking scene, it slows down its pace and plays an instrumental that rings even after you close it. You won't even notice, but you start to hum Skelliege sound or Priscilla song in your daily chores.

Watching the sun set over the horizon while the Kaer Morhen tune plays was one of the best moments in the game. Without the songs to complement it, the side quests or the battles would have started to feel like a chore after a while on doing side content. | Fleshed-out romance options: Playing as Geralt, you have the choice to have one-night stands with ladies at certain taverns, or you can focus on his more involved romantic subplots. By this third game, Geralt has quite a long history with two competent and beautiful sorceresses: Triss Merigold, his love interest from The Witcher 2: Assassin of Kings, and Yennefer of Vengerberg, his old flame from the series of The Witcher novels that the games are based on. The two women also happen to be best friends, injecting some drama depending on how you go about things.

Triss is really sweet, fun, and spontaneous with the way she makes the stoic Geralt smile and open up more as they get up to mischief together. On the other hand, Yennefer is strict, straightforward, and no-nonsense, not wanting to get into feelings all that much, and yet she and Geralt have such a strong bond over several years, making it feel special when Yen does occasionally let her guard down. Both of these romances intertwine well with the main story, with great optional side quests that add even more layers to whichever relationship you decide to pursue. It's also possible to try romancing both of them at the same time, but you might regret it, so choose carefully. | Accessible to players who are new to the Witcher series: Even though this is the third Witcher game, you can still jump right in and not feel lost. The story is generally good with the way it introduces you to the main characters without expecting you to know who they are. Geralt often reminisces with his friends from the first two games, letting you in on their history and adventures together to give you an idea of what happened in the past. And you don't have to have read the series of Witcher books, either, as the games all take place beyond the stories there. | Story feels like a chore: Most quests feel like a chore in that it is basically fetch quests in exchange for information to advance the story. While this is often a mechanic found in games to keep the gameplay long it does get tiresome.
 | Great story, HUGE world, even side quests are fleshed out, "RPG" might be a stretch. | Developers paid to get this game so high. | Best RGP game i've ever played,and i have played most of them since 1998. Best story, (no wonder here ,since it's based on fantasy novel by a good storyteller and not on some poor script writers ,who grew "reading" comic "books" scribble),great graphics,good combat gameplay (target hard lock is broken). The Witcher 3
The Witcher 3: Wild Hunt is an action role-playing game. You play as Geralt of Rivia, a witcher who specializes in defeating monsters with swords and magic. Geralt sets off on a journey to find his long-lost adoptive daughter Ciri, making many difficult decisions surrounding the people he meets and the places he goes along the way.The Witcher 3: Wild Hunt is an action role-playing game. You play as Geralt of Rivia, a witcher who specializes in defeating monsters with swords and magic. Geralt sets off on a journey to find his long-lost adoptive daughter Ciri, making many difficult decisions surrounding the people he meets and the places he goes along the way.Vast and beautiful open world to explore: The world is gorgeous in how untainted it is, with many locations to see and visit. Full of vibrant life, the medieval-style setting is simple and understated, with wide open fields, rainy meadows, snowy mountain ranges, and modest wooden towns and cities for you to roam around on horseback or on foot. There are tons of secrets to find all over, like monster lairs to destroy for loot, treasure maps to follow, and hidden side quests in remote villages. The in-game clock keeps the skies changing with the hour as you cross from city to city, country to country, brightening the horizons with brilliant, golden sunrises in the morning and burning crimson sunsets in the evening. Everything is amazing to look at, encouraging you to wander around aimlessly just to take in the sights.
 | Thoughtful and expansive story with well-written characters: The Witcher 3: Wild Hunt tells a deep and intricate story about the main character, Geralt, on his long journey to find his adoptive daughter, Ciri, who's on the run from the evil, supernatural warlords of the Wild Hunt. You spend the game following various leads on Ciri's whereabouts, meeting up with old friends, former lovers, powerful politicians, and all sorts of people from many walks of life. These characters usually want something in exchange for giving Geralt the information he wants, leading you down some unexpected and eye-opening paths as you learn more about who they are, how they met Ciri, and how she helped them grow as people, letting you form a bond with her through these thought-provoking tales. And as Geralt either helps or hurts these people himself, he inevitably impacts their lives in even more ways.

Aside from the main story, there are also two great expansions: Hearts of Stone, and Blood and Wine, both of which offer their own amazing narratives with hours and hours of content. Hearts of Stone has you get involved with a shady, all-powerful manipulator who gives Geralt a series of seemingly impossible tasks, while Blood and Wine lets you explore the rolling hills of the wine-loving country of Touissant, with all the political intrigue surrounding the Duchess there.

The Witcher 3's story has so much to offer, easily keeping you hooked for well over a hundred hours as you play and replay the base game and the excellent expansions.
 | Your choices lead to morally-gray consequences and multiple different endings: There are rarely any right answers when making decisions. The situations that the story puts you in are unique and oftentimes unsettling, sometimes leaving you agonizing over which dialog option to pick during story conversations. During your first playthrough, it's isn't obvious which of your decisions are "important" and will impact plot outcomes, making you think critically about all of your choices. Most surprising are the critical decisions that determine which ending you get -- once you see your ending, you learn how organic everything is, with the game keeping track of your relationships with other characters in subtle ways. | Memorable and meaningful side quests: The Witcher 3 sets a new standard with how well-done the side quests are. Since Geralt is a witcher, meaning he specializes in dealing with monsters with his swords and magic spells, people often go to him when they need a monster problem taken care of. Some of these problems involve people who have lost loved ones to a monster and simply want help tracking down their corpses to give them a proper send-off, or they want Geralt to take revenge by tracking down the monster and killing it. These side stories go a long way to humanize the minor characters, letting you feel their grief, hopelessness, or anger within only a few short minutes of speaking with them and getting the quest details. It's impressive that the writers manage to consistently pack so much emotion into these optional quests that you might not even choose to play through.
 | Accessible to players who are new to the Witcher series: Even though this is the third Witcher game, you can still jump right in and not feel lost. The story is generally good with the way it introduces you to the main characters without expecting you to know who they are. Geralt often reminisces with his friends from the first two games, letting you in on their history and adventures together to give you an idea of what happened in the past. And you don't have to have read the series of Witcher books, either, as the games all take place beyond the stories there.
 | The soundtrack is well constructed and complementary in almost all situations: While exploring, doing a quest whether it is main or side one, the music in the back always enhances your game play. When a fight starts it pumps you up by playing Slavic or Celtic beats, and on a heartbreaking scene, it slows down its pace and plays an instrumental that rings even after you close it. You won't even notice, but you start to hum Skelliege sound or Priscilla song in your daily chores.

Watching the sun set over the horizon while the Kaer Morhen tune plays was one of the best moments in the game. Without the songs to complement it, the side quests or the battles would have started to feel like a chore after a while on doing side content. | Fleshed-out romance options: Playing as Geralt, you have the choice to have one-night stands with ladies at certain taverns, or you can focus on his more involved romantic subplots. By this third game, Geralt has quite a long history with two competent and beautiful sorceresses: Triss Merigold, his love interest from The Witcher 2: Assassin of Kings, and Yennefer of Vengerberg, his old flame from the series of The Witcher novels that the games are based on. The two women also happen to be best friends, injecting some drama depending on how you go about things.

Triss is really sweet, fun, and spontaneous with the way she makes the stoic Geralt smile and open up more as they get up to mischief together. On the other hand, Yennefer is strict, straightforward, and no-nonsense, not wanting to get into feelings all that much, and yet she and Geralt have such a strong bond over several years, making it feel special when Yen does occasionally let her guard down. Both of these romances intertwine well with the main story, with great optional side quests that add even more layers to whichever relationship you decide to pursue. It's also possible to try romancing both of them at the same time, but you might regret it, so choose carefully.
 | Some main story segments drag on for way too long: The story is generally excellent except for certain parts that seem to go on and on for hours with no end in sight. You start off looking into someone who has information on Ciri, only to get the run-around in the worst of ways, chasing down several leads for many different characters all at one time. Just when you think you're done with a series of main quests, you have to go talk to someone else, or kill some other monster, or go to some other place instead. It's really annoying and kills the pacing of the otherwise well-written narrative.
 | The combat can take some time to get used to: The real-time action combat with Geralt's swords and magic doesn't quite feel right. When you first try it, you might find the controls to be imprecise and a bit sluggish. You may need a few hours to get used to the way the swordplay works with parrying and dodging, on top of knowing when to use your defensive and offensive spells to take advantage of enemy weaknesses.
 | goat elmo

divided into paragraphs for easier use.

someone who wears tight black clothes or plaid (i think that's what it is called) -around where i live anyway- and likes to cry and complain a lot about their life. 

they also like to wear things like eyeliner and have hair that goes over at least one eye or is 'down.' 

they listen to emo music, though i don't know what that is exactly, no, it's not metal (including metalcore and deathcore).

they may also cut themselves

they are often confused for a goths, which is incorrect. [Problem play](https://englishsummary.com/problem-play/) takes up important issues of the society using the way of conversation between the characters or actors in the play before the audience. These characters express different ideas which clash with each other. These clashing ideas help the audience and the readers to understand the issue and reach a solution on their own.


In Pygmalion by GB Shaw, Professor Henry Higgins makes Cockney speaking flower girl Eliza Doolittle to master English. He succeeds in doing so within six months. Eliza succeeds in learning English and can speak it fluently. However, the rise in her standard because of her language now becomes a problem for her.


She develops the feeling of love for Professor Higgins but the latter remains cold to it. She can neither live with him nor she can go back to flower-selling business. Having no choice she has to marry Freddy, a poor and petty man.


This is what a person who is poor and uneducated feels when he suddenly becomes rich and literate. Hence it is a problem play. The playwright leaves it to the audience to decide what Eliza should have done. the forum was either created at a time when there was no spanish translation or it was initially created with an english locale. the “replace” feature from the above link will sort this out. am rezolvat , multumesc , am "furat" sursa html si css din pluginul " enhanced user info panel "   o sa las mai jos si sursele pentru cei ce vor sa faca ceva de genul 
 


 forums  /  font  /  topics  /  postcontainer
 


{{$idfield = $comment::$databasecolumnid;}}
{{$itemclasssafe = str\_replace( '\\', '\_', mb\_substr( $comment::$itemclass, 4 ) );}}
{{if $comment->isignored()}}
 <div class='ipscomment ipscomment\_ignored ipstype\_light' id='elignorecomment\_{$comment->$idfield}' data-ignorecommentid='elcomment\_{$comment->$idfield}' data-ignoreuserid='{$comment->author()->member\_id}'>
 {lang="ignoring\_content" sprintf="$comment->author()->name"} <a href='#elignorecomment\_{$comment->$idfield}\_menu' data-ipsmenu data-ipsmenu-menuid='elignorecomment\_{$comment->$idfield}\_menu' data-ipsmenu-appendto='#elignorecomment\_{$comment->$idfield}' data-action="ignoreoptions" title='{lang="see\_post\_ignore\_options"}' class='ipstype\_blendlinks'>{lang="options"} <i class='fa fa-caret-down'></i></a>
 <ul class='ipsmenu ipshide' id='elignorecomment\_{$comment->$idfield}\_menu'>
 <li class='ipsmenu\_item ipsjs\_show' data-ipsmenuvalue='showpost'><a href='#'>{lang="show\_this\_post"}</a></li>
 <li class='ipsmenu\_sep ipsjs\_show'><hr></li>
 <li class='ipsmenu\_item' data-ipsmenuvalue='stopignoring'><a href='{url="app=core&module=system&controller=ignore&do=remove&id={$comment->author()->member\_id}" seotemplate="ignore"}'>{lang="stop\_ignoring\_posts\_by" sprintf="$comment->author()->name"}</a></li>
 <li class='ipsmenu\_item'><a href='{url="app=core&module=members&controller=ignore" seotemplate="ignore"}'>{lang="change\_ignore\_preferences"}</a></li>
 </ul>
 </div>
{{endif}}

<a id='comment-{$comment->$idfield}'></a>
<article itemscope {{if $item->isquestion() && !$comment->new\_topic}}itemprop="suggestedanswer {{if $comment->post\_bwoptions['best\_answer']}}acceptedanswer{{endif}}" itemtype="http://schema.org/answer"{{else}}itemtype="http://schema.org/comment"{{endif}} id='elcomment\_{$comment->$idfield}' class='cpost ipsbox {{if $otherclasses}}{$otherclasses}{{endif}} ipscomment {{if settings.reputation\_highlight and $comment->reputation() >= settings.reputation\_highlight}}ipscomment\_popular{{endif}} ipscomment\_parent ipsclearfix ipsclear ipscolumns ipscolumns\_nospacing ipscolumns\_collapsephone {{if $comment->isignored()}}ipshide{{endif}} {{if $comment->hidden()}}ipsmoderated{{endif}}'>
 {{if $item->isquestion() and !$comment->new\_topic}}
 {template="postrating" group="topics" app="forums" params="$item, $comment, $votes"}
 {{endif}}
 <aside class='ipscomment\_author cauthorpane ipscolumn ipscolumn\_medium'>
 <h3 class='ipstype\_sectionhead cauthorpane\_author ipstype\_blendlinks ipstype\_break' itemprop="creator" itemscope itemtype="http://schema.org/person"><strong itemprop="name">{$comment->author()->link( $comment->warningref() )|raw}</strong> <span class='ipsresponsive\_showphone ipsresponsive\_inline'>&nbsp;&nbsp;{template="reputationbadge" group="global" app="core" params="$comment->author()"}</span></h3>
 <ul class='cauthorpane\_info ipslist\_reset'>
 
 {{if $comment->author()->member\_title && $comment->author()->member\_id}}
 
 {{elseif $comment->author()->rank['title'] && $comment->author()->member\_id}}
 <li class='ipsresponsive\_hidephone'>{$comment->author()->rank['title']}</li>
 {{endif}} 
 <!-- {{if $comment->author()->rank['image'] && $comment->author()->member\_id}}
 <li class='ipsresponsive\_hidephone'>{$comment->author()->rank['image']|raw}</li>
 {{endif}} -->
 
 <li class='cauthorpane\_photo'>
 {{if $comment->author()->pp\_main\_photo}}<a href='{url="app=core&module=members&controller=profile&id={$comment->author()->member\_id}-{$comment->author()->name}" seotemplate="profile" seotitle="$comment->author()->name"}' data-ipshover data-ipshover-target='{url="app=core&module=members&controller=profile&id={$comment->author()->member\_id}-{$comment->author()->name}&do=hovercard" seotemplate="profile" seotitle="$comment->author()->name"}' title="{lang="view\_user\_profile" sprintf="$comment->author()->name"}"><span class='ipsuserphoto ipsuserphoto\_variable'><img src="{setting="base\_url"}uploads/{$comment->author()->pp\_main\_photo}" /></span></a>{{else}}<a href='{url="app=core&module=members&controller=profile&id={$comment->author()->member\_id}-{$comment->author()->name}" seotemplate="profile" seotitle="$comment->author()->name"}' data-ipshover data-ipshover-target='{url="app=core&module=members&controller=profile&id={$comment->author()->member\_id}-{$comment->author()->name}&do=hovercard" seotemplate="profile" seotitle="$comment->author()->name"}' title="{lang="view\_user\_profile" sprintf="$comment->author()->name"}"><span class='ipsuserphoto ipsuserphoto\_variable'><img src="{resource="default\_photo.png" app="core" location="global"}" /></a>{{endif}}
 </li>

 <li class='group\_badge'>
 <div class='group\_name'>{expression="\ips\member\group::load( $comment->author()->member\_group\_id )->formattedname" raw="true"}</div>
 <!-- <div class='member\_title'>
 {{if $comment->author()->member\_title && $comment->author()->member\_id}}
 {$comment->author()->member\_title}
 {{elseif $comment->author()->rank['title'] && $comment->author()->member\_id}}
 {$comment->author()->rank['title']}
 {{endif}}
 </div> -->
 </li>
 </ul>
 {{if $comment->author()->rank['image'] && $comment->author()->member\_id}}
 
 {{endif}}
 
 {{if $comment->author()->member\_id}}
 <ul class='dpxutprofile'>
 <li class="ipsresponsive\_hidephone ipstype\_break">
 <div class='stat\_name'><i class="fa {setting="euip\_fafauserrank"}" aria-hidden="true"></i> {lang="euip\_membertitle"}:</div>
 <div class='stat\_value'>{$comment->author()->member\_title}</div>
 </li>
 
 <li class='euip\_border'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafausername"}" aria-hidden="true"></i> {lang="euip\_username"}:</div>
 <div class='stat\_value'> <strong itemprop="name">{$comment->author()->link( $comment->warningref() )|raw}</strong></div>
 </li>
 <li class='euip\_border {{if \ips\settings::i()->euip\_usergrouphidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafausergroup"}" aria-hidden="true"></i> {lang="euip\_usergroup"}:</div>
 <div class='stat\_value'>{expression="\ips\member\group::load( $comment->author()->member\_group\_id )->formattedname" raw="true"}</div>
 </li>
 <li> 
 <div class='stat\_name'>
 <i class="fa fa-comments-o" aria-hidden="true"></i> posts 
 </div>
 <div class='stat\_value'> 
 {$comment->author()->member\_posts}
 </div>
 </li>
 
 <li class='euip\_border {{if \ips\settings::i()->euip\_userrephidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafauserrep"}" aria-hidden="true"></i> {lang="euip\_totalrep"}:</div>
 <div class='stat\_value'>{template="reputationbadge" group="global" app="core" params="$comment->author()"}</div>
 </li>
 <li> 
 <div class='stat\_name'>
 <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> warn level
 </div>
 <div class='stat\_value'> 
 {$comment->author()->warn\_level}
 </div>
 </li>
 
 <li class='euip\_border {{if \ips\settings::i()->euip\_birthdayhidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafabirthday"}" aria-hidden="true"></i> {lang="euip\_age"}:</div>
 <div class='stat\_value'>{$comment->author()->age()}</div>
 </li>
 
 <li class='euip\_border {{if \ips\settings::i()->euip\_useridhidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafauserid"}" aria-hidden="true"></i> {lang="euip\_memberid"}:</div>
 <div class='stat\_value'>{$comment->author()->member\_id}</div>
 </li>
 
 <li class='euip\_border {{if \ips\settings::i()->euip\_lastactivityhidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafalastactivity"}" aria-hidden="true"></i> {lang="euip\_lastactivity"}:</div>
 <div class='stat\_value'>{{if $comment->author()->last\_activity}}{datetime="$comment->author()->last\_activity"}{{else}}{lang="never"}{{endif}}</div>
 </li>
 
 <li class='euip\_border {{if \ips\settings::i()->euip\_onlinestatushidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafaonlinestatus"}" aria-hidden="true"></i> {lang="euip\_onlinestatus"}:</div>
 <div class='stat\_value'>{{if $comment->author()->isonline()}}<span style='color:green' class='metric'>{lang="euip\_online"}</span>{{else}}<span style='color:red'>{lang="euip\_offline"}</span>{{endif}}</div>
 </li> 
 
 
 <li class='euip\_border {{if \ips\settings::i()->euip\_joindatehidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'><i class="fa {setting="euip\_fafauserjoindate"}" aria-hidden="true"></i> {lang="euip\_joined"}:</div>
 <div class='stat\_value'>{datetime="$comment->author()->joined" dateonly="true"}</div>
 </li>
 <li class='euip\_border {{if \ips\settings::i()->euip\_birthdayhidephone == 1}}ipsresponsive\_hidephone{{endif}}'>
 <div class='stat\_name'> <i class="fa {setting="euip\_fafabirthday"}" aria-hidden="true"></i> {lang="euip\_bday"}:</div>
 <div class='stat\_value'> {$comment->author()->birthday}</div>
 </li>
 <li class='ipsresponsive\_hidephone'>{$comment->author()->rank['image']|raw}</li>
 </ul>
 {{endif}}
 </aside>
 <div class='ipscolumn ipscolumn\_fluid'>
 {template="post" group="topics" app="forums" params="$item, $comment, $item::$formlangprefix . 'comment', $item::$application, $item::$module, $itemclasssafe"}
 </div>
</article>


 in custom.css se adauga urmatorul cod :
 


ul.dpxutprofile > li {
 display: flex;
 width: 90%;
 justify-content: space-between;
 margin: 5px auto;
 font-size: 10px;
 border-bottom: 1px dashed #444;
}
ul.dpxutprofile {
 margin: 0;
 padding: 0;
 list-style: none;
 margin-top: 15px;
}

ul.dpxutprofile > li > .stat\_name {
 display: inline-block;
 text-align: left;
 color: #525252;
 cursor: default;
 float: left;
 letter-spacing: 1px;
}

ul.dpxutprofile > li > .stat\_name > i {
 font-size: 14px;
 position: relative;
 top: 1px;
 margin-right: 5px;
}
ul.dpxutprofile > li > .stat\_value {
 display: inline-block;
 text-align: left;
 color: #828282;
 float: right;
}

.group\_badge {
 background: #2a2a2a;
 background: -webkit-linear-gradient(90deg,#23f88a transparent);
 background: -o-linear-gradient(90deg,#23f88a transparent);
 background: -moz-linear-gradient(90deg,#2a2a2a, transparent);
 background: linear-gradient(90deg,#2a2a2a, transparent);
 margin: 0 auto;
 margin-bottom: 15px;
 margin-top: 15px;
 width: 80%;
 height: 35px;
 line-height: 35px;
 border-radius: 30px;
}

.group\_name {
 position: relative;
 top: 0;
 transition: all .2s;
 cursor: default;
}


 rezultatul dear student,
given below is the answer to your question

evelyn's mother remembered how she did not respond when her name
was called for the playing of the piano when her marks deteriorated
and her headmistress forced her parents to take her to a
specialist, it was discovered that her hearing was impaired as a
result of a gradual nerve damage


i hope you find this answer helpful please post more questions on
the forum to be assisted by our team

thank you its kind difficult to understand in my POV but not impossible  

imagining it while reading


can you show some codes? or samples on what you want to achive? not understood actually. plz clarify in detail