Возможно вы искали: 'Assassin's Creed 2: Th...'

May 15 2025 19:18:58
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Oб одном подходе к русификации Ted (rus ed)

Oб одном подходе к русификации Ted (rus ed)

Ключевые слова: rus, ed, (найти похожие документы)

_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Victor Wagner 2:5020/219.27 26 Oct 99 00:25:18
Subj : Oб одном подходе к русификации Ted
________________________________________________________________________________
From: vitus@wagner.rinet.ru (Victor Wagner)

Есть такой симпатичный редактор Ted. Точнее, не редактор а
WordProcessor. Маленький (относительно, всего мегабайта два), с
достаточно мощными возможностями вставления картинок и создания таблиц,
небогатым но достаточным шрифтовым оформлением.

Hо самым главным его полезным свойством является то, что он использует
в качестве формата файлов rtf. Да, тот самый rtf, в котором всякий
более-менее разумный пользователь MS-Office, не желающий прослыть
распространителем вирусов и показать всему миру свои диалапные пароли,
рассылает по почте документы сделанные в Word. Впрочем, главная ценность
rtf не в этом. Его ценность в том, что _получив_ по почте документ rtf
пользователь Windows видит иконку Word, кликает на ней и видит Word с
документом внутри.

Поэтому идея использовать Ted для писания документов для начальства
кажется весьма привлекательной.

(для тех, кто не знает, ted берется с http://www.nllgg.nl/Ted)

Русификация этого редактора большой проблемы вроде бы не представляет.
Подсуньте ему русские Type-1 шрифты, напишите ему xfonts.dir для
отображения постскриптовских имен в X-овые и все Ok.
Xkb он понимает с ходу. Одно но - у меня локаль ru_RU.KOI8-R, а
пользователи Windows по каким-то странным причинам все больше cp1251
используют.

Подумав, я пришел к выводу, что буде система у меня в KOI8, то общаться
с X-ами (как по части ввода, так и по части вывода) и с подсистемой
печати Ted должен в KOI8, а вот писать и читать rtf-ы, раз уж этот
формат изобретен фирмой Microsoft - в cp1251. Поэтому самое место для
встраивания перекодировки - блок чтения записи rtf.

Подумав еще немного, я понял, что проблема эта будет стоять не только
перед русскими, но скажем и перед чехами, у которых будет другая пара
кодировок, и, следовательно данная фича должа быть конфигурируема.


В результате родился нижеследующий patch.
Он работает следующим образом - появляется новый ресурс
Ted.alternateCharset, который можно прописать в Ted.ad, или в свой
домашний .Xdefaults Этот ресурс содержит имя файла, в котором хранится
таблица перекодировки из системной кодировки в желаемую кодировку
rtf-файла в том же формате, что и таблицы кодировки в Russian Apache.

Включенная в патч koi-win.tab просто-таки оттуда и выдрана.
Если имя файла начинается со слэша, то путь абсолютный. Иначе -
относительно PKGDIR (в дефолтной установке это /usr/local)

Если этот ресурс задан, файл найден и формат его правильный, то все
rtf-ы будут читаться и писаться с перекодировкой. Dixi.


- --- ted-2.6.orig/Ted/docBuf.h
+++ ted-2.6/Ted/docBuf.h
@@ -1207,4 +1207,6 @@

extern int docSubstitutePageNumber( BufferItem * bi,
int pageNumber );
+extern int * charsetInTable;
+extern int * charsetOutTable;
# endif
- --- ted-2.6.orig/Ted/docRtf.h
+++ ted-2.6/Ted/docRtf.h
@@ -1313,3 +1313,8 @@
const RtfControlWord * rcw,
int arg,
RtfReadingContext * rrc );
+
+extern void docRtfLoadCharsets (char *charset_name);
+extern int *charsetInTable;
+extern int *charsetOutTable;
+int charsetRecode(int c, int *table);
- --- ted-2.6.orig/Ted/docRtfUtil.c
+++ ted-2.6/Ted/docRtfUtil.c
@@ -380,6 +380,8 @@
b[2]= '';

sscanf( b, "%x", &c );
+ if (c>127)
+ c=charsetRecode(c,charsetInTable);
}
goto defaultCase;
default:
@@ -963,3 +965,45 @@
const unsigned char * text,
int len )
{ return 0; }
+
+int* charsetInTable=NULL;
+int* charsetOutTable=NULL;
+void docRtfLoadCharsets (char *charset_name) {
+ FILE *f;
+ int native,alternate,i;
+ char buffer[256];
+ if (*charset_name=='/') {
+ /* absolute path */
+ strncpy(buffer,charset_name,255);
+ buffer[256]=0;
+ } else {
+ strcpy(buffer,PKGDIR);
+ strcat(buffer,"/");
+ strcat(buffer,charset_name);
+ }
+ fprintf(stderr,"Loading charset %sn",buffer);
+ f=fopen(buffer,"r");
+ if (!f) return;
+ charsetInTable=(int *)calloc(256,sizeof(int));
+ charsetOutTable=(int *)calloc(256,sizeof(int));
+ for (i=0;i<256;i++) {
+ charsetInTable[i]=charsetOutTable[i]=i;
+ }
+ while (!feof(f)) {
+ fgets(buffer,256,f);
+ if (sscanf(buffer,"%i %i",&native,&alternate)==2 &&
+ 0<=native && native<256 && 0<=alternate && alternate<256) {
+ charsetInTable[alternate]=native;
+ charsetOutTable[native]=alternate;
+ }
+ }
+ fprintf(stderr,"charset loaded successfully. InTable=%xn",(int)
charsetInTable);
+}
+
+int charsetRecode(int c, int *table) {
+ if (table) {
+ return table[c];
+ } else {
+ return c;
+ }
+}
- --- ted-2.6.orig/Ted/docRtfWrite.c
+++ ted-2.6/Ted/docRtfWrite.c
@@ -65,6 +65,7 @@
{
static char hexdigits[]= "0123456789abcdef";

+ c = charsetRecode(c,charsetOutTable);
sioOutPutCharacter( '\', sos );
sioOutPutCharacter( ''', sos );
sioOutPutCharacter( hexdigits[ ( c >> 4 ) & 0x0f ], sos );
- --- ted-2.6.orig/Ted/tedMain.c
+++ ted-2.6/Ted/tedMain.c
@@ -49,6 +49,7 @@
char * tarDocTableMenuText;
char * tarHelpMenuText;
char * tarAppHelpFileName;
+ char * tarAlternateCharset;
} TedAppResources;

# define xx(x) x,x
@@ -116,6 +117,9 @@
{ xx("documentFileName"), XtRString, sizeof(char *),
offsetof(TedAppResources,tarAppHelpFileName),
XtRString, INFODIR "/TedDocument.rtf" },
+ { xx("alternateCharset"), XtRString, sizeof(char *),
+ offsetof(TedAppResources,tarAlternateCharset),
+ XtRString, ""},

};

@@ -233,6 +237,7 @@
if ( dot && ! strcmp( dot, ".rtf" ) )
{
/* 2 */
+ fprintf(stderr,"alternate charset =
'%s'n",TEDResources.tarAlternateCharset);
bd= docRtfReadFile( sis );

sioInClose( sis );
@@ -316,6 +321,10 @@

int forgetName= 0;

+ if (charsetInTable == NULL && TEDResources.tarAlternateCharset
+ && *(TEDResources.tarAlternateCharset)) {
+ docRtfLoadCharsets(TEDResources.tarAlternateCharset);
+ }
if ( tedOpenDocumentFile( ea, &ed->edFormat, &td->tdDocument, &forgetName,
filename, relative, option ) )
{ /*SDEB(filename);*/ return -1; }
@@ -326,7 +335,21 @@

return 0;
}
+/********************************************************************/
+/* Just a wrapper around tedNewDocument in tedDocument.c to get */
+/* access to app resource alternateCharset */
+/********************************************************************/
+static int tedCreateNewDocument ( EditApplication * ea,
+ EditDocument * ed,
+ const char * filename )
+ {

+ if (charsetInTable == NULL && TEDResources.tarAlternateCharset
+ && *(TEDResources.tarAlternateCharset)) {
+ docRtfLoadCharsets(TEDResources.tarAlternateCharset);
+ }
+ return tedNewDocument(ea,ed,filename);
+ }
/************************************************************************/
/* */
/* Display the online manual. */
@@ -1631,7 +1654,7 @@
tedSetPrivateData,
tedMakeDocumentWidget,
tedOpenDocument,
- tedNewDocument,
+ tedCreateNewDocument,
tedSetupDocument,
tedFinishDocumentSetup,
NULL, /* CanSave */
- --- ted-2.6.orig/appFrame/appFont.c
+++ ted-2.6/appFrame/appFont.c
@@ -32,8 +32,9 @@

static EditFontEncoding EditFontXEncodings[]=
{
- { "iso8859", "1" }, /* For Text */
- { "iso8859", "2" }, /* For Text */
+/* { "iso8859", "1" },*/ /* For Text */
+/* { "iso8859", "2" },*/ /* For Text */
+ { "koi8", "r" }, /* For russian text */
{ "adobe", "fontspecific" }, /* Symbol. */
};

- --- ted-2.6.orig/koi-win.tab
+++ ted-2.6/koi-win.tab
@@ -0,0 +1,70 @@
+# koi8-win recoding table for Russian Apache
+# by Dmitry M. Klimoff (dmk@kosnet.ru)
+# With "YO" support
+
+0xe1 0xc0
+0xe2 0xc1
+0xf7 0xc2
+0xe7 0xc3
+0xe4 0xc4
+0xe5 0xc5
+0xf6 0xc6
+0xfa 0xc7
+0xe9 0xc8
+0xea 0xc9
+0xeb 0xca
+0xec 0xcb
+0xed 0xcc
+0xee 0xcd
+0xef 0xce
+0xf0 0xcf
+0xf2 0xd0
+0xf3 0xd1
+0xf4 0xd2
+0xf5 0xd3
+0xe6 0xd4
+0xe8 0xd5
+0xe3 0xd6
+0xfe 0xd7
+0xfb 0xd8
+0xfd 0xd9
+0xff 0xda
+0xf9 0xdb
+0xf8 0xdc
+0xfc 0xdd
+0xe0 0xde
+0xf1 0xdf
+0xc1 0xe0
+0xc2 0xe1
+0xd7 0xe2
+0xc7 0xe3
+0xc4 0xe4
+0xc5 0xe5
+0xd6 0xe6
+0xda 0xe7
+0xc9 0xe8
+0xca 0xe9
+0xcb 0xea
+0xcc 0xeb
+0xcd 0xec
+0xce 0xed
+0xcf 0xee
+0xd0 0xef
+0xd2 0xf0
+0xd3 0xf1
+0xd4 0xf2
+0xd5 0xf3
+0xc6 0xf4
+0xc8 0xf5
+0xc3 0xf6
+0xde 0xf7
+0xdb 0xf8
+0xdd 0xf9
+0xdf 0xfa
+0xd9 0xfb
+0xd8 0xfc
+0xdc 0xfd
+0xc0 0xfe
+0xd1 0xff
+0xb3 0xa8
+0xa3 0xb8

--
Victor Wagner @ home = vitus@wagner.rinet.ru
I don't answer questions by private E-Mail from this address.
--- ifmail v.2.14.os-p7
* Origin: Where is your mouse [/dev/Wagner's home (2:5020/219.27@fidonet)
593 Прочтений •  [Oб одном подходе к русификации Ted (rus ed)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Oб одном подходе к русификации Ted ... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка