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


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

但是对于日语而言,并不是将整个单词推到下一行,而只是其中的一部分。我已经尝试将word-wrap设置为break-word和normal,但没有任何改变(使用日文文本)。

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


8523
2018-03-09 17:04


起源



答案:


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

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

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

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


10
2018-04-04 08:04



我想不出更好的答案。 - Madara Uchiha♦
拿起一本日本书或杂志,注意文字是如何包装的。你会发现单词在中间打破以换行到下一行是正常的。试图强制它遵循类似英语的规则,何时包装文本并不自然。 - Kristin
对齐怎么样?假设我有文字“デモンストレーションのお申し込み”并且在お有一个换行符然后申し込み在它下面居中。它是否更常见于左对齐? - nfgallimore
github.com/google/budou - nfgallimore


答案:


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

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

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

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


10
2018-04-04 08:04



我想不出更好的答案。 - Madara Uchiha♦
拿起一本日本书或杂志,注意文字是如何包装的。你会发现单词在中间打破以换行到下一行是正常的。试图强制它遵循类似英语的规则,何时包装文本并不自然。 - Kristin
对齐怎么样?假设我有文字“デモンストレーションのお申し込み”并且在お有一个换行符然后申し込み在它下面居中。它是否更常见于左对齐? - nfgallimore
github.com/google/budou - nfgallimore


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

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


5
2017-10-04 00:40





尝试设置css属性

line-break:strict;

一探究竟 这里


1
2018-03-09 17:17



谢谢你的回答,但不幸的是问题仍然存在(没有改变)。 - Rodrigo Bezerra
@Rodrigo Bezerra抱歉,我帮不了你。 - nickmoriarty
虽然这是一个很好的尝试:) - Madara Uchiha♦


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

#box { word-spacing: 30000px; }

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


-1
2017-10-05 13:10



不适用于CJK角色。只有字母数字。 - Joep Beusenberg