Topic: Русская локализация

Уважаемые пользователи Nibbleblog, если у вас есть какие либо замечания или пожелания, по поводу локализации, напишите об этом здесь.

Re: Русская локализация

В файле локализации от 'last_update'=>'02/02/2014',
в строке 194 $_LANG['YOU_HAVE_A_NEW_COMMENT'] = 'У вас новый коменнтарий'; - правильно комментарий

http://ru.wiktionary.org/wiki/%D0%BA%D0 … 0%B8%D0%B9

Re: Русская локализация

dozornuy wrote:

В файле локализации от 'last_update'=>'02/02/2014',
в строке 194 $_LANG['YOU_HAVE_A_NEW_COMMENT'] = 'У вас новый коменнтарий'; - правильно комментарий

http://ru.wiktionary.org/wiki/%D0%BA%D0 … 0%B8%D0%B9

http://nblang.nibbleblog.com/download/v … /ru_RU.bit

Исправлено, спасибо.

Re: Русская локализация

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

Блог хорош, никуда не денешься, потому и выбрал. Но вот с локализацией возникли сложности.

Я привык сидеть на win-1251, даже под линуксом, просто потому, что у меня накопилось довольно много текстов в этой кодировке. Для начала я поискал, нельзя ли где изменить кодировку в настройках и расстроился, поняв, что UTF-8 жестко вшит в софт. Я могу, конечно, попытаться убрать эту привязку руками, ибо все, что мне надо будет сделать - это перекодировать несколько файлов, заменить тэг кодировки и понять, что и где делает функция utf8_encode. Но лучше я это оставлю на потом, если не будет решения попроще.
Гораздо проще конвертить текст при записи в win-1251, а при чтении - обратно. Я бы попытался найти, где в xml прописывается  encoding="UTF-8, и места, где записи читаются и записываются, и, ,наверное, справился бы.
Да даже и фиг с ним, от меня не убудет конвертить все на диске.
Но... Это все было бы хорошо, если бы в файлах базы действительно сохранялся бы тот самый utf-8, о котором идет речь. Однако все плохо.

Вот так выглядит строка на русском в utf-8 при просмотре из локали СР1251:
'Выберите эту опцию, если вы хотите выделить публикацию'
(взято из languages/ru_RU.bit )
При просмотре почти любым браузером или умным просмотрщиком оно сконвертится само.

А вот так выглядит строка на русском в файле поста:
установлен и работает.</p><p>Начните публикации из панелÐ

Несмотря на то, что кодировка xml поименована как utf-8, никто это так не опознает и не в состоянии сконвертировать.

Вот этот сервис: http://www.online-decoder.com/ru опознает кодировку как ISO-8859-1, которая вообще нигде в софте не упоминается, и о существовании которой я уже давно забыл. И что мне с ней делать, я не знаю.

Я могу допустить, что это - глюк моего хостинга, но меня вводит в сомнение то, что весь остальной софт ведет себя с кодировками правильно.

Это были факты.

Теперь пожелания:

В идеале я хотел бы иметь возможность выбирать кодировку русского, включая кодировку записей базы..

В качестве паллиатива меня устроит, если кодировка файлов будет соответствовать заголовку.

В порядке немедленной помощи я с благодарностью приму указания, что мне надо изменить руками в файлах блога, .htaccess или конфиге PHP (теоретически могу попытаться напрячь админа) чтобы  иметь win-1251 или, в крайнем случае,  честный utf-8.

Заранее благодарен.

Re: Русская локализация

В базе хранятся строку с символами ISO-8859-1, кодированные с UTF-8. При чтении и записи в базу происходит кодирование и декодирование в файле nbxml.class.php, используются функции utf8_decode и utf8_encode, первый конвертирует строку с символами набора ISO-8859-1, кодированными в UTF-8, в однобайтные символы ISO-8859-1, второй кодирует строку ISO-8859-1 в UTF-8. Т.е. вам придется добавить дополнительное преобразование кодировки, например с помощью iconv или mbstring. Также использовать дополнительное кодирование в файлах

  • db_categories.class.php

  • db_comments.class.php

  • db_notifications.class.php

  • db_pages.class.php

  • db_posts.class.php

  • db_settings.class.php

  • db_tags.class.php

  • db_users.class.php

Пример:

iconv("ISO-8859-1", "Windows-1251", $text);
и
mb_convert_encoding ($String ,"ISO-8859-1" , "Windows-1251" );

Re: Русская локализация

А спасибо!

7 (edited by efialt 18-01-2015 12:52:41)

Re: Русская локализация

А если я тупо перепишу и переопределю функции utf8_decode и utf8_encode, этого не будет достаточно?

Re: Русская локализация

В какой файл мне надо вставить функции, чтобы они были определены во всей системе?