想法是在用户和内容(图像,视频,帖子)之间建立标记系统 有点像SO上的标记系统,有问题。
我喜欢SO上的成就系统,这意味着经过一定的积分 用户可以开始制作他/她自己的标签。我的系统的想法相同
我当前的表设计看起来像
Tag UserTag User
--- ------- ----
tag_id user_id user_id
tag_name tag_id username
usage_count ....
它让我想到了这个问题。
问如何为不同语言的内容设置标记系统。
当我使用自动填充时,我搜索标签名称,例如用户正在键入的字符。
E.g。我有一个英文名为“nightclub”的标签
如果他们正在标记翻译将是“discothèque”
,那么还要用法语或者没有办法做到这一点,只是让人们用不同的语言制作标签。
答案 0 :(得分:2)
是的,你可以。但请注意,一种语言中的某些单词可能在其他语言中有多个翻译。
您可能有一个languages
表,一个只有tags
的{{1}}表,以及一个包含tag_id
,language_id
,tag_id
的多个表格。 {1}}。
就像我之前所说的,当人们想要进行他们自己的语言允许的改进时,你可能会遇到问题,但其他语言则不然。为了留在法国的例子,谈论面包,你可能有'长棍面包','flûte','recuit','demi-recuit'等标签,而英语只有一个'面包'标签。然后标签之间的映射显着复杂。但这是一个普遍的翻译问题,不仅仅是在编程领域。
关于您的评论:折衷方案是添加“tag_related_to_tag”表,允许在标签之间进行耦合。用户可以使用不同的语言判断哪个标签与哪个标签相关。这样可以在最小的复杂性下实现最大的灵活性,但是需要一些管理(否则你可能会让恶意用户在标签之间产生意想不到的关系,从而破坏了系统的实用性。)
这实际上是我想要实现的网站,它有一个非常狭窄的领域(坚忍的哲学)和目标公众。如果该领域过于宽泛,则可能效率很低。
答案 1 :(得分:1)
有趣的问题!只是一些想法(不是一个完整的解决方案,更多是一组问题):
一种简单的方法是使用内部标记ID,并为每种语言提供本地化名称。
如果尚未创建本地化名称,您可能需要以“主要”语言(通常是英语)或标记创建的语言回退到标记名称。
翻译需要由用户完成并且知道两种语言,自动翻译是IMO不精确的。那么可能是用户权限(必须奖励?)来重命名标签。
所有语言是否相同,或者标签是否仅以大多数用户理解的“主要语言”创建,并且单独添加了翻译? (后者看起来不太公平,但可能会让事情变得更容易)
您需要能够合并标签 - 例如当用户独立创建“discothèque”和“nightclub”时。
我是否只看到以我的语言提供的标签,或者我是否可以看到其他语言中没有翻译为我语言的标签?我可以搜索其他语言的标签吗?
标记名称是否包含在查询字符串中?当我将其发送给美国的朋友时,我的德语查询链接是否会正常工作?
如何解决有关标签含义的争议?示例:最接近德语的翻译是夜总会的“Nachtclub”和“discothèque”的“Diskothek”。但在德语中,“Nachtclub”与“Diskothek”完全不同(尽管存在一些重叠)。