교과서 등의 소스 코드를 번역해야합니까?


16

몇 주 전에 저의 수업은 Real World Haskell이라는 책을 포르투갈어로 번역하도록 배정되었습니다. 텍스트와 주석을 번역 할 때 강사가 제안한대로 코드를 번역해야하는지 궁금해지기 시작했습니다. 예를 들면 다음과 같습니다.

data BookInfo = Book Int 문자열 [문자열]
              쇼를 유도

될 것이다

data InfoLivro = Livro Int 문자열 [문자열]
               쇼를 유도

포르투갈어로 된 소프트웨어 관련 서적을 읽지 않았으므로 이것이 일반적인 관행인지 아닌지, 이런 식으로 수행해야하는지 여부는 알 수 없습니다. 결국 코드는 언어 혼합입니다 (아마도 Haskell의 예제는 좋지 않은 것 type CadeiaDeCaracteres = String입니다. 따라서 당신이 얼마나 열심히 노력하는지는 중요하지 않습니다. 당신은 일종의 기본 영어 단어로 독자의 이전 경험에 의존해야합니다.

이것을 알면 코드 번역의 요점을 실제로 알지 못합니다. 코딩 초기에 배우기 때문에 보편적 언어로 작성해야합니다. 그럼에도 불구하고 주변 텍스트 (예를 들어, 주석과 책 자체의 텍스트)를 번역해야한다면이 문제에서 무엇이 가능하고 가능한가? 어떻게해야하는지에 대한 지침을 제공해 주시겠습니까?


9
강사는 이것으로부터 무엇을 배우기를 기대합니까? 그렇습니다. Haskell에 대해 조금 배울 수도 있지만 대부분 영어 번역 기술을 테스트 한 것 같습니다. 그는 미래의 수업을위한 번역을 원합니까? 그리고이 수업의 모든 학생들의 시간을 낭비하는 것이 그것을 성취하는 방법이라고 생각합니까? 내기 : 당신이 배울 것은 번역이 전문가가 가장 잘 수행하는 전문 분야 인 이유 입니다.
Dori


@Dori 나는 완전히 동의한다. 슬프게도, 그것이 CS 분야에서 적어도 내 대학이 작동하는 방식입니다.
rapfaria

"" "교수님, você está realmente louco. Eu preferiria dormir com sua mãe doque fazer isso. Aprenda Inglês ou perecer." "
Job

답변:


13

제 생각에는 아닙니다. 대부분의 프로그래머는 그들이 원하든 원하지 않든 영어를 배우도록 강요 받으며 오늘날 은 소프트웨어 세계 의 언어 입니다.

그러나 내 경험상, 더 강력한 언어 중 하나로 저자가 쓴 책 은 그렇게하는 경향이 있습니다. 지금까지 저는 독일어, 프랑스어 및 러시아어로 된 책에서 연습을 보았습니다 (러시아어는 다른 알파벳을 사용하기 때문에). 경험상 영어 에 대한 국가의 의존성달려있다 .

텍스트는 물론 번역되고, 더 큰 주석 (프로그램의 작동을 더 자세히 설명하는 주석)과 다소 희귀하고 작은 주석 및 변수 이름입니다. 또한 변수 이름이 번역되었지만 작은 주석이 영어로 남겨진 경우도 보았습니다. 그러나 그 특정한 경우에 저자는 자신의 청중이 영어 실력을 가지고 있다고 믿고 있다고 생각합니다.

이것이 딜레마를 해결하지 못했지만 죄송하지만 여전히 이것에 대한 합의가 없습니다 :-/


11

저는 브라질 사람입니다 (우리는 여기서 포르투갈어를 사용합니다). 원본 또는 번역 된 버전 중에서 선택할 수있을 때 거의 모든 책이 프로그래머가 아닌 사람들에게 번역되므로 명령과 표현이 손실되므로 항상 원본을 가져갑니다 번역 후의 원래 의미.

영어로 된 책을 원하는 또 다른 이유는 웹상의 모든 것 (또는이 사이트와 같은 가장 좋은 것)이 영어로 작성되었으므로 영어 용어에 익숙해지고 다른 사람들의 코드를 더 잘 이해할 수 있기 때문입니다. [좋은 프로그래머는 적어도 내 POV에서 영어로 코딩하기 때문에]

포르투갈어 (또는 다른 언어)로 된 책을 읽으려면 해당 언어로 작성된 책 (번역되지 않음)을 선호하십시오.

명확하게하기 위해 : 그 책을 번역하려는 경우 모든 코드를 영어로 유지하십시오 (의견은 번역 할 수 있지만 vars 또는 funcs는 번역 할 수 없음). 'array'와 같은 것을 번역하지 마십시오. 'mouse'to 'rato'[적어도 나는 영어 단어를 선호하고, 포르투갈 사람들은 두번째 단어를 선호 할 것입니다.]


3
세 가지 (소스 언어, 대상 언어, 프로그래밍) 전문가 모두를 필요로하는 +1
Frank Shearar

2

영어가 모국어가 아닌 사람으로서 나는 번역 된 코드를 좋아하지 않습니다.

  1. 모범 사례를 만듭니다. 전문가로서 영어는이 분야의 주요 언어 일뿐만 아니라 배경이 다른 사람들이 같은 코드를 공유하고 작업합니다. 다른 언어로 코드를 작성하면 코드로 작업 할 수있는 사람들의 수가 크게 줄어 듭니다. 다른 언어로 작성된 일부 코드에 재미가있어서 끔찍합니다. 그렇다면 좋은 습관을 기르는 것이 어떻습니까?

  2. 못 생겼어 대부분의 프로그래밍 언어는 영어로 키워드를 사용하며 식별자를 잘 선택하면 프로그램을 읽는 것이 자연어에 가까운 경험이 될 수 있습니다. 식별자에 다른 언어를 사용하지 않으면 동시에 2 개 언어로 읽는 것과 유사합니다.

  3. 나는 그것이 그다지 도움이되지 않는다고 생각합니다. 영어를 사용하지 않는 사람이라도 일반 프로그램의 식별자에 사용되는 영어는 매우 간단하고 매우 빠르게 배울 수 있습니다.


2

코드 예제를 번역하는 것에 대한 좋은 점은 번역 된 코드 예제가 원래 예제와 똑같기 때문에 테스트해야한다는 것입니다.

테스트 비용이 번역 비용에 포함됩니까? 대부분의 경우에는 그렇지 않습니다.

번역 된 코드를 테스트하지 않으면 코드가 깨지거나 잘못되어 번역 된 자료와 원본 자료의 평판이 손상 될 수 있습니다.

코드 예제를 테스트하기 위해 노력하고 싶지 않은 경우 주석 만 번역하고 코드를 변경해서는 안됩니다.

고려해야 할 또 다른 사항은 원래 작성자가 아마도 코드 기반, 아마도 전체적으로 컴파일되는 완전한 앱 또는 라이브러리를 가지고 있다는 사실입니다. 코드 예제는 이러한 코드 기반에서 추출되어 책 전체에 퍼져 있습니다. 코드 예제를 번역 한 후에는 번역 된 책에서 책의 다른 부분에서 다른 번역 결정으로 인해 서로 모순되는 코드 예제로 끝날 수 있지만 원본 책에서는 그렇지 않습니다. 동일한 코드 기반에서 추출 되었기 때문이 아닙니다.


0

나는 영어 이외의 다른 언어를 할 수 없습니다. (글쎄, 나는 고등학교에서 라틴어. 라틴 아메리카를 방문하면 유용합니다. :-) 그 배경으로, 나는 말할 것입니다 :

다른 사람들이 지적했듯이 웹과 책의 프로그래밍에 대한 많은 정보는 영어로되어 있으므로 영어를 배우면 도움이 될 것입니다.

예를 들어, 일부 컴퓨터 언어는 Visual Basic과 같은 많은 영어 단어를 사용합니다. 다른 사람들은 C / C ++ / C #와 같은 대부분의 기호를 사용합니다. 그래서 프로그램을한다면, 영어를 배워야합니다. 그러나 나는 그것이 많이 생각하지 않습니다. IF, WHILE, RETURN 등. 언어에 따라 10 ~ 20 개의 단어에서 수십 단어까지 가능합니다. Visual Basic은 내가 생각할 수있는 가장 말이 많은 언어이며 방금 목록을 확인했는데 약 160 개의 예약어가 있지만 중복 된 부분이 많습니다. END 및 WHILE과 같은 다음 END WHILE과 같이 세 개의 "단어"로 나열됩니다. 비영어권 사용자에게는 불편하다는 것을 알 수 있지만,이 단어는 흔히 일반적인 영어 의미와 느슨하게 관련된 의미로 사용되므로 많은 경우에 영어를 사용하는 사람보다 영어를 사용하지 않는 사람에게는 그렇게 어렵지 않습니다. 마찬가지로 HANDLER 또는 CAST의 의미는 포르투갈어를 사용하는 새로운 프로그래머보다 영어를 구사하는 새로운 프로그래머에게는 분명하지 않습니다. 대신 CAST라고 말하는 대신 FOOBAR라고 말한 것처럼 영어로 무의미한 단어로 이러한 것들을 불렀다면 프로그래밍을 배우기가 더 어려워 졌습니까? 나는 그것이 큰 차이를 만들지 않았을 것입니다. 그러면 프로그래밍을 배우기가 더 어려워 졌습니까? 나는 그것이 큰 차이를 만들지 않았을 것입니다. 그러면 프로그래밍을 배우기가 더 어려워 졌습니까? 나는 그것이 큰 차이를 만들지 않았을 것입니다.

일부 언어에는 키워드의 대체 단어를 여러 가지 방법으로 정의 할 수있는 옵션이 있습니다. 예, 모국어의 단어를 영어 키워드의 동의어로 정의 할 수 있습니다. 나는하지 않을 것입니다. 이제 프로그램에는 비표준 용어가 많이 있습니다. 같은 것을 시도하는 다른 사람은 당신과 똑같은 단어 집합을 사용하지 않을 것입니다. 이제 다른 사람의 프로그램을 읽으면 자신의 "번역"이 무엇을 의미하는지 알아 내야합니다. 회사의 모든 사람이 같은 세트를 사용한다면 배우고 서로의 프로그램을 쉽게 작업 할 수 있다고 생각합니다. 그러나 다른 회사로 이사하거나 웹에서 소프트웨어를 다운로드하면 어떻게됩니까? 당신이 단지 자신을 위해 함정을 설정하고있는 것 같습니다. 표준 단어를 배우는 것이 좋습니다.

포르투갈어로 프로그램을 작성하고 있고 그 프로그램을 읽을 가능성이있는 유일한 사람들이 다른 브라질 인 인 경우 모두 포르투갈어를 할 줄 모르지만 영어에 유창하지 않은 경우 변수 이름을 포르투갈어로 만드는 것이 좋습니다. 나는 당신이 특별히 좋지 않은 언어로 변수 이름을 만들려고 노력함으로써 얻는 것이 보이지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.