查找生成文本内容的CSS?

时间:2013-04-19 04:07:05

标签: css localization internationalization

我正在开发一个国际化/本地化Web应用程序的项目。我正在研究CSS构造可以插入或生成文本内容。

我知道::before and ::after pseudo-elements并且基于MDN content CSS property文档,我认为这就是全部。我应该注意其他结构吗?

element:after  { style properties }  /* CSS2 syntax */

element::after { style properties }  /* CSS3 syntax */

另外,我知道我有一些图像(和图像精灵),其中包含background-url构造中使用的英文单词。

编辑:我原来的问题并不清楚,但我在整个应用程序中重构了硬编码的语言字符串,并试图找到CSS可能存在的位置。我对服务器和客户端生成的视图充满信心,对文本内容的图像不太感兴趣,并且不清楚CSS构造可能包含英文可显示文本。

1 个答案:

答案 0 :(得分:2)

你在问题​​中提到的是,如果我们不计算CSS3 Generated and Replaced Content Module,那么CSS必须生成文本内容,这是2003年的工作草案。草案使content属性适用于普通元素也是如此,这样你就可以替换元素内容,而不仅仅是添加内容(所以你可以拥有.greeting:lang(en) { content: "Hello world!" } .greeting:lang(es) { content: "¡Hola, mundo!" })。但这只在Opera中实现。

使用CSS进行本地化的一种更现实的方法是将所有语言变体放在HTML文档中作为具有lang属性的不同元素,并在CSS中进行选择,例如。

<style>
[lang=es] [lang=en], 
[lang=en] [lang=es] 
  { display: none; }
</style>
<body lang=en>
<p lang=en>Hello world!</p>
<p lang=es>¡Hola, mundo!</p>

然后,您只需更改lang元素上body属性的值即可更改可见文字的语言。

这种方法存在一些重要缺陷,因此我基本上将此描述为显示 CSS不是本地化的答案。这是您可以获得的最佳方式,并且它并不好。对于网页,您不希望为搜索引擎提供包含内容中混合语言的页面。对于应用程序,JavaScript是一个更好的工具。

另一方面,本地化为样式提供了一些特定的challenges,例如文本耗尽,因为某些翻译比视觉设计师预期的长两倍。