Языки программирования с русским синтаксисом

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Языки программирования с русским синтаксисом » Русский Си и русификация MS Visual Studio 2008 » Русификация Си с помощю препроцессора и #define


Русификация Си с помощю препроцессора и #define

Сообщений 1 страница 4 из 4

1

Возможна русификация всех Си которые позволяют использовать кириллицу в #define.
За основу будет взят перевод Зуева из Интерстрон.
важно чтобы ВСЕ русифицированные таким образом версии Си использовали 1 стандарт перевода операторов.
Это предварительный стандарт для тестирования и внесения исправлений. Ваши замечания по точности перевода + свои соображения - пишите ниже.
Альтернативные переводы наверное можно убрать - все или почти все.
Потом необходимо будет составить такие же файлы для библиотек ... или сделать для них "функции обёртки". что лучше пока не знаю.
PS как изменить подсветку синтаксиса и сделать автоподстановку в MS Visual Studio 2008

Отредактировано rusprog (03-02-2009 13:36:56)

0

2

Код:
// Заголовочный файл для русификации служебных слов Си++
// Его имя должно быть c_rus.h или си.h
// !!! Модификация 2008 года: Русские ключевые слова Си++. Версия от 20 мая 2008 г.
// Cоставлен для проекта http://rus.24bb.ru - Языки программирования с русским синтаксисом
// Версия от 20 мая 2008 г.
// Финальная тестовая версия 0.9
// Разработан на основе идей:
//  * Проект C11 (Е. Зуев, Интерстрон)
//  * Графический язык "Дракон" Графит-ФлОкс - Владимир ПАРОНДЖАНОВ
//  * Язык программирования Глагол 
////////////////////////////////////////////////////////////////////////
//  При модификации учитывалось что:
//  * На понимание алгоритма, уходит гораздо больше времени, чем на на понимание команд
//  (см. Язык Дракон)
//  * Писать программы необходимо на том языке на котором думаешь
//  ** отсюда надо писать русские *.h файлы для библиотек и править переводы их
//  справочных систем
//  * Много синонимов - меньше слов для переменных, функций пользователя
//  * Не надо изобретать правила к которым потом за уши притягивается практика
//  ** сокращений надо избегать но не любой ценой (лог, цел)
//  ** синонимов надо избегать но не любой ценой (правда, да, ложь, нет)
/////////////////////////////////////////////////////////////////////////////  
//  // ИЗМЕНЕНО - 

#define	И        and // ИЗМЕНЕНО
#define и_присв        and_eq
//#define ассем        asm  
#define ассемблер    	asm        // альтернативное 
#define авто        auto    	//ИЗМЕНЕНО
//#define автом        auto	
//#define автоматич    	auto    	// альтернативное 
//#define автоматический    auto    // альтернативное 
//#define автоматическая    auto    // альтернативное 
//#define автоматическое    auto    // альтернативное 
//#define	автоматические    auto    // альтернативное 
#define	бит_и        bitand
#define лог         bool    	// альтернативное
//#define логич        bool    	// альтернативное
//#define логический    	bool    // альтернативное
//#define логическая    	bool    // альтернативное
//#define логическое    	bool    // альтернативное
//#define логические    	bool    // альтернативное
#define прервать    	break
#define вариант        case
#define перехват    	catch
#define символ        char    	 //ИЗМЕНЕНО
//#define сим        	char
//#define симв        char    // альтернативное
//#define символьный    	char    // альтернативное
//#define символьная    	char    // альтернативное
//#define символьное    	char    // альтернативное
//#define символьные    	char    // альтернативное
#define класс        class
#define бит_не        compl
#define конст        const
#define константа    	const    // альтернативное
//#define константный    	const    // альтернативное
//#define константная    	const    // альтернативное
//#define константное    	const    // альтернативное
//#define константные    	const    // альтернативное
#define конст_прив    	const_cast

#define продолжить    	continue //ИЗМЕНЕНО 
#define повторить    	continue //ИЗМЕНЕНО

//#define итерация    	continue
#define проч        default
#define прочие        default    // альтернативное
#define прочее        default    // альтернативное
#define удалить        delete
#define цикл        do
#define выполнить    	do // ИЗМЕНЕНО
//#define двойн        double
//#define двойной        double    // альтернативное
//#define двойная        double    // альтернативное
//#define двойное        double    // альтернативное
//#define двойные        double    // альтернативное
//#define двойн_точн    	double    // альтернативное
#define двойной_точности	double    // альтернативное
#define дин_прив    	dynamic_cast
#define иначе        else
//#define перечисл    	enum
#define перечисление    enum    // альтернативное
//#define явн        	explicit
#define явная        explicit	// альтернативное
//#define явный        explicit	// альтернативное
#define внеш        extern
//#define внешний        extern    // альтернативное
//#define внешняя        extern    // альтернативное
//#define внешнее        extern    // альтернативное
//#define внешние        extern    // альтернативное
#define ложь        false
#define НЕТ        	false       // ИЗМЕНЕНО
#define веществ        float  // ИЗМЕНЕНО
//#define плав        float
//#define плавающий    	float    // альтернативное
//#define плавающая    	float    // альтернативное
//#define плавающее    	float    // альтернативное
//#define плавающие    	float    // альтернативное
#define для        	for
//Необходимо другое слово!!
//#define друж        friend
//#define друг        friend    // альтернативное
//#define дружеств    	friend    // альтернативное
#define дружественный    friend    // альтернативное
//#define дружественная    friend    // альтернативное
//#define дружественные    friend    // альтернативное
#define переход        goto
#define если        if
#define подставл    	inline
//#define подставляемая    inline    // альтернативное
//#define подставляемые    inline    // альтернативное
#define цел        	int
//#define целый        int    	// альтернативное
//#define целая        int    	// альтернативное
#define целое        int    	// альтернативное
#define целые        int    	// альтернативное
#define большое        long
//#define длин        long
//#define длинный        long    // альтернативное
//#define длинная        long    // альтернативное
//#define длинное        long    // альтернативное
//#define длинные        long    // альтернативное
#define меняется        mutable     // ИЗМЕНЕНО	
//#define изменч        mutable
//#define изменчивый    	mutable    // альтернативное
//#define изменчивая    	mutable    // альтернативное
//#define изменчивое    	mutable    // альтернативное
//#define изменчивые    	mutable    // альтернативное
#define область_имён    namespace	//ИЗМЕНЕНО
#define область_имен    namespace	//ИЗМЕНЕНО
//#define область        namespace
#define создать        new    	//ИЗМЕНЕНО
#define НЕ        	not
//#define лог_не    	not
#define не_равно    	not_eq
#define операция    	operator
#define ИЛИ        	or    	 // ИЗМЕНЕНО
//#define лог_или        or
#define или_присв    	or_eq


#define для_себя        private  // ИЗМЕНЕНО
//#define себе        private
//#define скрытый        private    // альтернативное
//#define скрытая        private    // альтернативное
//#define скрытое        private    // альтернативное
//#define скрытые        private    // альтернативное
#define закрытый        protected // ИЗМЕНЕНО
#define для_своих        protected // ИЗМЕНЕНО
//#define своим        protected
//#define защищ        protected	// альтернативное
//#define защищенный    	protected	// альтернативное
//#define защищенная    	protected	// альтернативное
//#define защищенное    	protected	// альтернативное
//#define защищенные    	protected	// альтернативное
#define общий        public    // ИЗМЕНЕНО
#define для_всех        public // ИЗМЕНЕНО
//#define всем        public
//#define доступный    	public    // альтернативное
//#define доступная    	public    // альтернативное
//#define доступное    	public    // альтернативное
//#define доступные    	public    // альтернативное

#define регистр        register    // ИЗМЕНЕНО 
//#define рег        	register
//#define регистровый    	register	// альтернативное
//#define регистровая    	register	// альтернативное
//#define регистровое    	register	// альтернативное
//#define регистровые    	register	// альтернативное
#define тип_прив    	reinterpret_cast
#define возврат        return
#define кор        	short
//#define короткий    	short    // альтернативное
//#define короткая    	short    // альтернативное
//#define короткое    	short    // альтернативное
//#define короткие    	short    // альтернативное
#define со_знаком    	signed
//#define знаковый    	signed    // альтернативное
//#define знаковая    	signed    // альтернативное
//#define знаковое    	signed    // альтернативное
//#define знаковые    	signed    // альтернативное
#define размер        sizeof
#define стат        static
#define статич        static
//#define статический    	static    // альтернативное
//#define статическая    	static    // альтернативное
//#define статическое    	static    // альтернативное
//#define статические    	static    // альтернативное
#define стат_прив    	static_cast
//#define структ        struct
#define структура    	struct    // альтернативное
#define выбор        switch
#define шаблон        template
#define этот        this
#define исключение    	throw
#define контроль    	try
#define тип        	typedef
#define есть_тип    	typeid
#define имя_типа    	typename
//#define совмещ        union
#define совмещение    	union    // альтернативное
#define без_знака    	unsigned
//#define беззнаковый    	unsigned	// альтернативное
//#define беззнаковая    	unsigned	// альтернативное
//#define беззнаковое    	unsigned	// альтернативное
//#define беззнаковые    	unsigned	// альтернативное
//#define использ        using
#define использовать    using    // альтернативное
#define вирт        virtual
#define виртуальный    	virtual    // альтернативное
//#define виртуальная    	virtual    // альтернативное
//#define виртуальное    	virtual    // альтернативное
//#define виртуальные    	virtual    // альтернативное

#define пусто        void  //ИЗМЕНЕНО
//#define пуст        void
//#define пустой        void    // альтернативное
//#define пустая        void    // альтернативное
//#define пустое        void    // альтернативное
//#define пустые        void    // альтернативное
#define ненадеж        volatile
#define ненадежный    	volatile	// альтернативное
#define ненадежная    	volatile	// альтернативное
#define ненадежное    	volatile	// альтернативное
#define ненадежные    	volatile	// альтернативное
#define шсим        wchar_t
#define широкий_симв    wchar_t    // альтернативное
#define широкая_симв    wchar_t    // альтернативное
#define широкое_симв    wchar_t    // альтернативное
#define широкие_симв    wchar_t    // альтернативное
#define пока        while
#define ИЛИ_НЕ        xor         // ИЗМЕНЕНО
//#define искл_или    	xor
#define искл_присв    	xor_eq
///////////////////////////////////////////////////////
// РУСИФИКАЦИЯ ФЦНКЦИЙ БИБЛИОТЕК - НЕ СОРТИРОВАННЫЕ
#define начало main

/////////////////////////////////////////////////////////////////////////////
/// ПРЕПРОЦЕССОР - ПОКА НЕ ПЕРЕВЕДЁН
// #define #макрос #опред #определить
// В данном случае предпочтение было отдано существительным, в первую
// очередь, потому, что это позволило избежать сокращений и получить краткие и
// выразительные названия.
// Заметим, что "макрос" - корректная форма единственного числа для данного понятия.
// Именно такой перевод английского macro был принят в отечественной
// профессиональной литературе, начиная с 70-х гг. (см., например, М.Кемпбел-Келли,
// "Введение в макросы": Пер. с англ./ Под ред. Э.З.Любимского.- М.: Сов. Радио,
// 1978). Общеупотребительный в устной речи (иногда проникающий и в печатные
// тексты) вульгаризм "макро" возник только в последнее время.
// defined есть Если директива #ifdef переводится как
// #если_есть, то некоторую ее модификацию естественно перевести
// аналогично. Пример: #если ( есть М1 || есть М2 ) …
// #elif #инес #иначе_если #ин_если #ин_ес
// Перевод директивы #elif как #инес выглядит наиболее кратко и вместе с тем
// читабельно. Кроме того, именно так традиционно переводится служебное слово
// elif в тех языках программирования, в которых оно имеется (например, в Алгол-68).
// #else #иначе Было бы странно, если бы директивы #if и #else были бы переведены как-либо
// иначе, имея ввиду одноименные служебные слова самого языка.
// #endif #конес #конец_если #кон_если #конесли #илсе
// Директива #endif переведена как #конес,- в духе #если и #инес.
// "Стильный" перевод как #илсе - перевернутой начальной директивы, сам
// по себе очень привлекательный (и используемый, в частности, для
// аналогичного служебного слова в Алголе-68), был отвергнут, так как в данном случае
// он противоречил бы общему стилю данных предложений.
// #error #ошибка
// #if #если
// #ifdef #если_есть #еслиесть #если_опред
// #ifndef #если_нет #еслинет #если_не_опред
// Предлагаемый перевод #ifdef
// #ifndef как, соответственно,
// #если_есть и #если_нет,представляется наиболее точным из возможных: директива "срабатывает", если
// ранее уже было (еще не было) определение макроса с указанным именем.
// #include #вставка #вставить #внести Здесь также использовано
// существительное; быть может, перевод #вставить так же нагляден и точен, но
// для единообразия (чтобы директивы определения макроса, его отмены и
// использования представлялись существительными) была выбрана указанная форма.
// #line #строка
// #pragma #прагмат #прагма Практически единственный возможный перевод. Вариант #опция, в принципе,
// тоже допустим, но он несет оттенок жаргона, используемого в устной речи. К предложенному варианту перевода
// полностью относится комментарий для директивы #макрос (имея ввиду распространенность вульгарного перевода
// "прагма").
// #undef #отмена #отмен #отменить
// Предпочтение было отдано
// существительным; см. #define.
// __DATE__ __ДАТА__
// __FILE__ __ФАЙЛ__
// __LINE__ __СТРОКА__
// __TIME__ __ВРЕМЯ__
// __cplusplus __сиплюсплюс
// __STDC__ __СТАНДСИ__ __СТДСИ__ 
// Имена предопределенных макросов либо имеют совершенно однозначный и краткий
// перевод, либо представляют собой неудобопроизносимые сокращения,
// возникшие исторически по произволу создателей языков Си и Си++.
// Поэтому не следует надеяться исправить дело, пытаясь ввести для них 
// некие "красивые" эквиваленты на русском языке

.

0

3

В связи с выходом версии перевода операторов Компонентного Паскаля/Оберона на русский язык. Будет внесена корректива в этот файл. в течении месяца.

0

4

XOR наверное ИСКЛЮЧАЮЩЕЕ_ИЛИ, а This лучше ЭТО - более универсальный вариант.
Плавающий тоже как-то не звучит. Представьте, что я объявлю переменную как плавающую. Это что-то вроде свойства объекта, а не тип.

0


Вы здесь » Языки программирования с русским синтаксисом » Русский Си и русификация MS Visual Studio 2008 » Русификация Си с помощю препроцессора и #define


форум на 24bb Создать форум бесплатно