Giter Site home page Giter Site logo

golang-spec's People

Contributors

a2600riz avatar dakeshi avatar ezaurum avatar findstar avatar gosudaweb avatar hursungyun avatar jhonghee avatar mitrilmad avatar potatogim avatar voidsatisfaction avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

golang-spec's Issues

unqualified type name

체크리스트

Issue 설명

unqualified type name 에 적합한 번역 용어를 찾기 위한 토론입니다. 적합한 번역 용어가 있으면 제안해주시고 공감하는 의견에 의사표시를 해주시길 바랍니다.

원문 (제목, 링크)

struct types

The unqualified type name acts as the field name.

기존 번역

unqualified 타입 이름은 필드 이름처럼 사용된다.

번역 제안 및 토론

  • 패키지이름을 동반하지 않은 unqualified 타입 이름이 필드 이름처럼 사용된다. @jhonghee
    qualified는 unambiguous라는 뜻으로 이해하면 될 것 같습니다. 패키지를 동반한 이름은 그렇지 않은 이름들보다 unambiguous하다.

  • unqualified 타입 이름은 필드 이름처럼 사용된다. @dakeshi
    unqualified는 인터페이스 챕터에서도 논의되었지만, qualified identifier와 관련있는 내용이라 일단 unqualified 로 유지합니다.

slice타입 typo

체크리스트

Issue 설명(선택사항)

슬라이즈는 내재하는 array의 연속된 한 조각에 대해 서술한 것이며 그 array로 부터 숫자가 매겨진 연속된 요소들에 접근을 하게 해 준다. 슬라이스 타입은 그 요소 타입으로 구성된 array들의 모든 슬라이스를 포함하는 집합을 의미한다. 초기화 되지 않은 슬라이스의 값은 nil이다.

가장 앞에 슬라이즈 => 슬라이스

원문 (제목, 링크)

기존 번역

수정 요청

슬라이즈 => 슬라이스

부연 설명

terminating statement

체크리스트

Issue 설명

terminating statement 에 적합한 번역 용어를 찾기 위한 토론입니다. 적합한 번역 용어가 있으면 제안해주시고 공감하는 의견에 의사표시를 해주시길 바랍니다.

원문 (제목, 링크)

terminating statement

A terminating statement is one of the following

기존 번역

종결문

번역 제안 및 토론

  • 유한문 @jhonghee
    Terminating이라는 수식어는 결국 구문이 무한이 지속되지 않고 언젠가는 끝난다는 뜻에 동감하실 겁니다. 종결문이든 유한문이든 크게 의미 전달에는 문제가 없는 것 같아요. 제가 유한문이라는 번역을 생각한 이유는 종결문 자체가 종결문을 속에 가질 수 있기 때문에 실행의 끝이 있는 구문이다라는 의미를 전달하기 위해서 제안한 것입니다.

  • 종결문 또는 완결문 @ezaurum
    저는 terminating statements 가 어떤 블록(구문목록)이 있을 때, "여기서 끝납니다."를 표시하는 거라고 해석했거든요. 그러니 구문을 유한하게 "만드는" 구문이라 종결문이 더 어울린다고 생각합니다.
    아니면 완결문이라든가, 여튼 상태를 나타내는 것 보다는 행동이나 목적을 나타내는 말이 어울린다고 봅니다.

  • 종결문 @dakeshi
    종결문 안에 종결문이 가능하기 때문에 오해의 소지가 있어보이지만 딱히 좋은 용어가 아직은 떠오르지 않네요. 유한문은 finite 쪽에 가까워보입니다. 완결문은 complete 에 가까운 의미로 보입니다.

expression 용어 번역 통일

체크리스트

Issue 설명(선택사항)

expression에 대한 번역 용어 통일과 관련해서 다음과 같이 검토했습니다.

번역 가능한 용어로는 , 표현, 표현식 등이 있습니다. 주요 의견으로는

대부분의 문서에서 expression은 으로 번역하고 있습니다. 현재 용어집에는 index expression = 인덱스 표현 으로 추가된 상태입니다. - @dakeshi

프로그래밍/수학을 배경으로 두고 개념을 생각했을 때 substitution이나 evaluation 과정을 거쳐서 결국 어떤 값으로 귀결되는 "식"이라는 뜻으로 사람들에게 보편적으로 받아들여지고 있다고 봅니다. - @jhonghee

따라서, 가장 보편적으로 사용되는 으로 번역하는 것이 좋다고 생각합니다.

TODO

  • expression과 관련된 기존 번역문 확인해서 으로 통일
  • expression을 용어집에 추가. index expression은 용어집에서 삭제하거나 expression에 대한 예제로 부가설명. 인덱스 식

In general, complex constants are... 번역 수정

체크리스트

Issue 설명(선택사항)

원문 (제목, 링크)

In general, complex constants are a form of constant expression and are discussed in that section.

기존 번역

일반적으로 복소수 상수들은 상수 식이며 이는 현재 섹션에서 설명될 것이다.

수정 요청

일반적으로 복소수 상수들은 상수 식의 형태이며 그 섹션에서 다루어 질 것이다.

부연 설명

용어집 (glossary) 구성 의견주세요

주로 사용되는 용어, 번역하기 힘들거나 애매한 용어에 대해 의견 수렴을 거쳐 용어집에 반영할 예정입니다. 용어에 알맞은 번역과 설명을 코멘트로 남겨주시고, 목록에 추가하고 싶은 용어 역시 코멘트 남겨주시기 바랍니다.

아래는 용어집에 추가될 후보군들입니다.

검토대기

  • letter
  • low-level programming
  • newline
  • receiver
  • selector
  • tag
  • empty interface
  • empty map
  • zero-sized

1차 검토 완료

  • alignment = 얼라인먼트
  • base type = 기본 타입
  • blank identifier = blank 식별자
  • block = 블록
  • character = 캐릭터
  • declaration = 선언
  • identifier = 식별자
  • literal = 리터럴
  • signature = 시그니처
  • specification = 사양
  • token = 토큰
  • type = 타입
  • type alias = 타입 앨리어스
  • static type = 정적 타입
  • dynamic type = 동적 타입
  • underlying type = 내재 타입
  • composite type = 합성 타입
  • predeclared = 미리 선언된
  • assignment = 할당
  • index expressions = 인덱스 표현
  • key type = 키 타입
  • untyped = 미지정 타입
  • run-time panic = 런타임 패닉
  • equality operators = 동등 연산자
  • operand = 피연산자
  • label = 라벨
  • scope = 범위
  • statement = 구문 또는 문
  • function body = 함수 본문
  • illegal = 허용안됨. 문장에서 사용될 경우 Go 문법에서는 ... 허용하지 않는다.로 번역

Channel types 애매한 문장

체크리스트

Issue 설명(선택사항)

원문 (제목, 링크)

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 번역 수정

체크리스트

Issue 설명(선택사항)

전체 글의 통일성을 위해 statement 용어에 대한 번역 규칙을 다음과 같이 적용합니다.
statement이 단독으로 사용되었을 경우에는 구문으로 번역.
for statement 처럼 statement 를 설명할 경우는 으로 번역.

이에 따라 labeled scope 챕터에서 labeled statement 는 라벨 문으로 수정이 필요합니다.

원문 (제목, 링크)

https://gosudaweb.gitbooks.io/go-language-specification-in-korean/content/Declarations%20and%20scope/label_scopes.html

기존 번역

라벨 구문

수정 요청

라벨 문

번역 가이드 확장. Go EBNF 및 타입 관련

번역시 영어 원문을 유지해야 하는 용어들에 대한 목록을 작성하기 위해 몇 가지 규칙을 제안하고자 합니다.

  1. EBNF에 따라 작성된 Go 문법은 번역하지 않습니다.
    예를 들면, Types 섹션에 나오는 문법 표현은 아래와 같습니다.
Type      = TypeName | TypeLit | "(" Type ")" .
TypeName  = identifier | QualifiedIdent .
TypeLit   = ArrayType | StructType | PointerType | FunctionType | InterfaceType |
	    SliceType | MapType | ChannelType .

문법 표현은 한글로 번역하지 않고 원문 그대로 유지하시면 됩니다.

  1. EBNF에 따라 작성된 Go 문법에서 가장 왼쪽에 해당하는 용어가 문장에서 사용된 경우, 영어 원문을 유지하는 것을 기본으로 합니다. EBNF에 따라 작성된 Go 문법에서 가장 왼쪽에 해당하는 용어는 다음과 같습니다.
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는 미리 선언되어있다. 라고 번역하시면 됩니다.

  1. EBNF에 따라 작성된 Go 문법에서 가장 왼쪽에 해당하는 용어가 문장에서 사용된 경우라도, 아래에 해당하는 용어는 다음과 같이 번역합니다.

Declaration : 선언
Function : 함수
Block : 블록
Signature : 시그니처
Tag : 태그
Type : 타입

추가로 각종 타입들도 영어 원문을 유지했으면 합니다. 즉, 문자열 타입 대신 string 타입이라고 번역해야 하는거지요. 코드에서 string 타입이 사용되기 때문에 이렇게 번역하는게 좋다고 생각합니다.

작성하고 나니 규칙이 복잡해 보이기도 하네요. 좀 더 문서를 수정할 필요가 있겠네요. 의견 남겨주세요.

crowdin 번역 플랫폼 시범 운영합니다. 사용후기 남겨주세요.

Issue 설명(선택사항)

번역 프로젝트 플랫폼인 crowdin을 github와 연동해서 시범 운영 중입니다.
시범 운영 기간 동안 장점/단점을 평가해서 장기적인 프로젝트 도구로 이용할지 결정하도록 하겠습니다.
현재까지 파악된 장점 및 단점을 추가했습니다. 참고바라며 활용해보시고 의견 남겨주시기 바랍니다.
(구분을 위해 제목에 ###버그리포트, ###단점, ###장점 등의 헤더를 붙여주세요.)

crowdin 연동 시범 운영 기간

2017.12.28 ~ 2018. 1.7
(개인적으로는 1주일 정도면 충분히 평가가 될 거라고 생각하는데 추가 의견 있으시면 남겨주세요.)

pull request 관리(in crowdin)

  • crowdin, 매 10분마다 github와 sync 확인 후 pull request 생성함.
    프로젝트 기본 sync 설정은 crowdin에서 작업 중이거나 관리자가 승인한 번역 파일에 대해 github I18n_master 브랜치(crowdin에서는 service branch라고 부른다)를 대상으로 pull request를 생성한다.
  • 10분 내에 변경사항이 없으면 PR 생성되지 않는다.
  • 기본 설정으로는 번역이 완료되지 않은 파일도 PR 에 포함됨
  • crowdin 관리자가 승인한 번역 파일에 대해서만 PR을 생성하기 위해 project setting-general-export 에서 export only approved translations 체크할 것.

crowdin에서 생성된 pull request 관리(in github)

  • PR merge 후에 I18n_master 브랜치를 삭제해야 한다.
    crowdin에서 생성된 pull request는 rebase를 진행하지 않기 때문에 PR merge 후에 I18n_master 브랜치를 삭제하지 않으면 merge 이후에 발생하는 PR에서 이전에 merge한 파일들이 다시 추가되어 나타난다.

crowdin 장점

  1. 번역 문장 히스토리 관리
    원문에 대한 번역 문장을 여러 번 수정/저장한 경우 번역 히스토리가 생성됨.
    참여자들이 후보 문장들 중 가장 맘에 드는 문장에 투표할 수 있는 기능도 제공됨.

  2. 분리된 원문 관리(단점도 함께 존재)
    원문 업데이트 별도 관리 가능
    하지만 두 번의 작업 필요
    GitHub에서 en 폴더를 대상으로 업데이트. crowdin에는 반영되지 않기 때문에 crowdin에서 별도 작업 필요
    crowdin-file 메뉴에서 파일 upload 하여 원문 업데이트

  3. 번역자는 PR 생성하지 않아도 된다.(Github 몰라도 된다)
    review를 다시 crowdin에 반영하면 GitHub flow를 하나도 몰라도 된다.

  4. 원문과 번역문을 병행표기 하지 않아도 된다.
    사이드 뷰에서 원문을 제공함

crowdin 단점

  1. sync는 crowdin에서 github 방향으로만 가능. 즉 github에서 수정한 내용은 crowdin에 반영되지 못한다.

  2. 번역자가 작업 단위로 직접 PR 요청을 만들 수 없다.
    project setting-general-export 에서 export only approved translations 체크해주면
    관리자에 의해 승인된 파일에 대해서만 pr 생성된다.
    번역 완료된 파일에 대해 관리자가 approve 처리하면 github에서 PR이 생성된다.

  3. 리뷰 관리 불편
    crowdin에서 관리자가 approve한 모든 번역 파일이 1개의 pr로 합쳐짐(merge되기 전까지)
    따라서 번역물 단위로 pr review를 진행하기 위해서는 approve 일정 관리가 필요함

  4. markdown 포맷을 지원하지 않는다. italic, code tag는 html 태그로 관리해야 한다.
    번역 대상 파일 선택후 setting 에서 HTML tag displaying을 Show로 설정(default는 auto임)해야
    html tag를 확인하여 편집할 수 있음.

  5. 상단 헤더 정보(go spec, 번역자 이름) 제거됨
    영어 원문과 문장을 1:1 매칭하는 방식으로 유지하기 때문에 상단 헤더 정보를 입력할 곳이 마땅치 않습니다.

Blank라는 말을 공백으로 번역하면 헷갈립니다.

체크리스트

Issue 설명(선택사항)

메서드 집합

에서 다음과 같은 문장이 있습니다.

메서드 집합 안에서 각 메서드는 유일(unique)하고 공백(blank)이 아닌 메서드 이름(method name)을 가져야 한다.

이 말에서 공백(blank)라는 표현은 스페이스바와 혼동할 여지가 있습니다. 실제로 저 쪽에서 의미하고 있는 것은 blank identifier인데 말이죠.

blank identifier와 공백을 구분하는 무엇인가가 필요하다고 봅니다.

원문 (제목, 링크)

기존 번역

수정 요청

부연 설명

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.