{"id":51641216,"url":"https://github.com/tamnd/bgc-vi","last_synced_at":"2026-07-13T19:03:28.328Z","repository":{"id":352431440,"uuid":"1215101215","full_name":"tamnd/bgc-vi","owner":"tamnd","description":"Hướng dẫn Lập trình C của Beej — Vietnamese translation of Beej's Guide to C","archived":false,"fork":false,"pushed_at":"2026-04-19T16:23:05.000Z","size":590,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-19T16:24:07.222Z","etag":null,"topics":["beej","bgc","book","c","c-programming","ebook","latex","pandoc","programming","translation","vietnamese"],"latest_commit_sha":null,"homepage":"https://tamnd.github.io/bgc-vi/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tamnd.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-19T13:36:31.000Z","updated_at":"2026-04-19T16:23:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tamnd/bgc-vi","commit_stats":null,"previous_names":["tamnd/bgc-vi"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/tamnd/bgc-vi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamnd%2Fbgc-vi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamnd%2Fbgc-vi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamnd%2Fbgc-vi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamnd%2Fbgc-vi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tamnd","download_url":"https://codeload.github.com/tamnd/bgc-vi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamnd%2Fbgc-vi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35432835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beej","bgc","book","c","c-programming","ebook","latex","pandoc","programming","translation","vietnamese"],"created_at":"2026-07-13T19:03:22.553Z","updated_at":"2026-07-13T19:03:28.317Z","avatar_url":"https://github.com/tamnd.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Beej's Guide to C Programming (Vietnamese)\n\n\u003e [Tiếng Việt](README.md) \u0026middot; English\n\nVietnamese translation of [Beej's Guide to C Programming][bgc] by\nBrian \"Beej Jorgensen\" Hall. Free to read, free to share, just like\nthe original.\n\n\u003e Hey! C giving you grief? Pointers, `malloc()`, and byte-endianness\n\u003e making your head spin? You want to write real C without hauling\n\u003e around an 800-page textbook shaped like an anvil?\n\u003e\n\u003e Well, guess what. Beej already did that nasty business, and it now\n\u003e comes in Vietnamese too.\n\n[bgc]: https://beej.us/guide/bgc/\n\n## Is this for me?\n\nIf you read Vietnamese and want to learn C from scratch up to\n\"actually useful\", yes. If you read English comfortably, just read\nthe [original guide][bgc], it's right there.\n\nThis repo is for Vietnamese developers who want to learn C seriously\nwithout fighting English syntax in parallel with C syntax.\n\n## What you'll learn\n\nForty-plus chapters, from \"Hello, World!\" to atomics, multithreading,\nUnicode, `setjmp`/`longjmp`, VLAs, and a long tail of C specifiers\nthat most people never touch. Full list in\n[ROADMAP.md](ROADMAP.md).\n\nHighlights:\n\n- **Pointers**, three chapters (because pointers deserve three).\n- **Manual memory allocation.** `malloc()`, `free()`, and why.\n- **Types**, five chapters, including qualifiers, specifiers,\n  compound literals, generic selection.\n- **The C preprocessor.** Macros are beautiful and dangerous.\n- **Multithreading and atomics.** After you're comfortable with the\n  rest.\n- **Unicode, locale, time.** The corners everyone avoids but\n  shouldn't.\n\n## Status\n\nThe build pipeline and GitHub Pages went live before translation\nstarted, so there's already an English site at\n\u003chttps://tamnd.github.io/bgc-vi/\u003e. Vietnamese content will replace it\none chapter at a time. Track progress in [ROADMAP.md](ROADMAP.md) or\nthe [merged PRs](https://github.com/tamnd/bgc-vi/pulls?q=is%3Apr+is%3Amerged).\n\n## Repo layout\n\n```\nbgc-vi/\n├── src/         # English originals (from upstream, do not edit)\n├── src_vi/      # Vietnamese translations (the interesting stuff)\n├── source/      # Example C programs (unchanged from upstream)\n├── translations/# Other-language builds shipped by upstream\n├── website/     # Upstream website assets\n├── scripts/     # Build and release helpers\n├── Dockerfile.vi # Container image with pandoc + texlive + fonts\n├── ROADMAP.md   # Translation plan and progress\n├── UPSTREAM.md  # Which upstream commit we track\n├── LICENSE.md   # CC BY-NC-ND 3.0, same as upstream\n└── README.md    # You are here\n```\n\nEach translated chapter in `src_vi/` matches a file in `src/`\none-to-one (same filename, same section anchors). Diffing the two is\nthe simplest way to spot drift.\n\n## How to read\n\n**Online:** \u003chttps://tamnd.github.io/bgc-vi/\u003e, rebuilt on every merge\nto `main`.\n\n**Offline:** grab files from the\n[Releases](https://github.com/tamnd/bgc-vi/releases) page (PDF,\nEPUB, HTML zip, source code). Or read markdown directly in `src_vi/`,\nGitHub renders it fine.\n\n**Build it yourself:** see [Building](#building) below.\n\n## Contributing\n\nPull requests welcome. A few ground rules so the text stays readable:\n\n- **One chapter per PR.** Don't batch. Small PRs get merged, big PRs\n  sit.\n- **Translate meaning, not words.** If a literal translation reads\n  like a robot wrote it, rewrite it. Beej's tone is casual; yours\n  should be too.\n- **No machine translation.** Seriously. We can tell.\n- **Keep code blocks, function names, variable names, and C keywords\n  in English.** `malloc()` stays `malloc()`. `struct foo` stays\n  `struct foo`.\n- **First use of a technical term:** give the English word first,\n  then Vietnamese in parentheses if helpful. Subsequent uses can drop\n  the Vietnamese.\n- **No em dashes in Vietnamese prose.** Rewrite the sentence or use a\n  comma.\n- **Section anchors stay intact.** If the English says `{#pointers}`,\n  the Vietnamese says `{#pointers}`.\n\n### Workflow\n\n1. Pick a chapter in [ROADMAP.md](ROADMAP.md) marked \"not started\".\n2. Open an issue saying you're taking it, so no one duplicates work.\n3. Branch: `translate/\u003cchapter-slug\u003e` (e.g. `translate/pointers`).\n4. Copy `src/bgc_part_NNNN_\u003cslug\u003e.md` to `src_vi/` with the same\n   filename. Translate in place.\n5. Open a PR against `main`. Update the chapter status in ROADMAP.\n6. Expect review. The goal is prose that reads like a Vietnamese\n   developer wrote it from scratch.\n\n## Building\n\nThe repo uses the same build system as upstream (`bgbspd`, `pandoc`,\n`xelatex`), packaged in `Dockerfile.vi`.\n\nBuild locally via Docker or Podman:\n\n```\n./scripts/build_vi_docker.sh\n```\n\nThe `docs/` directory will contain HTML, PDFs, EPUB, and a landing\npage, identical to what lands on GitHub Pages.\n\nBuilding without a container: see `scripts/build_vi.sh` for the\nsteps (you'll need `pandoc`, `texlive-xetex`, `python3`, `make`,\n`zip`, `imagemagick`, `fonts-libertinus`).\n\n## Sync with upstream\n\nThe upstream commit we track is recorded in\n[UPSTREAM.md](UPSTREAM.md).\n\nWhen upstream ships changes, we re-sync `src/` against upstream; the\ndiff then tells us which translated chapters need touch-ups. If you\nspot drift, open an issue.\n\n## Credits\n\n- **Original guide:** Brian \"Beej Jorgensen\" Hall, 2007-present,\n  https://beej.us/guide/bgc/\n- **Vietnamese translation:** Duc-Tam Nguyen (tamnd@liteio.dev) and\n  [contributors](https://github.com/tamnd/bgc-vi/graphs/contributors)\n\n## License\n\n[CC BY-NC-ND 3.0](LICENSE.md), same as upstream. You can read it,\nshare it, and translate it. You can't sell it or make derivative\nworks (other than translations, which upstream explicitly permits).\nSource code in the guide is public domain.\n\nFull text: [LICENSE.md](LICENSE.md) \u0026middot; [Creative Commons\npage](https://creativecommons.org/licenses/by-nc-nd/3.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamnd%2Fbgc-vi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftamnd%2Fbgc-vi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamnd%2Fbgc-vi/lists"}