【发布时间】:2010-08-18 02:36:28
【问题描述】:
我正在计划构建一个可以灵活翻译成多种语言的cakephp应用程序(需要翻译网页界面和表格内容)。我的问题是当向系统添加新语言时,所有表格都必须为表单中的每个字段提供翻译。
这是我的数据库架构。
创建表fields (
id int(11) NOT NULL AUTO_INCREMENT,
table_id int(11) 默认为空,
name varchar(50) 默认为空,
language_id int(11) 默认“1”,
label varchar(255) 默认为空,
type varchar(20) 默认为空,
required tinyint(1) 默认为空,
properties varchar(100) 默认为空,
主键 (id)
) ENGINE=MyISAM AUTO_INCREMENT=13 默认字符集=latin1;
#
languages 表的结构:
#
创建表languages (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) 非空,
state tinyint(1) 非空,
label varchar(100) 默认为空,
default tinyint(1) 默认为空,
主键 (id)
) ENGINE=MyISAM AUTO_INCREMENT=14 默认字符集=latin1;
#
tables 表的结构:
#
创建表tables (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) 默认为空,
description varchar(100) 默认为空,
主键 (id)
) ENGINE=MyISAM AUTO_INCREMENT=3 默认字符集=latin1;
#
translations 表的结构:
#
创建表translations (
id int(11) NOT NULL AUTO_INCREMENT,
field_id varchar(50) 非空,
value varchar(255) 非空,
record_id int(11) 默认为空,
主键 (id)
) ENGINE=MyISAM 默认字符集=latin1;
#
fields 表的数据(限制 0,500)
#
插入fields(id、table_id、name、language_id、label、type、required、properties)值
(1,1,'name',1,'Nombre','text',NULL,NULL),
(2,1,'name',2,'Name','text',NULL,NULL),
(3,2,'name',1,'Name','text',NULL,NULL),
(4,2,'country_id',1,'Country','select',NULL,NULL),
(5,2,'address',1,'Address','rich',NULL,NULL),
(6,2,'tel',1,'电话','文本',NULL,NULL),
(7,2,'fax',1,'Fax','text',NULL,NULL),
(8,2,'网站',1,'网站','文本',NULL,NULL),
(9,2,'email',1,'Email','text',NULL,NULL),
(10,2,'图片',1,'图片','上传',NULL,NULL),
(11,2,'to',1,'To country','select',NULL,NULL),
(12,2,'latlng',1,'经纬度','text',NULL,NULL);
提交;
#
languages 表的数据(限制 0,500)
#
插入languages(id,name,state,label,default)值
(1,'En',0,'English',NULL),
(3,'Fr',0,'France',NULL),
(2,'Es',1,'西班牙语',NULL);
提交;
#
tables 表的数据(限制 0,500)
#
插入tables(id,name,description)值
(1,'国家','国家'),
(2,'大使馆','大使馆');
当我想向例如使馆表添加新记录时,表单助手需要根据语言表中激活的语言数量有许多名为“名称”的字段。
请帮忙。
谢谢你
【问题讨论】:
标签: cakephp