[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Перевод базы в другие языки
Эли4ка
Ребята а скажите,вот у меня есть большая БД с различными данными(названиями категорий),они на русском языке..а можно как нибудь автоматизировать и перевести на другие языки вроде английского ,французского и др?



Спустя 53 минуты, 15 секунд (30.04.2011 - 15:03) quickxyan написал(а):
я думаю можно, но все же не факт, что все правильно переведется)

Спустя 14 минут, 13 секунд (30.04.2011 - 15:17) Эли4ка написал(а):
quickxyan но помоги хоть как-нидь ведь столько трудов..

Спустя 19 минут, 40 секунд (30.04.2011 - 15:37) quickxyan написал(а):
та я не знаю как именно это сделать, просто подумал, что впринципе возможно:
1. вытаскиваем данные с БД
2. переводим каждую строчку(наверное надо какой-то переводчик подключить)
3. аписываем в новую БД

думаю как-то так

Спустя 1 час, 4 минуты, 29 секунд (30.04.2011 - 16:41) sergeiss написал(а):
Моё мнение - если качественно и автоматически, то никак. Если просто перевести надо, то делай так, как quickxyan написал. Только с небольшим уточнением: записывай не в новую БД, а в таблицу той же БД smile.gif Еще лучше - в колонку в той же таблице, где были данные. Одна колонка для русских названий, другая для английских, третья для французских... Но идентификатор у них будет одинаковый для каждой строки.

Спустя 2 часа, 2 минуты, 34 секунды (30.04.2011 - 18:44) Mirexzpalich написал(а):
Ну... думаю можно через курлы отправлять на гугл транслэйт и парвсить перевод =), остается вопрос в скорости загрузки.... Но, можно кешировать.... А еще лучше.... при создании новой записи, сразу ее отправлять на переводчик, и в базу, паралельно записывать переводы распространненых зыков =).... Идея вроде кул... Давайте разовьем. Думаю, многоим может пригодиться....

Спустя 45 минут, 5 секунд (30.04.2011 - 19:29) liw написал(а):
Можно конечно, автоматически, - но не издевайтесь над людьми которые потом будут это читать. (остаётся вариант, что на самом деле это никому не нужно и только что бы галочку поставить, тогда да - автоматом)

Спустя 4 минуты, 53 секунды (30.04.2011 - 19:34) ИНСИ написал(а):
Цитата
Давайте разовьем. Думаю, многоим может пригодиться....

Мне стало интересно это предложение и задание, решил сделать и вуаля, готовый скрипт для Эли4ка :)

header("Content-type: text/html; charset=utf-8");

function getTranslatedText($lang, $langTo, $text) {

if(get_magic_quotes_gpc()) $text = stripslashes($text);
$text = rawurlencode($text); // кодируем

$url = 'http://ajax.googleapis.com/ajax/services/language/translate'; // формируем запрос на Google
$ch = curl_init($url); // инициализируем сессию
curl_setopt($ch, CURLOPT_HEADER, 0); // заголовки не нужны
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // возвращать результат, а не выводить его в stdout
curl_setopt($ch, CURLOPT_POST, 1); // метод отправки POST
curl_setopt($ch, CURLOPT_POSTFIELDS, 'v=1.0&q=' . $text . '&langpair=' . $lang . '%7C' . $langTo); // данные запроса
$result = curl_exec($ch); // выполняем запрос

// обрабатываем ошибки

if( curl_errno($ch) != 0 ) {
return 'CURL_error: ' . curl_errno($ch) . ', ' . curl_error($ch);
};

curl_close($ch); // закрываем сессию
$result = json_decode($result, true); // раскодируем строку
return $result['responseData']['translatedText']; // возвращаем текст перевода

}

$realLang = 'ru'; // с какого языка
$strText = 'Введите ваше имя'; // Сам текст, который надо перевести
$langs = array('en' => 'Английский','nl' => 'Голландский','el' => 'Греческий','de' => 'Немецкий'); // Языки, на которые необходимо перевести текст

foreach($langs as $key => $data) {
$translatedText = getTranslateText($realLang, $key, $strText);
echo $data . " => {$translatedText} <br />";
}

Спустя 4 часа, 56 минут, 34 секунды (1.05.2011 - 00:30) Mirexzpalich написал(а):
velbox
Единственное, в некоторых ситуациях скрпт может будет выполняться более 30с... Не есть гуд... Я вот думаю по-очереди переводить....

Спустя 10 часов, 1 минута, 2 секунды (1.05.2011 - 10:31) Basili4 написал(а):
Если переводить такие вещи как категории. Тут нужен надмозг. Гугл не справится одно слово может переводится различными вариантами. Гугл их и предлагает а ,что подходит решает чел.

Спустя 3 часа, 30 минут, 37 секунд (1.05.2011 - 14:02) Эли4ка написал(а):
а вот так можно сделать?
INSERT INTO country VALUES ('BO','Боливия','Bolivia');
?а то мне гугл транслейт не подходит но velbox спасибо что дали скрипт.

Спустя 1 час, 57 минут, 13 секунд (1.05.2011 - 15:59) Mirexzpalich написал(а):
Basili4
Конешно, ведь не все коту масло =)

Спустя 3 часа, 48 минут, 21 секунда (1.05.2011 - 19:47) ИНСИ написал(а):
Mirexzpalich скрипт можно переделать по разному. Имею в виду допустим сделать через ajax, а там будет иконка погрузки и в скрипте установить sleep... Я к тому, что можно довести до ума.

Вообще - перевод через гугл, это не идеал и не очень круто, но лучше чем ничего smile.gif

Спустя 29 минут, 32 секунды (1.05.2011 - 20:17) sergeiss написал(а):
velbox - ты говоришь о "динамическом" переводе, а мне кажется, что ТС хочет один раз перевести и не трогать. Так что делать тут автоматизацию не имеет смысла.

Наверное, вопрос больше в технической реализации ВЫВОДА разных языков. Это вопрос к ТС smile.gif

Спустя 9 часов, 41 минута, 22 секунды (2.05.2011 - 05:58) Эли4ка написал(а):
sergeiss да мне нужно сделать так (БД)
INSERT INTO country VALUES ('BO','Боливия','Bolivia');
если русский человек то ему на русском,если англичанин то на английском..а массивы с языками писать не охота, ведь БД очень большая

Спустя 2 часа, 11 минут, 7 секунд (2.05.2011 - 08:10) ИНСИ написал(а):
sergeiss можно просто один раз пройтись по всем записям, перевести, обновить данные в Таблицы и все будет гуд smile.gif

Спустя 2 часа, 6 минут, 20 секунд (2.05.2011 - 10:16) Эли4ка написал(а):
velbox
а как я написала так можно делать с БД?

Спустя 19 минут, 35 секунд (2.05.2011 - 10:35) Mirexzpalich написал(а):
Эли4ка
Ты лучше сразу структуру БД.. т.е. таблиц, чито тебе надо перевести(добавить или изминить...)покажи... Так проще будет и совет дадут вернее...

Спустя 51 минута, 30 секунд (2.05.2011 - 11:27) Эли4ка написал(а):
Mirexzpalich
вот для сокращенного вида(1),русское название(2),английское название(3)
INSERT INTO country VALUES ('BO','Боливия','Bolivia');

Спустя 3 минуты, 20 секунд (2.05.2011 - 11:30) Mirexzpalich написал(а):
Эли4ка
Все отлично, работать будет =)

Спустя 17 минут, 12 секунд (2.05.2011 - 11:47) Эли4ка написал(а):
Mirexzpalich
а как мне их по отдельности вызывать?и сколько таких параметров я могу записать?

Спустя 6 часов, 4 минуты, 33 секунды (2.05.2011 - 17:52) killer8080 написал(а):
Цитата (Эли4ка @ 2.05.2011 - 11:47)
а как мне их по отдельности вызывать?и сколько таких параметров я могу записать?

добавляем новую запись с русским текстом
INSERT INTO `country` (`text_label`, `text_ru`, `text_en`) VALUES ('BO','Боливия',NULL);

обновляем поле с английским текстом
UPDATE `country` SET `text_en`= 'Bolivia' WHERE `text_label`='BO';

количество языковых полей не ограничено.
P.S. имена полей (`text_label`, `text_ru`, `text_en`) привёл условно.

Спустя 13 часов, 57 минут, 56 секунд (3.05.2011 - 07:50) Эли4ка написал(а):
killer8080
то есть в общем запись должна выглядеть так
INSERT INTO `country` (`text_label`, `text_ru`, `text_en`) VALUES ('BO','Боливия',NULL);UPDATE `country` SET `text_en`= 'Bolivia' WHERE `text_label`='BO';
верно7

Спустя 1 час, 16 минут, 25 секунд (3.05.2011 - 09:06) killer8080 написал(а):
Эли4ка
я понял, что вопрос в том, как последовательно добавить сначала то, что есть, а позже перевод (когда он будет готов). Если все данные готовы сразу, то нет смысла ничего обновлять, всё делается запросом "INSERT".

PS а вы что вручную с базой работаете? Или пишите скрипт?

Спустя 4 часа, 44 минуты, 13 секунд (3.05.2011 - 13:51) Эли4ка написал(а):
killer8080
я базу пишу с нуля так что инсертом врядли.А можно спросить-как импортировать базу которая весит 100мб в phpmyadmin ?

Спустя 2 часа, 17 минут, 59 секунд (3.05.2011 - 16:09) killer8080 написал(а):
Цитата (Эли4ка @ 3.05.2011 - 13:51)
я базу пишу с нуля так что инсертом врядли.


Непонял unsure.gif а это тогда что:
INSERT INTO `country` (`text_label`, `text_ru`, `text_en`) VALUES ('BO','Боливия',NULL);

Цитата (Эли4ка @ 3.05.2011 - 13:51)
А можно спросить-как импортировать базу которая весит 100мб в phpmyadmin ?

Нужно иметь доступ к php.ini, изменить настройки
post_max_size, upload_max_filesize и возможно memory_limit, если нет, то в нете полно разных скриптов для создания и загрузки бэкапов.

Спустя 2 часа, 53 минуты, 30 секунд (3.05.2011 - 19:02) Mirexzpalich написал(а):
Эли4ка
Просто импортируй, потом добавишь еще одно(или несколько полей) поле и забъешь его (их).... Думаю так проще будет
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.