1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-04-26 17:23:01 +02:00

Add some missing translation in #513 (#515)

Co-authored-by: Jooyung Han <jooyung@google.com>
This commit is contained in:
Jooyung Han 2023-03-23 16:12:19 +09:00 committed by GitHub
parent 3b538b582d
commit 61c0fe2951
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1461,9 +1461,9 @@ msgid ""
" solve the exercises using a local Rust installation or via the\n"
" Playground."
msgstr ""
"* 내장된 플레이그라운드에서는 페이지 이동시 작성된 모든 내용이 사라집니다. 따라서 로컬 환경이나 외부 플레이그라운드 사이트에서 연습문제를 해결하는 것이 좋습니다.\n"
"* 유닛 테스트는 내장 플레이그라운드에서 실행이 안됩니다. 외부 플레이그라운드 사이트에 붙여넣어 테스트를 실행하시기 바랍니다.\n"
"\n"
"* 유닛 테스트는 내장 플레이그라운드에서 실행이 안됩니다. 외부 플레이그라운드 사이트에 붙여넣어 테스트를 실행하시기 바랍니다."
"* 내장된 플레이그라운드에서는 페이지 이동시 작성된 모든 내용이 사라집니다. 따라서 로컬 환경이나 외부 플레이그라운드 사이트에서 연습문제를 해결하는 것이 좋습니다."
#: src/cargo/running-locally.md:1
msgid "# Running Code Locally with Cargo"
@ -1652,7 +1652,7 @@ msgstr "첫 날 강의의 목표는, 러스트에서 그 유명한 빌림 확인
msgid ""
"If you're teaching this in a classroom, this is a good place to go over the\n"
"schedule. We suggest splitting the day into two parts (following the slides):"
msgstr "만약 당신이 강의실에서 가르치고 있다면, 이 슬라이드는 일정을 검토하기에 적합한 곳입니다. 하루치 강의를 아래처럼 오전 오후로 나누어 진행하는 것을 추천합니다. (슬라이드가 그런식으로나뉘어 있습니다.)"
msgstr "만약 당신이 강의실에서 가르치고 있다면, 이 슬라이드는 일정을 검토하기에 적합한 곳입니다. 하루치 강의를 아래처럼 오전 오후로 나누어 진행하는 것을 추천합니다. (슬라이드가 그런식으로 나뉘어 있습니다.)"
#: src/welcome-day-1.md:36
msgid ""
@ -2221,6 +2221,13 @@ msgid ""
"\n"
"* Adding `#`, eg `{a:#?}`, invokes a \"pretty printing\" format, which can be easier to read."
msgstr ""
"* 배열은, 같은 타입 `T`의 값이 `N`개 있는 것입니다. 여기서 `N`은 컴파일 타임에 결정된 값이어야 합니다. 이 길이도 타입의 일부입니다. 따라서, `[u8; 3]`와 `[u8; 4]`은 서로 다른 타입입니다.\n"
"\n"
"* 리터럴을 사용하여 배열에 값을 할당할 수 있습니다.\n"
"\n"
"* 포매팅 문자열에서 `?`는 디버깅 출력을 의미합니다. `{}`는 기본 출력이며, `{:?}`는 디버깅 출력입니다. `{a}`, `{a:?}`와 같이 출력할 변수 이름을 포매팅 문자열에 포함시킬 수도 있으며, 이 경우 인자 `a`는 별도의 인자로 추가하지 않습니다.\n"
"\n"
"* `#`을 추가하면(`{a:#?}`) 좀 더 읽기 쉬운 \\\"이쁜\\\" 형태로 출력이 됩니다."
#: src/basic-syntax/compound-types.md:47
msgid "Tuples:"
@ -2461,7 +2468,7 @@ msgid ""
" (main difference: it can only contain UTF-8 encoded bytes and will never use a small-string optimization).\n"
" "
msgstr ""
"* `&str`은 문자열 슬라이스의 불변 참조입니다. 러스트에서 문자열은 UTF-8로 인코딩된 데이터를 의미합니다. 문자열 리터럴(`\\\"Hello\\\"`)은 프로그램 바이너리에 저장됩니다.\n"
"* `&str`은 문자열 슬라이스의 불변 참조입니다. 러스트에서 문자열은 UTF-8로 인코딩된 데이터를 의미합니다. 문자열 리터럴(`\"Hello\"`)은 프로그램 바이너리에 저장됩니다.\n"
"\n"
"* 러스트의 `String`타입은 실제로는 문자열을 이루는 바이트에 대한 백터(`Vec<u8>`)입니다. `Vec<T>`가 `T`를 소유하고 있듯이, `String`이 가리키고 있는 문자열은 `String`의 소유입니다.\n"
"\n"
@ -2702,7 +2709,7 @@ msgid ""
"\n"
"* Alternatively, use the Rust Playground."
msgstr ""
"* 배열과 `for` 반복문.* 가능하다면 러스트가 설치된 로컬 환경에서 진행하세요. 그러는 편이 텍스트 에디터의 자동완성 기능의 도움을 받을 수 있어서 좋습니다. [카고 사용하기][Using Cargo] 을 참조하시기 바랍니다.\n"
"* 가능하다면 러스트가 설치된 로컬 환경에서 진행하세요. 그러는 편이 텍스트 에디터의 자동완성 기능의 도움을 받을 수 있어서 좋습니다. [카고 사용하기][Using Cargo] 을 참조하시기 바랍니다.\n"
"\n"
"* 혹은 러스트 플레이그라운드를 이용할 수 있습니다."
@ -3979,7 +3986,7 @@ msgstr ""
#: src/ownership/borrowing.md:27
msgid "Notes on stack returns:"
msgstr ""
msgstr "스택에 할당된 값을 리턴하는 것에 대한 참고:"
#: src/ownership/borrowing.md:28
msgid ""
@ -4817,6 +4824,50 @@ msgid ""
"* Use struct update syntax to define a new structure using `peter`. Note that the variable `peter` will no longer be accessible afterwards.\n"
"* Use `{:#?}` when printing structs to request the `Debug` representation."
msgstr ""
"* `new`함수를 다음처럼 구조체 이름 대신 `Self`를 사용하여 작성해도 됩니다.\n"
"\n"
" ```rust,editable\n"
" #[derive(Debug)]\n"
" struct Person {\n"
" name: String,\n"
" age: u8,\n"
" }\n"
" impl Person {\n"
" fn new(name: String, age: u8) -> Self {\n"
" Self { name, age }\n"
" }\n"
" }\n"
" ``` \n"
"* `Default` 트레잇을 구현해보세요. 필드 몇개는 초기화하고 나머지 필드는 디폴트 값을 사용할 수 있습니다.\n"
"\n"
" ```rust,editable\n"
" #[derive(Debug)]\n"
" struct Person {\n"
" name: String,\n"
" age: u8,\n"
" }\n"
" impl Default for Person {\n"
" fn default() -> Person {\n"
" Person {\n"
" name: \"Bot\".to_string(),\n"
" age: 0,\n"
" }\n"
" }\n"
" }\n"
" fn create_default() {\n"
" let tmp = Person {\n"
" ..Default::default()\n"
" };\n"
" let tmp = Person {\n"
" name: \"Sam\".to_string(),\n"
" ..Default::default()\n"
" };\n"
" }\n"
" ```\n"
"\n"
"* 메서드는 `impl` 블록에 정의됩니다.\n"
"* `peter`와 구조체 업데이트 문법을 사용하여 새로운 구조체 인스턴스를 만들어보세요. 이때, `peter`는 더이상 사용할 수 없게 됩니다.\n"
"* 구조체를 `Debug` 형태로 출력하려면 `{:#?}`를 사용하세요."
#: src/enums.md:1
msgid "# Enums"
@ -5122,6 +5173,35 @@ msgid ""
" }\n"
" ```"
msgstr ""
"* 러스트는 열거형 variant를 구분하기 위해 내부적으로 식별자(discriminant) 필드를 사용합니다.\n"
"\n"
"* C와의 연동과 같은 이유로 식별자를 직접 지정할 수도 있습니다:\n"
" \n"
" ```rust,editable\n"
" #[repr(u32)]\n"
" enum Bar {\n"
" A, // 0\n"
" B = 10000,\n"
" C, // 10001\n"
" }\n"
" \n"
" fn main() {\n"
" println!(\"A: {}\", Bar::A as u32);\n"
" println!(\"B: {}\", Bar::B as u32);\n"
" println!(\"C: {}\", Bar::C as u32);\n"
" }\n"
" ```\n"
"\n"
" `repr` 속성이 없다면 10001이 2 바이트로 표현가능하기 때문에 식별자의 타입 크기는 2 바이트가 됩니다.\n"
"\n"
"* 다른 타입들도 확인해보세요.\n"
"\n"
" * `dbg_size!(bool)`: size 1 bytes, align: 1 bytes\n"
" * `dbg_size!(Option<bool>)`: size 1 bytes, align: 1 bytes (니치 최적화, 아래 설명 참조)\n"
" * `dbg_size!(&i32)`: size 8 bytes, align: 8 bytes (64비트 머신인 경우)\n"
" * `dbg_size!(Option<&i32>)`: size 8 bytes, align: 8 bytes (널포인터 최적화, 아래 설명 참조)\n"
"\n"
"* 니치 최적화: 러스트는 열거형 식별자를 사용되지 않은 비트 패턴과 병합합니다."
#: src/methods.md:3
msgid ""
@ -6749,6 +6829,11 @@ msgid ""
"* Remove the `Box` in the List definition and show the compiler error. \"Recursive with indirection\" is a hint you might want to use a Box or reference of some kind, instead of storing a value directly. \n"
" "
msgstr ""
"* 만일 `Box`를 사용하지 않고 `List`에 직접 `List`를 포함하려고 시도한다면, 컴파일러는 구조체의 고정 크기를 계산할 수 없습니다. 컴파일러가 보기에 무한대의 크기로 보일 것입니다.\n"
"\n"
"* `Box`는 일반 포인터와 크기가 같기 때문에 크기를 계산하는 데 문제가 없습니다. 다만 힙에 위치한 `List`의 다음 요소를 가리킬 뿐입니다.\n"
"\n"
"* `List` 정의에서 `Box`를 제거하면 어떤 컴파일러 에러가 나오는지 같이 살펴보세요. “Recursive with indirection”라는 메시지를 보면, 값을 직접 저장하는 대신 `Box`나 비슷한 다른 종류의 참조 타입이 필요하다는 힌트를 얻을 수 있습니다."
#: src/std/box-niche.md:1
msgid "# Niche Optimization"