динамическая модель перевода в cakephp - PullRequest
0 голосов
/ 18 августа 2010

Я планирую создать приложение 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" в соответствии с числомязыки активируются в языковой таблице.

пожалуйста, помогите.

спасибо

1 Ответ

0 голосов
/ 18 августа 2010

Вы пробовали Перевести поведение ? Найдите книгу "Практические проекты CakePHP". Там есть глава «Перевод историй», которая может быть вам полезна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...