首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库中存储Joomla组件的翻译版本

在数据库中存储Joomla组件的翻译版本
EN

Stack Overflow用户
提问于 2014-02-27 08:50:12
回答 2查看 98关注 0票数 1

我目前正在为Joomla3.x开发我的第一个MVC组件。总之,我有点纠结于数据库中的语言/翻译问题。

我的问题是,我需要存储来自后端的用户生成的内容的翻译内容。例如,有人以德语输入一个新项目(存储在数据库中),并需要用另一种语言进行翻译。如何在Joomla实现这一点?当其他语言都相同时,我不喜欢为每一种不同的语言生成一个新项目。

我想到了一个表"item“和一个具有这种结构的表"item_language”(为了查看而对其进行了严格的简化):

项目

代码语言:javascript
复制
id PRIMARY INT
price DOUBLE(4,2)

item_language

代码语言:javascript
复制
itemid PRIMARY INT
language PRIMARY CHAR(5)
name VARCHAR(50)

item_language中,我想存储不同的翻译版本。在language字段中将有区域代码(例如。)识别语言。

我的问题:

  • 如何在后端显示不同的翻译版本?
  • 这是正确的数据库模型吗?

任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-06 10:26:31

我找到了一种方法来处理我需要的东西。

谢谢Valentin Despa为我指明了正确的方向:-)。

这里是整个过程(简化的验证和省略的准确步骤):

  • models/forms/site.xml中的表单字段定义为普通形式。
  • views/site/tmpl/edit.php中,添加自编码Javascript (基于jQuery)来处理数据库中以JSON形式以多种语言存储内容的字段。
    • 克隆原始表单元素并修改所需的属性(id、name、.)只显示定义语言的特殊版本。作为内容-从原始字段、内容和显示中提取所需语言的JSON。
    • 用Javascript隐藏原始字段,并将定制版本附加到DOM中。

  • 之后,在tables/site.php中,我使用JInput读取动态生成的内容,并通过生成JSON并保存到数据库,将原始字段构建在一起。

效果和预期的一样。

票数 0
EN

Stack Overflow用户

发布于 2014-02-27 10:15:48

你真的为Joomla的第一个组件找到了一个很好的任务!

相当通才的回答:

  • 数据库模型似乎是正确的,。或者,您可以用JSON对语言数据进行编码,但这可能会使以后的查询操作变得困难。这样,您只能使用一个表。
  • 据我所知(如果您使用JModel / JTable来操作数据)不能直接这样做,因为JTable实际上只用于操作单个表。

你能做什么:

  • 用于编辑:绘制一种以图形方式表示此数据的方法(供您的用户查看并编辑这个关系),并将这些数据(语言文本作为数组)发布到JModel。在模型中,您可以维护所需的关系,并使用JTable保存数据。
  • 查看(不编辑)不应该是一个问题,它将是一个简单的连接。

如果您愿意在github上创建一个基本组件,我甚至可以帮助您使用JModel / JTable。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22063359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档