在HTML和CSS中,如何正确地创建日文文本分隔线?

时间:2011-03-09 17:04:59

标签: html css unicode internationalization word-wrap

我正在用英文和日文写一个简单的段落,只使用HTML和CSS。英文文本通常会断行(当一个单词不再适合某行时,它会被推到下一行)。

但是对于日语来说,并没有一个词被推到下一行,而只是它的一部分。我已经尝试将自动换行设置为断字和正常,但没有任何变化(使用日文文本)。

如何用日语翻译成下一行,就像用英语一样?

6 个答案:

答案 0 :(得分:10)

英语用空格分隔单词,日语则不用。

日语中的字符是否构成单词取决于上下文。在许多情况下,寻找某些语法(假名)粒子可以用来分隔单词 - 但这甚至不能接近可靠。

基本上,您需要一本日语词典/理解该语言来识别单词的开始和结束位置 - 浏览器不知道如何执行此操作。

或者,如果您知道单词的开头和结尾,则可以将每个单词包装在一个范围内 - 然后使用CSS确保每个跨度在不适合时整个换行到新行。

答案 1 :(得分:6)

日语在打破文本时遵循特定的规则。他们被称为禁则处理(kinsoku shori)。 Here是解释规则的链接。规则主要涉及特殊字符。看看任何受欢迎的日本网页,你会看到多字符(假名和汉字)字经常分开。我经常看到です在行间分开。

<强>更新 我最近偶然发现了this工具。我还没有尝试过,但理论是坚实的。如果有人希望用日文文本改进换行符,这可能是一个很好的解决方案。

答案 2 :(得分:0)

尝试设置css属性

line-break:strict;

查看here

答案 3 :(得分:0)

我不是专门研究日语的人,因此很难告诉我包装是否正确,但是我自己必须解决此问题,word-break: keep-allwhite-space: nowrap似乎都可以解决对我来说是个问题,所以也许值得尝试。

答案 4 :(得分:0)

在浏览器足够聪明以进行该语言的动态语义分析之前,只有两种选择:

1 /了解足够的语言,以便能够将语义元素归为它们自己的坚不可摧的DOM元素。像这样(没有换行符):

<span class="el">私は</span>
<span class="el">キッチンで</span>
<span class="el">パンを</span>
<span class="el">食べました。</span>

然后在CSS中,使用类似.el { display: inline-block; }的名称。您可能只想在标题和重要的文本上执行此操作,因为这可能会影响可访问性(即屏幕阅读器如何解释文本)。其他不便之处是1 /您需要了解文本才能知道在何处添加块,2 /这显然仅适用于静态文本(即使在这种情况下,它仍然是一个手动而艰苦的过程)。

2 /请使用为您进行分组的工具。可能是在客户端,例如TinySegmenter(对于我的口味,IMHO细分了太多),或者在服务器端,例如{{3} },它们使用Budou和ML分析您的句子。缺点(至少对于Budou而言)是1 /您需要Python(我认为我在某个地方看到了Node.js端口),2 /它不是免费的。

希望这会有所帮助!

答案 5 :(得分:-2)

这是一个肮脏的解决方案:

#box { word-spacing: 30000px; }

https://stackoverflow.com/a/18891911/979474