Faits : A. A._ (ci-après : le demandeur ou recourant) est locataire d'un appartement de 3 pièces et demie sis à Fribourg dont le loyer mensuel s'élève à 993 fr. La bailleresse de cet appartement est la société B._ SA ayant son siège à Lausanne. B. B.a. Par demande en justice du 19 septembre 2017, le demandeur a requis la réduction du loyer mensuel de son appartement de 993 fr. à 963 fr. 25 dès le 1er octobre 2017 et le remboursement d'un montant de 4'727 fr. 60. Cette demande a été rédigée en allemand. Aucun accord relatif à l'utilisation de la langue allemande n'ayant été conclu entre les parties et la défenderesse ayant refusé d'accepter le mémoire en allemand, le demandeur a été prié de déposer sa demande en français, ce qu'il a fait le 6 décembre 2017. Par décision du 31 août 2018, le Tribunal des baux de l'arrondissement de la Sarine a partiellement admis la demande, fixé le loyer à 990 fr. dès le 1er octobre 2017 et à 963 fr. 25 dès le 1er octobre 2018 et pris acte de l'acquiescement de la défenderesse de rembourser au demandeur les montants de 1'704 fr. 25 et de 238 fr. 50. B.b. Par mémoire du 4 octobre 2018, le demandeur a interjeté recours au Tribunal cantonal de l'État de Fribourg contre la décision du Tribunal des baux du 31 août 2018 en concluant à la réduction du loyer de 993 fr. à 963 fr. 25 dès le 1er octobre 2017. Le demandeur a rédigé son recours en langue allemande. Invitée à se déterminer sur l'usage de l'allemand pour le mémoire de recours, l'intimée a exposé par courrier du 25 octobre 2018 que ses organes ne maîtrisent pas cette langue et a prié la Cour d'inviter le recourant à déposer son mémoire en français. Par courrier du 26 octobre 2018, la juge déléguée a renvoyé le mémoire de recours au demandeur et l'a invité à procéder en français, précisant que s'il ne le faisait pas dans le délai fixé, la Cour n'entrerait pas en matière. Par acte du 12 novembre 2018, le recourant s'est refusé à procéder à la traduction demandée. Par arrêt du 28 novembre 2018, le Tribunal cantonal n'est pas entré en matière sur le recours du demandeur au motif que celui-ci était rédigé en langue allemande. C. Le recourant a formé un recours constitutionnel subsidiaire au Tribunal fédéral. Ce recours, rédigé en langue allemande, tend à ce que l'arrêt du 28 novembre 2018 soit annulé et à ce qu'il soit ordonné au Tribunal cantonal d'entrer en matière sur le recours du 19 septembre 2018. Il déduit de l'art. 17 al. 2 de la Constitution du canton de Fribourg du 16 mai 2004 (Cst./FR; RSF 10.1) et de l'art. 18 Cst. un droit à déposer son recours en allemand devant le Tribunal cantonal fribourgeois et estime que les conditions d'une restriction de ce droit fondamental ne sont pas réunies en l'espèce. L'intimée conclut au rejet du recours. Le Tribunal cantonal a renoncé à se déterminer. Le recourant a déposé une réplique spontanée sur laquelle l'intimée ne s'est pas déterminée. D. Par ordonnance du 16 avril 2019, le Tribunal fédéral a admis la requête d'assistance judiciaire du recourant et a désigné Me Patrik Gruber en qualité d'avocat d'office du recourant.