2

我正在研究 wordpress 上的多语言功能。每篇文章或页面将包含 2 个语言版本,我需要使用标签将它们分开,并让我的 JavaScript 知道根据当前语言选项拉哪个部分。

我可能在编辑器中有这样的东西?

[english]
English Content
[/english]
[chinese]
中文内容
[/chinese]

好的,所以我的问题是如何有一个函数让 javascript 识别 [] 和其中的文本?或者这可以在wordpress API中完成吗?因为我在文章中看到过使用这个的各种插件。

4

2 回答 2

2

我建议您不要创建自己的标签,而是使用带有lang属性的普通 html 元素:

<div lang="en">
   English Content
</div>
<div lang="zh">
   中文内容
</div>

这样您就可以使用标准的 css 和 javascript 来处理内容,如下所示:

*[lang=zh]{
   display:none;
}

然后你可以在选择中文时通过javascript切换显示。

*如果可能,应避免使用通用选择器,并替换为更具体的选择器。

或者,如果您不想用 html-stuff 打扰您的客户,让他们编写这些伪标签[english] / [chinese]并在保存到具有相应语言标签的 div 后将它们转换。

用于捕获此类标签内容的简单正则表达式(不是防故障的!):

/\[english\](.*?)\[\/english\]/  // -> content will be in first capturegroup

只是为了好玩,我编写了一些小例子,这样的替换是如何工作的:

将自定义标签替换为具有语言 ID 的 div

于 2012-08-24T08:17:06.283 回答
1

这是一种 RegEx 的做法:http: //jsfiddle.net/neuroflux/fFzJ4/17/

太多代码放在这里:)

于 2012-08-24T08:32:53.680 回答