Страница 1 из 2

Многоязычный форум: несовместимость кодировок

Добавлено: 03.04.2006 19:56
Dmitri Lytov
Уважаемые форумцы,

несколько дней в форуме провисела моя тема про глюки с именами. Проблему я решил и тему удалил, однако по ходу выявились некоторые более глобальные проблемы.

У меня - многоязычный сайт. Соответственно для нужд своих разноязычных посетителей я и решил создать форум с разделами на разных языках. Увидеть можно здесь:

http://forum.socioniko.net

Однако возникла проблема совместимости кодировок. Дело в том, что локализационные пакеты основаны не на Unicode, а на конкретных национальных кодировках. Соответственно, если человек выбирает себе эстонский интерфейс - искажаются названия тем и сообщения, написанные по-русски. Если выбирает русский интерфейс - то, соответственно, в разделах на европейских языках искажаются всякого рода умлауты и т.д.

С интерфейсом эту проблему ещё как-то можно решить. Я в некоторых локализационных пакетах заменил все умлауты и другие дополнительные европейские буквы на примитивы - ä, õ и т.д. Заработало. К сожалению, номер прошёл только с интерфейсами, но не с сообщениями. Если человек пользуется, например, русским интерфейсом, но пытается написать сообщение по-эстонски, то со специфическими эстонскими буквами получается полная чепуха.

На самом деле, требования у меня скромные. Мне вполне хватило бы, если бы у форума были только русский и английский интерфейсы с кодовой таблицей UTF-8. Но как перегнать пакет русской локализации, а также уже существующие в форуме темы и сообщения, в UTF-8, без их потери?

Добавлено: 03.04.2006 21:02
Гога
UTF-8 должен помочь.

Добавлено: 03.04.2006 22:07
Dmitri Lytov
Гм... я задаю вопрос, как конвертировать символы Windows-1251 в UTF-8, а мне отвечают: UTF-8 должен помочь. Это была шутка, да? :?

Добавлено: 04.04.2006 9:03
Гога
Dmitri Lytov писал(а):мне отвечают: UTF-8 должен помочь. Это была шутка, да?
А... Винда?
Тогда сюда: http://unxutils.sourceforge.net/
Вам нужен GNU recode, хотя остальное тоже интересно :wink:

Ежели вы в Юниксах, то iconv или опять-таки GNU recode.

Добавлено: 04.04.2006 18:27
Dmitri Lytov
Спасибо за информацию, попробую.
Работаю под Виндами.

Добавлено: 25.05.2006 0:42
priestal
А нельзя ли подробнее. Для чайников. Что нужно сделать?

Добавлено: 27.05.2006 14:25
alexenin
mysqldump -p -u(username) (database) --set-charset=utf8 > database.sql

mysql -p -u(username) (database) < database.sql

Проблема с отображением русского языка.

Добавлено: 17.11.2007 6:45
PlusPlus
Здравствуйте.
Я с вопросом к вам.Я создаю форум на русском и латышском языке.Тоесть каждый желающий может выбрать для себя удобный язык при регистрации.Названия главных тем я хочу написать на обеих языках(как было при СССР).Потому что не хочу разделять людей и создавать два отдельных разноязычных форума.Но возникла проблема.Когда ставишь форум на латышский язык,то что написано русским(название тем) проявляется в виде непонятных знаков.Можно конечно зайти в браузере во view - encording и там исправить.НО не все пользователи это знают.Хотелось бы чтобы страница по умолчанию сразу показывала оба языка как полагается.Может кто посоветуе как это сделать?
В поиске искал.Тема такая уже была.Вот ссылка
http://www.phpbbguru.net/community/viewtopic.php?t=8721
,но oтвета я так и не понял.Может кто-то обяснит как это сделать?

Добавлено: 17.11.2007 7:40
rxu
PlusPlus
Ответ в том, что для всех языков должна быть одна и та же кодировка базы данных. Это может быть только UTF-8. Вот в ней и должны быть закодированы данные в БД и языковые файлы, и соответствующее значение должна иметь языковая переменная $lang['ENCODING'].

Добавлено спустя 2 минуты 22 секунды:

Либо пробуйте phpBB3, он уже отвечает этим требованиям.

Добавлено: 17.11.2007 7:41
PlusPlus
Прошу прощения,не могли бы вы обяснить что и как исправить.Я не очень пока что разбираюсь.Это мой первый форум,спросить некого больше,но есть большое желание научится.Самому трудно.

На phpBB3 с сожелению пока нет латышского языка,я у меня форум русско-латышский.

Добавлено: 17.11.2007 23:16
Палыч
PlusPlus писал(а):На phpBB3 с сожелению пока нет латышского языка,я у меня форум русско-латышский.
Зато есть переводчик, свяжитесь с ним
Latviešu
Latvian

Last Updated:
» Nothing uploaded yet
Maintainer:
» kasparsb

Добавлено: 17.11.2007 23:26
PlusPlus
ВЫ читаете мои мысли,я ему как раз уже написал несколько часов назад,но судя по его появлениям на сайте я долго буду ждать.Последнее его появление тут было аж 4 сентября если я не ошибають.Так что тупик.
Неужели никто не знает как с етим боротся когда языки не совмещаются.Ни тут ни на англоязычном формне нет ответа.Более того ,никто на хосте тоже не в курсе.В один голос узнавайте на phpBB,а у кого узнавать то? Тупик какой-то.

Добавлено: 17.11.2007 23:29
Палыч
PlusPlus писал(а): Тупик какой-то.
Никакого тупика.
rxu писал(а):Ответ в том, что для всех языков должна быть одна и та же кодировка базы данных. Это может быть только UTF-8.
Вам нужно изменить кодировку базы данных. И сами данные. Экспорт из базы, смена кодировки, импорт в базу.

Добавлено: 18.11.2007 2:56
PlusPlus
Спасибо за поддержку. Я думал что это тупик. Если вас не затруднит обясните пожалуйста подробнее куда зайти как это сделать.Или хотя бы где об этом почитать.Можно на английском тоже.Но лучше если обясните ВЫ, как для новичка.
Я думаю на самом деле будет полезно это растолковать,потому что я знаю что человек создавший эту тему с этой проблемой так и не справился.И бросил дело.
Еще раз извиняусь за беспокойство,но очень прошу поподробней растолковать где и как изменить эту кодировку.Я новичек в этом деле,но очень хочется научится.Спросить кроме как тут не у кого.
Думаю эта информация будет полезна не только мне.Даже предложил бы ее выложить на сайте.Ну или хотябы на форуме,потому что я не смог найти подробный ответ тут как это сделать.
Просто прошу помощи.Если долго писать могу оставить номер телефона или скыпа или могу позвонить сам.

Добавлено: 18.11.2007 18:53
Палыч
priestal писал(а):А нельзя ли подробнее. Для чайников. Что нужно сделать?
alexenin писал(а):mysqldump -p -u(username) (database) --set-charset=utf8 > database.sql



mysql -p -u(username) (database) < database.sql
Это синтаксис для командной строки UNIX-сервера

Можно через другие инструменты работы с базой данных, phpMyadmin, например.
Можно, в конце концов, просто попросить хостера.