golangkorea / golang-spec Goto Github PK
View Code? Open in Web Editor NEWGo 언어 스펙 한글 번역
Home Page: https://www.gitbook.com/book/gosudaweb/go-language-specification-in-korean/details
License: Other
Go 언어 스펙 한글 번역
Home Page: https://www.gitbook.com/book/gosudaweb/go-language-specification-in-korean/details
License: Other
번역자: Joseph Kim (@superbmilkyway)
지원자: Joseph Kim
unqualified type name 에 적합한 번역 용어를 찾기 위한 토론입니다. 적합한 번역 용어가 있으면 제안해주시고 공감하는 의견에 의사표시를 해주시길 바랍니다.
The unqualified type name acts as the field name.
unqualified 타입 이름은 필드 이름처럼 사용된다.
golangkorea/golang-spec은 2016년 9월 8일자 go spec 원문을 바탕으로 레포가 만들어진 후 아직 업데이트되지 않았습니다.
10월 4일이후 commit된 go spec 원문 내용을 업데이트하여 주십시요.
지원자: @potatogim
슬라이즈는 내재하는 array의 연속된 한 조각에 대해 서술한 것이며 그 array로 부터 숫자가 매겨진 연속된 요소들에 접근을 하게 해 준다. 슬라이스 타입은 그 요소 타입으로 구성된 array들의 모든 슬라이스를 포함하는 집합을 의미한다. 초기화 되지 않은 슬라이스의 값은 nil이다.
가장 앞에 슬라이즈 => 슬라이스
슬라이즈 => 슬라이스
terminating statement 에 적합한 번역 용어를 찾기 위한 토론입니다. 적합한 번역 용어가 있으면 제안해주시고 공감하는 의견에 의사표시를 해주시길 바랍니다.
A terminating statement is one of the following
종결문
유한문 @jhonghee
Terminating이라는 수식어는 결국 구문이 무한이 지속되지 않고 언젠가는 끝난다는 뜻에 동감하실 겁니다. 종결문이든 유한문이든 크게 의미 전달에는 문제가 없는 것 같아요. 제가 유한문이라는 번역을 생각한 이유는 종결문 자체가 종결문을 속에 가질 수 있기 때문에 실행의 끝이 있는 구문이다라는 의미를 전달하기 위해서 제안한 것입니다.
종결문 또는 완결문 @ezaurum
저는 terminating statements 가 어떤 블록(구문목록)이 있을 때, "여기서 끝납니다."를 표시하는 거라고 해석했거든요. 그러니 구문을 유한하게 "만드는" 구문이라 종결문이 더 어울린다고 생각합니다.
아니면 완결문이라든가, 여튼 상태를 나타내는 것 보다는 행동이나 목적을 나타내는 말이 어울린다고 봅니다.
종결문 @dakeshi
종결문 안에 종결문이 가능하기 때문에 오해의 소지가 있어보이지만 딱히 좋은 용어가 아직은 떠오르지 않네요. 유한문은 finite 쪽에 가까워보입니다. 완결문은 complete 에 가까운 의미로 보입니다.
expression에 대한 번역 용어 통일과 관련해서 다음과 같이 검토했습니다.
번역 가능한 용어로는 식
, 표현
, 표현식
등이 있습니다. 주요 의견으로는
대부분의 문서에서 expression은 식
으로 번역하고 있습니다. 현재 용어집에는 index expression = 인덱스 표현
으로 추가된 상태입니다. - @dakeshi
프로그래밍/수학을 배경으로 두고 개념을 생각했을 때 substitution이나 evaluation 과정을 거쳐서 결국 어떤 값으로 귀결되는 "식"이라는 뜻으로 사람들에게 보편적으로 받아들여지고 있다고 봅니다. - @jhonghee
따라서, 가장 보편적으로 사용되는 식
으로 번역하는 것이 좋다고 생각합니다.
식
으로 통일인덱스 식
지원자: Joseph Kim
번역자: Jhonghee Park (@jhonghee)
번역문에 code tag 누락
https://github.com/golang/go/blob/master/doc/go_spec.html 문서에서 code tag 확인하여
markdown code tag 표기 추가
https://gosudaweb.gitbooks.io/go-language-specification-in-korean/content/Types/
en 디렉토리 안에 있는 영어 원문에서 html code tag 가 누락된 곳을 확인하여 수정 필요.
non-constant(s) 라는 말이 여러 번 나오는데 정확한 이해가 요구됩니다.
주로 사용되는 용어, 번역하기 힘들거나 애매한 용어에 대해 의견 수렴을 거쳐 용어집에 반영할 예정입니다. 용어에 알맞은 번역과 설명을 코멘트로 남겨주시고, 목록에 추가하고 싶은 용어 역시 코멘트 남겨주시기 바랍니다.
아래는 용어집에 추가될 후보군들입니다.
Go 문법에서는 ... 허용하지 않는다.
로 번역한글 번역이 완료된 챕터들에 대한 crowdin 동기화 진행상황입니다.
작업 순서는 https://crowdin.com/project/go-spec/ko# 목록 순서대로 진행하고 있습니다.
현재 built-in-functions/length-capacity 까지 approve 한 상태입니다.
번역 가이드라인을 정해 주십시요.
chan T // can be used to send and receive values of type T
chan<- float64 // can only be used to send float64s
<-chan int // can only be used to receive ints
문맥상 채널의 특성(보내고 받기)에 대한 것을 나타내기 위한 예
chan T // 타입 T의 값을 보낼 수도 있고 받을 수도 있다.
chan<- float64 // float64 값들만 보낼 수 있다.
<-chan int // int 값들만 받을 수 있다.
chan T // 타입 T의 값을 보낼 수도 있고 받을 수도 있다.
chan<- float64 // float64 값들을, 오직 보낼 수 있다.
<-chan int // int 값들을, 오직 받을 수 있다.
전체 글의 통일성을 위해 statement 용어에 대한 번역 규칙을 다음과 같이 적용합니다.
statement이 단독으로 사용되었을 경우에는 구문
으로 번역.
for statement 처럼 statement 를 설명할 경우는 문
으로 번역.
이에 따라 labeled scope 챕터에서 labeled statement 는 라벨 문
으로 수정이 필요합니다.
라벨 구문
라벨 문
번역시 영어 원문을 유지해야 하는 용어들에 대한 목록을 작성하기 위해 몇 가지 규칙을 제안하고자 합니다.
Type = TypeName | TypeLit | "(" Type ")" .
TypeName = identifier | QualifiedIdent .
TypeLit = ArrayType | StructType | PointerType | FunctionType | InterfaceType |
SliceType | MapType | ChannelType .
문법 표현은 한글로 번역하지 않고 원문 그대로 유지하시면 됩니다.
AliasDecl
ArrayLength
ArrayType
BaseType
big_u_value
Block
byte_value
ChannelType
ConstDecl
ConstSpec
decimal_digit
decimal_lit
Declaration
ElementType
EmbeddedField
exponent
ExpressionList
FieldDecl
float_lit
Function
FunctionBody
FunctionDecl
FunctionName
FunctionType
hex_byte_value
hex_digit
hex_lit
identifier
IdentifierList
imaginary_lit
int_lit
InterfaceType
InterfaceTypeName
interpreted_string_lit
KeyType
letter
little_u_value
MapType
MethodDecl
MethodName
MethodSpec
newline
octal_byte_value
octal_digit
octal_lit
Operand
ParameterDecl
ParameterList
Parameters
PointerType
raw_string_lit
Receiver
Result
rune_lit
ShortVarDecl
Signature
SliceType
StatementList
string_lit
StructType
Tag
TopLevelDecl
Type
TypeDecl
TypeDef
TypeLit
TypeName
TypeSpec
unicode_char
unicode_digit
unicode_letter
unicode_value
VarDecl
VarSpec
예를 들면, identifiers 섹션에 나오는 문법 표현은 아래와 같습니다.
identifier = letter { letter | unicode_digit } .
위의 문법에서 가장 왼쪽에 해당하는 identifier
가 문장에서 언급된 경우, 한글로 번역하지 않고 영어 원문을 유지합니다. 따라서, identifiers 섹션에 언급된 아래 문장의 경우,
Some identifiers are predeclared.
어떤 identifier는 미리 선언되어있다.
라고 번역하시면 됩니다.
Declaration : 선언
Function : 함수
Block : 블록
Signature : 시그니처
Tag : 태그
Type : 타입
추가로 각종 타입들도 영어 원문을 유지했으면 합니다. 즉, 문자열 타입
대신 string 타입
이라고 번역해야 하는거지요. 코드에서 string
타입이 사용되기 때문에 이렇게 번역하는게 좋다고 생각합니다.
작성하고 나니 규칙이 복잡해 보이기도 하네요. 좀 더 문서를 수정할 필요가 있겠네요. 의견 남겨주세요.
번역 프로젝트 플랫폼인 crowdin을 github와 연동해서 시범 운영 중입니다.
시범 운영 기간 동안 장점/단점을 평가해서 장기적인 프로젝트 도구로 이용할지 결정하도록 하겠습니다.
현재까지 파악된 장점 및 단점을 추가했습니다. 참고바라며 활용해보시고 의견 남겨주시기 바랍니다.
(구분을 위해 제목에 ###버그리포트
, ###단점
, ###장점
등의 헤더를 붙여주세요.)
2017.12.28 ~ 2018. 1.7
(개인적으로는 1주일 정도면 충분히 평가가 될 거라고 생각하는데 추가 의견 있으시면 남겨주세요.)
번역 문장 히스토리 관리
원문에 대한 번역 문장을 여러 번 수정/저장한 경우 번역 히스토리가 생성됨.
참여자들이 후보 문장들 중 가장 맘에 드는 문장에 투표할 수 있는 기능도 제공됨.
분리된 원문 관리(단점도 함께 존재)
원문 업데이트 별도 관리 가능
하지만 두 번의 작업 필요
GitHub에서 en 폴더를 대상으로 업데이트. crowdin에는 반영되지 않기 때문에 crowdin에서 별도 작업 필요
crowdin-file 메뉴에서 파일 upload 하여 원문 업데이트
번역자는 PR 생성하지 않아도 된다.(Github 몰라도 된다)
review를 다시 crowdin에 반영하면 GitHub flow를 하나도 몰라도 된다.
원문과 번역문을 병행표기 하지 않아도 된다.
사이드 뷰에서 원문을 제공함
sync는 crowdin에서 github 방향으로만 가능. 즉 github에서 수정한 내용은 crowdin에 반영되지 못한다.
번역자가 작업 단위로 직접 PR 요청을 만들 수 없다.
project setting-general-export 에서 export only approved translations 체크해주면
관리자에 의해 승인된 파일에 대해서만 pr 생성된다.
번역 완료된 파일에 대해 관리자가 approve 처리하면 github에서 PR이 생성된다.
리뷰 관리 불편
crowdin에서 관리자가 approve한 모든 번역 파일이 1개의 pr로 합쳐짐(merge되기 전까지)
따라서 번역물 단위로 pr review를 진행하기 위해서는 approve 일정 관리가 필요함
markdown 포맷을 지원하지 않는다. italic, code tag는 html 태그로 관리해야 한다.
번역 대상 파일 선택후 setting 에서 HTML tag displaying을 Show로 설정(default는 auto임)해야
html tag를 확인하여 편집할 수 있음.
상단 헤더 정보(go spec, 번역자 이름) 제거됨
영어 원문과 문장을 1:1 매칭하는 방식으로 유지하기 때문에 상단 헤더 정보를 입력할 곳이 마땅치 않습니다.
에서 다음과 같은 문장이 있습니다.
메서드 집합 안에서 각 메서드는 유일(unique)하고 공백(blank)이 아닌 메서드 이름(method name)을 가져야 한다.
이 말에서 공백(blank)
라는 표현은 스페이스바와 혼동할 여지가 있습니다. 실제로 저 쪽에서 의미하고 있는 것은 blank identifier인데 말이죠.
blank identifier와 공백을 구분하는 무엇인가가 필요하다고 봅니다.
Same to title.
번역자: @potatogim
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.