Я планирую создать приложение CakePHP, которое можно гибко переводить на многие языки (необходимо перевести веб-интерфейс и содержимое таблиц).Моя проблема в том, что когда в систему добавляются новые языки, вся таблица должна содержать перевод для каждого поля в форме.
Вот моя схема базы данных.
CREATE TABLE fields
(id
int (11) NOT NULL AUTO_INCREMENT, table_id
int (11) DEFAULT NULL, name
varchar (50) DEFAULT NULL, language_id
int (11) DEFAULT '1', label
varchar (255)) DEFAULT NULL, type
varchar (20) DEFAULT NULL, required
tinyint (1) DEFAULT NULL, properties
varchar (100) DEFAULT NULL, ПЕРВИЧНЫЙ КЛЮЧ (id
)) ДВИГАТЕЛЬ = MyISAM AUTO_INCREMENT = 13 CHARS по умолчанию= latin1;
#
Структура таблицы languages
:
#
CREATE TABLE languages
(id
int (11)NOT NULL AUTO_INCREMENT, name
varchar (255) NOT NULL, state
tinyint (1) NOT NULL, label
varchar (100) DEFAULT NULL, default
tinyint (1) DEFAULT NULL, ПЕРВИЧНЫЙ КЛЮЧ (id
)) ENGINE = MyISAM AUTO_INCREMENT = 14 CHARSET ПО УМОЛЧАНИЮ = latin1;
#
Структура для таблицы tables
:
#
CREATE TABLE tables
(id
int (11) NOT NULL AUTO_INCREMENT, name
varchar (50) DEFAULT NULL, description
varchar (100) DEFAULT NULL, ПЕРВИЧНЫЙ КЛЮЧ (id
)) ДВИГАТЕЛЬ = MyISAM AUTO_INCREMENT = 3 DEFAULT CHARSET = latin1;
#
Структура таблицы translations
:
#
CREATE TABLE translations
(id
int (11) NOT NULLAUTO_INCREMENT, field_id
varchar (50) NOT NULL, value
varchar (255) NOT NULL, record_id
int (11) DEFAULT NULL, ПЕРВИЧНЫЙ КЛЮЧ (id
)) ENGINE = MyISAM DEFAULT CHARSET = latin1;
#
Данные для таблицы fields
(LIMIT 0,500)
#
INSERT INTO fields
(id
, table_id
, name
, language_id
, label
, type
, required
, properties
) ЗНАЧЕНИЯ (1,1, «имя», 1, «Nombre», «текст», NULL, NULL), (2, 1, «имя», 2, «имя», «текст», NULL, NULL), (3,2, «имя», 1, «имя», «текст», NULL, NULL), (4,2, 'country_id', 1, 'Country', 'select', NULL, NULL), (5,2, 'address', 1, 'Address', 'rich', NULL, NULL), (6,2, 'тел., 1, «Телефон», «текст», NULL, NULL), (7,2, «факс», 1, «факс», «текст», NULL, NULL), (8,2, «веб-сайт»), 1, «Веб-сайт», «текст', NULL, NULL), (9,2,' email ', 1,' Email ',' text ', NULL, NULL), (10,2,' picture ', 1,' Picture ',' upload ',NULL, NULL), (11,2, «до», 1, «В страну», «выбрать», NULL, NULL), (12,2, «latlng», 1, «Широта и долгота», «текст», NULL, NULL);
COMMIT;
#
Данные для таблицы languages
(LIMIT 0,500)
#
INSERT INTO languages
(id
, name
, state
, label
, default
) ЗНАЧЕНИЯ (1, 'En', 0, 'English', NULL), (3, 'Fr', 0, «Франция», NULL), (2, «Es», 1, «Espanol», NULL);
COMMIT;
#
Данные дляtables
таблица (LIMIT 0,500)
#
INSERT INTO tables
(id
, name
, description
) ЗНАЧЕНИЯ (1, «страны», «страны»), (2, 'посольства', 'посольство');
когда я хочу добавить новую запись, например, в таблицу Embassy, то помощнику по формам нужно иметь много полей с именем "Name" в соответствии с числомязыки активируются в языковой таблице.
пожалуйста, помогите.
спасибо