添加标签以在多语言网站中发布的最佳方法是什么?

时间:2016-04-12 22:09:24

标签: php web tags multilingual

抱歉我的英文。

我想在我的网站上添加多语言标签。一切都好。在下面我添加图片请看这个。但我的方法并不好。

第一个问题是Forexample“php”标签在每种语言中都是相同的。如果标签是“学生”,则这与其他语言不同。例如土耳其语中的“öğrenci”。因此,如果我想在帖子中计算php标签,我必须使用额外的SQL查询。

第二个问题在下面我有3个db表。在管理标记字段中,如果在每个字段中没有相同数量的标记,则添加错误,因为在tagslang表中,对于一个帖子的每种语言都使用相同的tag_id。如果我将3个标签添加到一种语言但将2个标签添加到其他语言,则其他最后一列将变为空。

第三个问题是如果网站中的网址如“en / articles / tag / student”,如果我将语言网址切换为土耳其语“tr / articles / tag / student”这是问题,因为土耳其语中没有像学生一样的标签。但是2个标签具有相同的tag_id。因此,如果我将URL“en / articles / tag / student”更改为“tr / articles / tag / ogrenci”,这也是一个问题,因为可能在其他帖子中,学生标签除了“ogrenci”之外还有不同的土耳其语翻译。所以我必须使用限制1。

db table tag有 - > tag_id

db table taglangs有 - > ID,TAG_ID,语言,名称

db table tagassign has - > class(表示Post模型类),post_id,tag_id

也许还有其他一些问题。但我认为在多语言网站中添加标签与我的方法不同。

Adminstration

1 个答案:

答案 0 :(得分:0)

不建议对每种语言使用多关键字。你永远不应该根据每个lang写你的后端。 multilang的Onr方法(不是最好的)是为每种语言使用文件配置。它像字典。然后在每个文件配置中,您只需存储包含该语言单词的变量。假设你有en和fr。然后创建像lang.php

这样的文件
$student = array( 'en' => '...', 'fr' => '...' );

对于你的用户,你可以使用这种方法。现在,对于您的查询,只需使用英文名称。用英语设置英语中的每一个东西并用英语从db中检索数据。然后例如你的一个标签名是学生,所以你在文件lang.php中你有学生变量女巫你可以通过以下方式访问它的土耳其语:

${*student*}['tr']

现在你的标签是土耳其语。