【问题标题】:What's the best approach for adding tags to post in multilanguage site?在多语言网站中添加标签以发布的最佳方法是什么?
【发布时间】:2016-04-12 22:09:24
【问题描述】:

对不起我的英语。

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

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

第二个问题在下面,我有 3 个数据库表。在管理标签字段中,如果每个字段中的标签数量不同,我会添加错误,因为在标签语言表中,每个帖子的每种语言都有相同的 tag_id。如果我将 3 个标签添加到一种语言,但将 2 个标签添加到其他语言,那么最后一列将变为空。

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

db 表标签有 -> tag_id

db table taglangs 有 -> id,tag_id,language,name

db table tagassign has -> class(意思是Post model class), post_id, tag_id

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

Adminstration

【问题讨论】:

  • 也许可以做到只有一组标签可以用不同的语言显示,而不是每种语言都有一组不同的标签。
  • 这个怎么样。英语的新闻标签,俄语的novosti,土耳其语的haberler。这是其他语言的新闻翻译。我怎样才能在一组 o 标签中做到这一点?
  • 有一个表,其中包含带有每种语言翻译的标签,然后将该表中的行与您要标记的任何内容相关联。
  • 而且也许在某些帖子中相同的标签名称在其他帖子中有不同的翻译。因为一些英语单词在俄语中有多个翻译取决于帖子文本。
  • 使用标签表仍然可以。选择标签时,您只需显示每个标签的所有翻译,以便选择正确的标签。

标签: php web tags multilingual


【解决方案1】:

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

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

对于您的用户界面,您可以使用此方法。现在对于您的查询,只需使用英文名称即可。用英语设置每件事并用英语从数据库中检索数据。然后,例如,您的标签名称之一是学生,因此您在文件 lang.php 中有学生变量女巫,您可以通过以下方式访问其土耳其语:

${*student*}['tr']

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

【讨论】:

  • 我使用 yii2 框架。语言系统的标准和基本方法。问题不是这个。我必须在项目中使用多个关键字。如果有人在英语中添加了多个标签,那么它必须有其他语言的翻译。如果它的国际词我必须为其他语言添加相同的标签。
  • 我明白了。那么当有人添加一些标签时,你如何翻译它们呢?手动??
  • 还有你在哪里存储翻译?
  • lang.php 建议很好,但我知道哪个用户添加了哪个标签?我怎样才能翻译所有这些。但是如果主动让用户添加标签,这对我来说很容易
  • 翻译所有标签并不容易。您可以使用 google translate 之类的服务来翻译每个标签,然后将标签保存在 lang.php 中,或者更容易将其保存在 json 中并将其存储在 db 中,然后在每次启动时加载 json 文件,然后从中读取相应的标签。
猜你喜欢
  • 2010-10-04
  • 2019-01-10
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多