Как перевести интерфейс с utf8 на другую кодировку.

Ответить
mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Как перевести интерфейс с utf8 на другую кодировку.

Сообщение mnk »

Вот сделал, может кому пригодиться (на примере utf8). База MYSQL 5 -остается в utf8.
1. Правим файл /usr/abils/libexec/config.pl

Код: Выделить всё

#For MySQL 5 and highter
$conf{dbcharset}='utf8';

Код: Выделить всё

$conf{MAIL_CHARSET}='utf8';
$conf{default_language}='russian';
$conf{default_charset}='utf8';
2. Файл /usr/abills/Abills/XML.pm строка ~577

Код: Выделить всё

my $CHARSET=(defined($attr->{CHARSET})) ? $attr->{CHARSET} : 'utf-8';
3. Файл /usr/abills/Abills/defs.conf строка ~38

Код: Выделить всё

$lang_charset='utf-8';
4. Файл /usr/abills/Abills/HTML.pm сторока ~98

Код: Выделить всё

$self->{CHARSET}=(defined($attr->{CHARSET})) ? $attr->{CHARSET} : 'utf-8';
5. Спомощью команды iconv перекодируем файлы в директории /usr/abils/language/, а также файлы usr/abills/Abills/defs.conf и /usr/admin/cgi-bin/admin/index.cgi Например, для файла russian.pl

Код: Выделить всё

iconv -futf8 -tutf8 russian.pl -orussian.pl1
mv russian.pl1 russian.pl 
И поменять в них $CHARSET=" windows-1251" на $CHARSET=" utf8", хотя работает и без этого.
Ну вот вроде и все.
Пожелание для ~AsmodeuS~ , что бы все, что связано с другими языками, лежало в одном месте /usr/abills/language

core
Сообщения: 32
Зарегистрирован: Пт июн 29, 2007 9:14 am

Сообщение core »

Спасибо. Помогло ;)

core
Сообщения: 32
Зарегистрирован: Пт июн 29, 2007 9:14 am

Сообщение core »

~AsmodeuS~ поправил код для работы с разными кодировками. Теперь если у Вас база в UTF-8 нужно всего-лишь:

1. /usr/abils/libexec/config.pl

#For MySQL 5 and highter
$conf{dbcharset}='utf8';

Код:
$conf{MAIL_CHARSET}='utf8';
$conf{default_language}='russian';
$conf{default_charset}='utf-8';

Обратите внимание на написание utf8 и utf-8 )

2. Перекодировать файлы языков в /usr/abills/language/, /usr/abills/Abills/defs.conf и /usr/abills/cg-bin/admin/index.cgi как описано выше. Асмодеус пообещал эту процедуру автоматизировать.

Лишние языки можно отключить в defs.conf

З.Ы. В некоторых модулях которые добавляют функционал в вэб интерфейс нужно тоже перекодировать файлы.

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

2) Конвертирование словарей

Код: Выделить всё

#!/bin/sh

  ICONV="iconv";
  BASE_CHARSET="utf8";
  OUTPUT_CHARSET="utf8";

  #Convert lang files
  ${FIND} ${WRKSRC}/language -name "*.pl" -type f -exec ${ICONV}  -f${BASE_CHARSET} -t${OUTPUT_CHARSET} {} -o{}.bak `mv {}.bak {}` \;

  #Convert modules lang files
  ${FIND} ${WRKSRC}/language -name "lng*.pl" -type f -exec ${ICONV} -f${BASE_CHARSET} -t${OUTPUT_CHARSET} {} -o{}.bak `mv {}.bak {}` \;

  echo "Convertation finishing...";

okmnbv
Сообщения: 4
Зарегистрирован: Вт янв 11, 2011 5:41 pm
Контактная информация:

Re: Как перевести интерфейс с utf8 на другую кодировку.

Сообщение okmnbv »

Пробовал и как тут написано и как тут - viewtopic.php?f=2&t=3952
И еще много как пробовал, измучил и mysql и web интерфейс абиллса и httpd и себя. Весь изгуглившись и от безысходности начал пробовать свои смелые, но порой лишенные смысла варианты. В итоге помогло это:
Везде в конфиге абиллса пишут делать так (да и сам конфиг изначально такой) -

Код: Выделить всё

#For MySQL 5 and highter (cp1251, utf8)
$conf{dbcharset}='utf8';

$conf{MAIL_CHARSET}='windows-1251';
$conf{default_charset}='windows-1251';
Я сделал так и все заработало -

Код: Выделить всё

$conf{dbcharset}='utf-8';

$conf{MAIL_CHARSET}='utf-8';
$conf{default_charset}='utf-8';
============================================================
Чуть позже выяснилось, при таком раскладе не работают задачи по крону:
*/5 * * * * root /usr/abills/libexec/billd -all
1 0 * * * root /usr/abills/libexec/periodic daily
1 1 * * * root /usr/abills/libexec/periodic monthly

поправляюсь, в конфиге абиллса (/usr/abills/libexec/config.pl) надо так:

Код: Выделить всё

$conf{dbcharset}='';
Тогда и кодировка норм и в кроне все работает.

Ответить