2 votes

Les phrases coréennes sont divisées de manière aléatoire

Je suis confronté à un problème : J'ai un texte en Unicode décimal coréen et le texte est affiché en 4 colonnes et plusieurs lignes (car il s'agit des réponses d'un test de langue). Le problème est que, comme la largeur de chaque réponse est de 20 %, la phrase se divise aléatoirement au milieu du mot lorsqu'elle ne tient pas, au lieu de se placer dans les espaces entre les mots. Je ne sais pas comment traiter ce problème, puisque ce texte est chargé et affiché automatiquement depuis une base de données.

Le code HTML pour chacune des 4 colonnes est le suivant :

<table class="courses" border="0" cellpadding="2" cellspacing="2" width="100%" style="font-size:13px;">
  <tbody>
    <td width="20%">
     <p align="center">
       <input name="a[X]" value=1" type="radio">
       <br>
       <?php echo "&#48148;&#49240;&#47732; &#44032;&#51648; &#47560;&#49464;&#50836;" ?> // this comes from a DB, its the unicodes of the korean characters<br>
    </p>
   </td>
</tbody>
</table>

Qu'est-ce que je pourrais faire pour corriger cela et, quand ça ne va pas, éviter de diviser au hasard, mais le faire quand une phrase se termine ? Si vous remarquez dans les codes Unicode, vous pouvez dire qu'il y a un espace entre ;면 가, mais ça se casse n'importe où, pareil pour tout le texte.

(Notez qu'il n'y a aucun problème d'encodage, les caractères coréens sont affichés correctement. Et cela ne se produit pas avec d'autres langues comme le suédois ou l'espagnol).

EDITAR

Voici un exemple de travail .

Notez que dans l'exemple, la première réponse est coupée dans les deux derniers caractères, alors que ce mot a cinq caractères, et devrait donc être coupé 3 caractères avant.

0voto

Philip Ridout Points 757

Je me suis penché sur la question pour un projet sur lequel je travaille. Je pense que https://www.w3.org/TR/css-text-3/#line-breaking couvre ce sujet, en particulier l'"exemple 5" :

Autre exemple, le coréen a deux styles de coupure de ligne : entre deux syllabes coréennes (coupure de mot : normale) ou, comme en anglais, principalement aux espaces (coupure de mot : keep-all).

En effet, le comportement par défaut de Google Chrome (version 61) est qu'il casse sur les syllabes (je suppose car je ne parle ni ne lis le coréen)

Le paramétrage de word-break : all, semble annuler ce comportement et mettre des retours à la ligne uniquement sur les espaces blancs.

0voto

Heidi Points 21

word-break: keep-all; Je l'ai corrigé. J'ai ajouté ceci si l'utilisateur visualise le site en coréen spécifiquement.

word-break: keep-all; -> "Les sauts de mots ne doivent pas être utilisés pour les textes en chinois/japonais/coréen (CJK). Le comportement des textes non CJK est le même que celui de la valeur 'normale'" ( https://www.w3schools.com/cssref/css3_pr_word-break.asp )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X