什么';这是在多语言网站中添加标签的最佳方法


What's the best approach for adding tags to post in multilanguage site?

对不起我的英语。

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

第一个问题是Forexample"php"标记在每种语言中都是相同的。如果标签是"student",那么其他语言的情况就不同了。例如土耳其语中的"奥兰齐"。因此,如果我想计算帖子中的php标签,我必须使用额外的sql查询。

第二个问题是下面我有3个数据库表。在管理标签字段中,如果每个字段中的标签数量不相同,我会添加错误,因为在标签俚语表中,一篇文章的每种语言都有相同的标签id。如果我向一种语言添加3个标记,但向其他语言添加2个标记,则最后一列将变为空。

第三个问题是,如果网站中的url像"en/articles/tag/staudent",如果我将语言url切换为土耳其语"tr/articles/stag/staurant",这是个问题,因为在类似土耳其文的student中没有标签。但是两个标签具有相同的tag_id。因此,如果我将url"en/articles/tag/staudent"更改为"tr/articles/stag/oregci",这也是一个问题,因为在其他帖子中,student标签可能有不同的土耳其语翻译,而不是"ogrenci"。所以我必须使用极限1。

db表标签具有->tag_id

数据库表taglangs有->id,tag_id,language,name

db表tagassign有->class(表示Post模型类)、Post_id、tag_id

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

管理

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

$student = array( 'en' => '...', 'fr' => '...' );

对于你的ui,你可以使用这个方法。现在,对于您的查询,只需使用英文名称。用英语设置所有事物,并用英语从数据库中检索数据。例如,你的一个标签名是student,所以你在文件lang.php中有一个student变量witch,你可以通过:访问它的土耳其语

${*student*}['tr']

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