再次,关于MQL的本地化 - 页 7

 
DDFedor >> :

总的来说,我想说的是,官僚们根本就不参与编程,金融家们也不认为制作自己的 "报告 "是编程,所有这些都是为了说明,我们应该在任何产品中区分 "用户 "和 "程序员"。现在我们谈论的是为程序员提供的环境,而 "会计师-金融家",作为用户,在这个话题中根本没有代表性,还有那些不打开元编辑器的交易员......。他们对 "俄罗斯 "或 "非俄罗斯 "不屑一顾......


现在我明白了。我可以给你举一个我以前同事的例子(已经)。他们学习1C的速度更快,因为它是俄语,几乎和用户一样。
 
做一个通过 "定义 "来定义所有东西的模块有难度吗?而且会有俄语或其他语言的节目。
 
yuripk >> :
做一个模块,通过 "定义 "来定义一切,这很难吗?而且会有俄语或其他语言的编程。

并不困难,这里的代码编译起来没有错误

#define цикл for 
#define целое int 
#define Печать Print

void OnStart()
{
   целое Сумма = 0;
   цикл ( целое Номер = 0; Номер < 10; Номер++) Сумма += Номер;
   Печать (  Сумма );
}

问题是,它是什么:未完成的bugfitch还是将继续如此? 因为它可能会发生,所以有一天开发人员得到他们的检查,他们决定禁止在定义中使用保留字:(

 
ForexTools >> :

这并不难,以下是编译时没有错误的代码

问题是它是什么:一个未完成的bugfix还是会一直这样下去? 因为它可能会发生,所以有一天开发人员会被检查,并决定禁止在定义中使用保留字 :(

从技术上讲,定义是解析过程中使用的一组特定的语言标记。

禁止任何令牌或任何一组令牌是没有意义的。
唯一重要的是,我们不能允许对语言语句(if、for、return...)进行覆盖。
现在我们也在考虑将 "系统 "语言功能从可能的定义列表中排除。

 
ForexTools >> :

这并不难,以下是编译时没有错误的代码

问题是它是什么:一个未完成的bugfix还是会一直这样下去? 因为它可能会发生,所以有一天开发人员会被检查,并决定禁止在定义中使用保留字 :(

如果他们的预处理器按照Sisch原则工作,就不会出现检查。

我唯一不确定的是,Cish预处理程序会给这个宏起一个俄文名字。:)

 
mql5 >> :


唯一重要的是,语言运算符不能被重写(if、for、return...)。

当然它们不能被重新定义,但它们可以被 "重命名"(在我的例子中,for被一个循环重命名)。

 
mql5 >> :

从技术上讲,定义是语言中的一组令牌,在解析过程中被插入。

禁止任何令牌或任何一组令牌是没有意义的。
唯一重要的是,我们不能允许对语言语句(if、for、return...)进行覆盖。
我们现在正在考虑将 "系统 "语言功能从可能的定义列表中排除。


禁止--我们的公民所习惯的东西。
 
yuripk >> :


禁止--我们的公民已经习惯了的东西。

不知道这是什么意思....


>>所以你可以。

#define если "тут можно написать что угодно и это всё вставиться в код при встрече 'если'"


这不是做这件事的方法。

#define if "нельзя ключевые слова переопределять - ошибка компиляции"


可能无法做到这一点。

#define Sleep "на данный момент так написать можно, но скорее всего это мы прикроем - будет ошибкой при компиляции"

 

下面是帮助中的一个选择。欢迎任何想要的人试用;)

// Типы данных			
                                    
#define		логический      bool			
#define		символ          char			
#define		бзсимвол        uchar			
#define		короткий        short			
#define		бзкороткий      ushort		
#define		целый           int			  
#define		бзцелый         uint			
#define		длинный         long			
#define		бздлинный       ulong			
#define		двойной         double		
#define		плавающий       float			
#define		цвет            color			
#define		датавремя       datetime	
#define		строка          string		
#define		перечисление    enum			
#define		структура       struct		
#define		класс           class			
#define		безтипа         void			
		 			                          
                                    
// Спецификаторы доступа			
					                          
#define		константа       const			
#define		личный          private		
#define		защищенный      protected	
#define		публичный       public		
#define		виртуальный     virtual		
					                          
                                    
// Классы памяти			
                                    
#define		внешний         extern		
#define		статический     static		
#define		ввод            input			
		 			                          
					                          
// Операторы			
					                          
#define		поумолчанию     default		
#define		размер          sizeof		
#define		новый           new			  
#define		удалить         delete		
#define		если            if			  
#define		иначе           else			
#define		выбор           switch		
#define		вариант         case			
#define		выполнить       do			  
#define		пока            while			
#define		цикл            for			  
#define		прервать        break			
#define		продолжить      continue	
#define		возврат         return		
			                              
					                          
// Прочие			
					                          
#define		ложь            false			
#define		этот            this			
#define		истина          true			
                          
                          
 
ForexTools >> :

下面是帮助中的一个选择。如果你愿意,你可以试试;)

你也可以把它放到mqh-check中,把inlude的调用直接写进模板。

你在寻找什么?