MQL 현지화에 대해 다시 한 번

 

주제는 제가 지나가면서 제기한 것입니다 . 이 아이디어는 MQL에서 러시아어(또는 기타) 언어로 Expert Advisors를 완전히 작성할 수 있도록 하는 것입니다. 이 같은:

 Логический Четный;

Цикл ( целое НомерПозиции = 1; НомерПозиции <= ДлиннаБуфера; НомерПозиции++ )
{
   Если ( Остаток (НомерПозиции, 2) = 0 ) тогда Четный = Инстина; иначе Четный = Ложь;
  ....   
}

그러한 기회가 매우 유용한 것임을 압니다. 의심하거나 의미가 없다고 생각하는 사람(유능한 프로그래머는 천사의 언어를 알아야 한다고 말했기 때문에) 저는 단 한 가지 이의로 대답할 것입니다. 그렇다면 터미널에 많은 언어 인터페이스 설정 파일이 있는 이유는 무엇입니까? 다른 언어로 번역된 도움말? ;)

내가 파서의 메커니즘을 상상하는 한, 컴파일러가 러시아어로 텍스트를 컴파일할 수 있도록 완전히 "번역"하려면 for, long, ....와 같은 예약어 문자열의 "목록"이 포함되어야 합니다. 컴파일러 코드 문자열 "for"에서 "loop" 등으로 텍스트를 교체하는 것으로 충분합니다. 그 후에는 모든 것이 이전과 같이 작동해야 합니다. 원래의 영어 단어와 현지화된 변형의 대응 목록은 이제 터미널 메뉴 항목에 대해 수행되므로 파일에서 읽을 수 있습니다.

여기에서 갈퀴가 가능합니다. 영어 단어가 있는 시스템 텍스트가 이러한 현지화된 러시아어 텍스트에 삽입됩니다. 컴파일러가 두 옵션을 모두 인식하는 경우에만 피할 수 있습니다. 저것들. 영어 단어가 있는 플레이트 옆에 컴파일러가 두 "철자"를 모두 처리할 수 있도록 다른 현지화된 버전의 문자열을 넣어야 합니다.

여기에서 두 번째 갈퀴가 가능합니다. 여러 언어로 된 조각에서 텍스트를 수집해야 할 때입니다. 그러나 그들은 또한 제거 가능합니다. 일반적으로 모든 것은 프로그래머가 작동하는 하나의 언어로 현지화됩니다. 따라서 언어의 혼합이 먼저 영어로 번역될 수 있습니다(별도의 유틸리티 또는 메뉴 항목 ME 사용). 그리고이 모든 소시지를 직접 만드십시오.

가장 극단적인 경우 컴파일러에 #substitute source dest 지시문을 만들 수 있습니다. 이 지시문은 단순히 컴파일하기 전에 문자열 소스를 dest로 바꾸고 결과를 컴파일합니다. 그런 다음 TheXpert 에서 제안한 대로 현지화를 수행할 수 있습니다.


나는 그 일을 해결할 수 있다는 것을 알고 있다. 나는 그러한 개선이 컴파일러 코드의 급진적인 재작성을 수반하지 않기를 바랍니다. 나는 개발자들이 그러한 아이디어에 맞서 싸우기 위해 최선을 다할 것이라고 거의 확신하며 그들의 동기를 매우 잘 이해합니다. 하지만 지금은 MQL5가 아직 베타 단계에 있지만 그런 칩을 내장할 수 있다는 희미한 희망이 있어서 이 문제를 다시 제기하기로 결정했습니다. 당신이 생각하고 거래자 및 고객과 의사 소통하는 볼륨에서 당신의 모국어?

 
예를 들어 1C에서는 처음에는 러시아어로 프로그래밍할 수 있었습니다.
 

현지화 부족은 귀하의 언어를 모르는 프로그래머가 귀하의 코드를 이해하는 데 도움이 됩니다. 따라서 반대합니다.

 
lea >> :

현지화 부족은 귀하의 언어를 모르는 프로그래머가 귀하의 코드를 이해하는 데 도움이 됩니다. 따라서 반대합니다.

모든 것이 훨씬 더 흥미 롭습니다.


동일한 지시문이 변수를 포함한 모든 것에 대한 이름을 설정하지 못하게 하는 것은 무엇입니까?

그런 다음 대용품을 사용하여 손목을 가볍게 치면 기본 영어 버전을 쉽게 얻을 수 있습니다.

그리고 지시어의 기능을 확장함으로써 기존의 현지화 선택을 지원하는 것도 가능합니다.

 
lea >> :

현지화 부족은 귀하의 언어를 모르는 프로그래머가 코드를 이해하는 데 도움이 됩니다. 그러므로 반대.

응. 그런 다음 사람들이 코드를 게시하면 강조 표시 없이 모두 표시됩니다.

그리고 모두는 순진하게 다시 묻습니다.

- 몰라? 거기에 추가로 포함을 다운로드해야 합니다... vasya_localization_v2

그리고 각 현지화에는 고유한 버전이 있습니다.

 
TheXpert писал(а) >>

동일한 지시문이 변수를 포함한 모든 것에 대한 이름을 설정하지 못하게 하는 것은 무엇입니까?

그런 다음 대용품을 사용하여 손목을 가볍게 치면 기본 영어 버전을 쉽게 얻을 수 있습니다.

그리고 지시어의 기능을 확장함으로써 기존의 현지화 선택을 지원하는 것도 가능합니다.

변수 이름을 번역하는 것 외에는 할 일이 없습니다! 소스 코드를 게시하기 위해 사전과 함께 앉아 있지 않고 프로그래밍할 것입니다.

 
IlyaA >> :
예를 들어 1C에서는 처음에는 러시아어로 프로그래밍할 수 있었습니다.

솔직히 말해서 죽였다! 나는 이 "현지인"을 싫어합니다.

오늘 ithappens.ru의 이야기는 다음과 같습니다.


#1497: 애국 포르노 기본

2009년 11월 26일 09:00

평가: 628

80년대 말에 개인용 컴퓨터 D3-28(테이프 녹음기에서 입력), Electronics-60(펀칭 테이프에서 입력), DVK-2(5인치 플로피 디스크에서 360KB 입력)가 나왔습니다. 그리고 여기 우리 부서 중 하나가 3 개의 Iskra PC를 구입했습니다. (수정 번호는 더 이상 기억나지 않습니다.) 이 모든 것은 당과 인민이 외국인에 맞서 투쟁하는 동안 일어났습니다.

따라서이 "Iskra"에서는 러시아어로 BASIC이 이미 플래시되었습니다. 번역은 훌륭했습니다. 입력 - "입력". END가 어떨지 맞춰보세요? 맞습니다. 우리는 끝났습니다.

그것이 우리가 이것을 "불꽃"이라고 부르는 방법입니다. "소개 - 마무리." 사실, 그들은 우리와 3 개월 동안 일하고 죽었습니다 (죽은?)이 포르노 베이직과 함께 제조 공장으로 보내졌고 그들은 우리에게 결코 돌아 오지 않았습니다.

 

나는 오랫동안 키릴 문자를 써왔고 어쩐지 예약어도 번역되어야 한다고 생각하지 않았다(습관은 제2의 천성이다).

코드를 읽으면 즉시 "if"의 값이 보이지만 초안에 개요를 작성하고 "if"를 넣으면 의미를 잃기 시작합니다(습관은 제2의 천성입니다).

그리고 결국 예약어는 영어가 이해하는 것처럼 직접적인 의미가 없으므로 영어가 아닌 사람들은 "if"가 "if"가 아니고 "if"가 연산자임을 이해하는 이점이 있습니다.

 
Azzx >> :

솔직히 말해서 죽였다! 나는 이 "현지인"을 싫어합니다.


동료, 당신은 무엇입니까? 왜 즉시 죽이는가? 그들을 모두 죽이면 당신은 혼자 남게 될 것입니다. :)
 
IlyaA >> :


동료, 당신은 무엇입니까? 왜 즉시 죽이는가? 그들을 모두 죽이면 당신은 혼자 남게 될 것입니다. :)

이를 위해 - 순교를 위해 - 그들은 지옥에서 할인을받을 것입니다! 그래서 모든 것이 내 자선 활동 때문입니다 ... :)

 

Urain писал(а) >>

그리고 결국 예약어는 영어가 이해하는 것처럼 직접적인 의미가 없으므로 영어가 아닌 사람들은 "if"가 "if"가 아니고 "if"가 연산자임을 이해하는 이점이 있습니다.

영어 사용자는 장점이 아니라 단점이 있습니다. 내 머리 속에서 프로그램을 스크롤할 때 "만약"이 아니라 가장 추상적인 개념이기 때문입니다.