Rendu des polices Discourse

Bonjour,

Je rencontre un problème de rendu de police lors de l’utilisation d’une police personnalisée en ourdou, à savoir Jameel Noori Nastaliq (une variante de Noto Nastaliq Urdu) dans Discourse. Ma configuration est la suivante :

  • Navigateur : Chrome version 138.0.7204.183

  • Police : Jameel Noori Nastaliq

  • Plateforme : Discourse (j’utilise un composant de thème suivant ceci)

Problème

Lorsque j’applique Jameel Noori Nastaliq à Discourse, le texte ne s’affiche pas comme prévu :

  • Certains mots sont mal formés. Sur l’image ci-jointe, le texte à droite montre comment Discourse le rend actuellement, tandis que la gauche montre le rendu attendu (en utilisant la même police et le même navigateur).

  • D’autres polices en ourdou (non-Nastaliq) s’affichent correctement dans le même environnement.

  • De plus, Noto Nastaliq Urdu s’affiche avec une taille de police inhabituellement grande par rapport aux autres polices. Cela donne au texte une apparence disproportionnée et incohérente avec le reste de l’interface utilisateur.

Ce que j’ai essayé

  • Tester plusieurs polices Nastaliq : Toutes les polices Nastaliq, c’est-à-dire Jameel, Mehr et Noto, présentent ce problème.

  • Comparer avec différents navigateurs : (testé sur Firefox/Edge)

  • Vérifier les substitutions CSS : La police est correctement appliquée via @font-face et chargée par Discourse.

Attendu vs Actuel

  • Attendu : Ligatures Nastaliq correctes et dimensionnement proportionnel (voir le côté gauche de l’image).

  • Actuel : Formation de mots incorrecte et texte surdimensionné (voir le côté droit de l’image).

Quelqu’un d’autre a-t-il rencontré ce problème avec Noto Nastaliq Urdu sur Chrome + Discourse ? S’agit-il d’un bug de mise en forme de Chrome, d’un problème de police, ou de la manière dont Discourse gère les polices personnalisées ?

Merci d’avance pour toute aide.

2 « J'aime »

Il est possible que Discourse fasse quelque chose avec les polices de caractères concernant les graisses de police.

Connaissez-vous le CSS ? Vous pourriez être en mesure de modifier certaines des variables de graisse de police définies dans Styling Discourse with variables: Show & Tell dans un composant de thème.

4 « J'aime »

Oui, je pense que c’est principalement le gras qui cause la distorsion.
Soit désactivez toutes les polices en gras avec une règle globale, soit assurez-vous que la police que vous utilisez dispose d’une variante grasse spécifique.

J’ai lu que celle-ci pourrait mieux fonctionner : Jameel Noori Nastaleeq Kasheeda: Download for free at Urdu Fonts : Urdu Fonts

2 « J'aime »

Merci pour votre réponse. Je vais continuer à désactiver les polices en gras. Comment pensez-vous qu’il sera plus facile de le faire ?

1 « J'aime »

Hmm, pour être très complet, l’ajout de ceci à votre CSS personnalisé devrait fonctionner :

* {
  font-weight: normal !important;
 }

@chapoi Malheureusement, cela ne fonctionne pas. Que pensez-vous de

overflow-wrap: break-word;
white-space: nowrap;
text-overflow: ellipsis;

Ces trois-là sont courants pour ces mots

1 « J'aime »

Aucun de ceux-ci n’aura d’effet sur votre police.

J’ai essayé ma solution localement, et cela a semblé faire l’affaire. Dites-vous que le CSS n’est pas appliqué, ou qu’il est appliqué mais ne résout pas le problème ?

@chapoi merci. Ce que je veux dire, c’est que la règle CSS est appliquée mais qu’elle ne produit pas les effets souhaités. Voici les liens pour que vous puissiez reproduire ce que je rencontre

/* Jameel Noori Nastaliq v4 */
@font-face {
  font-family: "Jameel-Noori";
  src: url("https://cdn.jsdelivr.net/npm/jameel-noori/fonts/jameel-noori-nastaleeq4.woff2") format("woff2"),
  url("https://unpkg.com/jameel-noori/fonts/jameel-noori-nastaleeq4.woff2") format("woff2");
}

Cette variante particulière produit ce genre de caractères superposés et est loin de l’effet désiré qui est plus bas.

/* Mehr Nastaliq Web Font v2 */
@font-face {
  font-family: "Mehr";
  src: url("https://cdn.jsdelivr.net/npm/mehr-nastaliq/fonts/mehr.woff2") format("woff2")
}

Le problème est causé par les paramètres par défaut de la fonctionnalité de police CSS de Discourse qui interfèrent avec le rendu des scripts complexes :

css

// Paramètres par défaut problématiques
font-variant-ligatures: none;
font-feature-settings: "calt" 0;

// La solution consiste à remplacer
font-variant-ligatures: normal;
font-feature-settings: normal;

Cela a résolu le problème avec les deux polices.

2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.