AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Localize Vi

skill-i18n-agent-i18nstack-localize-vi · by i18n-agent

Use when translating or localizing UI strings, marketing copy, documentation, or any source text into Vietnamese (Tiếng Việt). Isolating — NO gender, number, case, or conjugation. Enforces the six-tone diacritic system (never strip tone marks), the classifier system before counted nouns (một cái bàn, một con mèo), pronoun-based formality with bạn as UI default, adjective-after-noun order (tệp mới…

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add skill-i18n-agent-i18nstack-localize-vi

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-i18n-agent-i18nstack-localize-vi)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Localize Vi? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Localize: Vietnamese (vi → Tiếng Việt)

You are translating source text into Vietnamese for Vietnam. This skill captures grammar, register, UI conventions, formatting, and Vietnamese-specific failure modes derived from a production translation prompt.

Scope & Variants

One standard with regional flavors:

  • vi-VN — Vietnamese as used in Vietnam. Official state language.

Regional varieties:

  • Northern (Hanoi) — more formal, conservative vocabulary, standard pronunciation for media. Use as default for UI.
  • Southern (Saigon / Ho Chi Minh City) — more casual, more French/English loanwords, distinct vocabulary in some areas.
  • Central — distinct in spoken language; rarely a written-language target.

For product UI, write in standard written Vietnamese (Tiếng Việt chuẩn) based on Northern conventions, which is universally understood.

Native name: Tiếng Việt (the language); tiếng (language/voice) + Việt (Vietnamese).

Identity guardrail:

  • Vietnamese is Austroasiatic (Mon-Khmer family), NOT Chinese (Sino-Tibetan) and NOT Thai (Tai-Kadai). Despite heavy historical Chinese influence in vocabulary (~30-60% of words are Sino-Vietnamese), the grammar is fundamentally different.
  • Vietnamese uses the Latin alphabet with diacritics (Quốc Ngữ script, adopted from Portuguese missionary work, standardized 17th c.). It does NOT use Chinese characters anymore (Chữ Hán/Nôm was phased out).
  • Vietnamese is isolating — no inflections, no gender, no number. Words don't change form. Grammar is conveyed by word order, function words, and tones.

Register

Default level: bạn (standard polite) for software UI, errors, documentation, marketing aimed at general consumers.

Vietnamese formality is expressed through pronoun choice (not verb conjugation, which doesn't exist):

| Level | Pronoun | Use case | |---|---|---| | Very formal | Quý khách / Quý vị | Banking, premium services, official announcements | | Polite | Anh / Chị | Customer service to slightly older person, formal email | | Standard (UI default) | bạn | Most product UI, peer-to-peer messages | | Casual / familiar | (varies by age/relationship) | NOT for UI | | Intimate | em / anh / chị / mày / tao | NEVER in UI |

Rules:

  • Choose ONE pronoun level per file. Don't switch between bạn and Quý khách.
  • Match softening particles to formality ( with formal, nhé with friendly).
  • Avoid colloquial forms in professional UI: hông (= không, no), rùi (= rồi, already), (= này, this), dzậy (= vậy).

Examples:

  • ❌ "Quý khách nhấn vào đây nhé" (very formal Quý khách + casual nhé) → ✅ "Quý khách vui lòng nhấn vào đây" (or use bạn throughout)
  • ❌ "hông được" → ✅ "không được"
  • ❌ "rùi" → ✅ "rồi"
  • ❌ "nè" → ✅ "này"

Critical Hard Rules

Tone Marks (severity 3.0)

Vietnamese has 6 tones, all marked by diacritics. Stripping tone marks changes meaning and renders text effectively unreadable.

| Tone | Mark | Vietnamese | Example | |---|---|---|---| | Level (ngang) | (none) | ma | ghost | | Falling (huyền) | ` (grave) | mà | but | | Rising (sắc) | ´ (acute) | má | mother | | Dipping-rising (hỏi) | ̉ (hook above) | mả | grave | | Glottalized rising (ngã) | ˜ (tilde) | mã | code | | Heavy/falling-short (nặng) | ̣ (dot below) | mạ | rice seedling |

One word, 6 meanings. Stripping is catastrophic.

Vowel diacritics are also critical (ă, â, ê, ô, ơ, ư) — different vowels, not optional. Letters with both vowel diacritic AND tone are common: ấ, ầ, ẩ, ẫ, ậ, ấ, ằ, ẳ, ẵ, ặ, ế, ề, ể, ễ, ệ, ố, ồ, ổ, ỗ, ộ, ớ, ờ, ở, ỡ, ợ, ứ, ừ, ử, ữ, ự.

| Wrong (stripped) | Correct | Meaning | |---|---|---| | Cam on ban | Cảm ơn bạn | Thank you | | Luu y | Lưu ý | Note | | Tai len | Tải lên | Upload | | Mat khau | Mật khẩu | Password | | Tieng Viet | Tiếng Việt | Vietnamese |

NEVER omit diacritics in formal/UI text. ASCII-Vietnamese exists in casual chat but is unacceptable in product UI.

Classifier System (Loại từ) (severity 2.0)

Vietnamese requires a classifier before a counted noun. Bare numbers + nouns are ungrammatical (with some exceptions).

| Classifier | Used for | Example | |---|---|---| | cái | general objects, things | một cái bàn (a table), hai cái ghế (two chairs) | | con | animals, some objects (knives, rivers, boats) | một con mèo (a cat), một con dao (a knife) | | người | people | một người (a person), năm người (five people) | | quyển / cuốn | books, magazines, notebooks | một quyển sách (a book) | | tờ | flat objects, paper, newspapers | một tờ giấy (a sheet of paper), một tờ báo | | chiếc | vehicles, some objects | một chiếc xe (a vehicle), một chiếc áo | | bộ | sets, collections | một bộ quần áo (an outfit) | | cây | trees, long objects | một cây bút (a pen) | | viên | small round/lumpy objects | một viên đá (a stone), một viên thuốc (a pill) | | bức | flat artworks | một bức tranh (a painting) |

No classifier needed for:

  • Inherent counted nouns: ngôn ngữ (language), tệp (file), phút (minute), nước (country)
  • {count} ngôn ngữ ✓ (no classifier needed)
  • {count} tệp ✓ (no classifier needed for "file" in UI usage)

Plural markers (các, những) are OMITTED with numbers:

  • ✅ "{count} tệp" (not "{count} các tệp")
  • ✅ "5 ngôn ngữ" (not "5 các ngôn ngữ")
  • ✅ "các tệp" (when no count: general "the files")

Adjective-After-Noun Word Order (severity 2.0)

Vietnamese places modifiers AFTER the head word, opposite of English.

| Wrong (English order) | Correct (Vietnamese) | English | |---|---|---| | mới tệp | tệp mới | new file | | đẹp nhà | nhà đẹp | beautiful house | | mới tính năng | tính năng mới | new feature | | cao tốc độ | tốc độ cao | high speed | | tốt chất lượng | chất lượng tốt | good quality | | xanh áo | áo xanh | blue shirt |

This applies to:

  • Adjectives (tệp mới)
  • Possessives (nhà của tôi — house of mine)
  • Relative clauses (tệp mà bạn đã chọn — file that you selected)
  • Demonstratives (tệp này — this file, tệp đó — that file)

Active Voice over Passive (severity 1.5)

Vietnamese overuses được (passive marker) creates stiff, translation-y text. Prefer active voice.

| Wrong (passive) | Correct (active) | |---|---| | File được lưu bởi hệ thống | Hệ thống đã lưu file / File đã lưu | | Tệp được tải lên bởi người dùng | Người dùng đã tải lên tệp | | Email được gửi | Đã gửi email | | Thông báo được tạo | Đã tạo thông báo |

được IS appropriate when:

  • The agent is unknown / irrelevant
  • Expressing positive permission: "Bạn được phép truy cập" (you are allowed to access)
  • After verbs of allowance: cho phép, cấp

Progressive Form with đang (severity 1.5)

For ongoing/loading actions, use đang + verb — not the bare verb.

| Wrong | Correct | English | |---|---|---| | Tải... | Đang tải... | Loading... | | Lưu... | Đang lưu... | Saving... | | Xử lý... | Đang xử lý... | Processing... | | Kết nối... | Đang kết nối... | Connecting... | | Tìm kiếm... | Đang tìm kiếm... | Searching... |

đang marks ongoing action (present continuous). Without it, the bare verb reads as imperative or generic.

No-Plural-Marker Rule

Vietnamese has plural markers các (definite plural) and những (indefinite plural), but:

  • They're omitted with explicit numbers (5 tệp, NOT 5 các tệp)
  • They're omitted in most counting/quantity contexts
  • They appear in general "the X" references: "các tệp đã chọn" (the selected files)

UI Conventions

Button Labels — Concise Imperative

Vietnamese buttons use short imperatives without polite prefixes:

| Wrong (with hãy/polite prefix) | Correct (concise) | English | |---|---|---| | Hãy lưu lại | Lưu | Save | | Hãy xóa | Xóa | Delete | | Hãy hủy bỏ | Hủy | Cancel | | Hãy tải lên | Tải lên | Upload | | Hãy chọn | Chọn | Select | | Hãy đóng | Đóng | Close |

(Hãy is a polite imperative marker — appropriate in instructions or polite requests, but bloats buttons.)

Status Messages — Đang + verb...

✅ Đang tải...           (Loading...)
✅ Đang lưu...           (Saving...)
✅ Đang xử lý dữ liệu... (Processing data...)
✅ Đã lưu                (Saved — past completion)
✅ Đã sẵn sàng           (Ready)
❌ Tải                    (just "load" — sounds imperative)
❌ Đang được tải         (passive + đang — too stiff)

Drag-and-Drop Vocabulary

  • kéo = drag
  • thả = drop / release
  • ❌ "drag" / "drop" (English) — wrong
✅ Kéo tệp vào đây            (drag files here)
✅ Kéo và thả vào đây         (drag and drop here)
✅ Kéo thả tệp                (drag-drop files — compact)
❌ Drag tệp / Drop tại đây

Error Messages — Natural Phrasing

| Wrong (calque) | Correct (natural) | |---|---| | Thất bại khi tải | Không thể tải / Lỗi tải | | Lỗi khi lưu | Không thể lưu / Lưu không thành công | | Thất bại để kết nối | Không thể kết nối | | Lỗi xảy ra | Đã xảy ra lỗi (if needed; usually omit entirely) |

Pattern: Không thể + [verb] is the canonical "failed to X" structure.

File Picker / Placeholder Handling

Vietnamese can suffix-free with placeholders (unlike Hungarian or Finnish), but add type markers for clarity when placeholders represent types/formats:

| Less clear | Preferred (with type marker) | |---|---| | Hỗ trợ tệp {formatList} | Hỗ trợ tệp định dạng {formatList} | | Nội dung {languageList} | Nội dung bằng {languageList} ngôn ngữ |

Exception: simple quantity ({count} tệp) and established compounds (tệp JSON, tệp PDF) don't need markers.

Softening Particles

Vietnamese uses sentence-final particles to soften tone:

| Particle | Use | Example | |---|---|---| | nhé | friendly suggestion | "Nhấn vào đây nhé" (Click here, ok?) | | nhá | gentle confirmation | "Đúng rồi nhá" (That's right) | | | respectful (formal) | "Cảm ơn bạn ạ" (Thank you) | | chứ | reinforcement | "Tốt chứ" (It's good, right?) | | đi | mild imperative | "Làm đi" (Just do it) | | với | "too" / "along with" | "Tôi với" (Me too) |

Match particle to register:

  • Formal (Quý khách) →
  • Standard (bạn) → no particle or mild nhé in friendly messages
  • DO NOT add particles in buttons or terse UI labels — they bloat the UI

Punctuation, Numbers, Dates, Currency

Quotation Marks

  • Vietnamese uses standard double quotes "..." or angle quotes «...»
  • Less commonly, single quotes
  • No special "Vietnamese quote marks" — straight or curly double quotes are standard

Numbers

  • Decimal separator: comma (3,14)
  • Thousands separator: period (100.000)
  • Format: 1.234.567,89
  • ❌ 1,234.56 (US) → ✅ 1.234,56

Dates — DD/MM/YYYY

  • Numeric: 15/01/2024 (slashes)
  • Word form: 15 tháng 1, 2024 or ngày 15 tháng 1 năm 2024 (day-month-year, "tháng" = month, "năm" = year)
  • ❌ 01/15/2024 (US) → ✅ 15/01/2024
  • ❌ 2024-01-15 (ISO; acceptable in technical contexts but not customer-facing UI)

Time

  • 24-hour: 14:30
  • Word form: 2 giờ 30 chiều (2:30 PM, chiều = afternoon) or 14 giờ 30 or 2 rưỡi chiều (half past two PM)
  • AM/PM equivalents: sáng (morning), trưa (noon), chiều (afternoon), tối (evening), đêm (night)

Currency: VND đồng

  • Vietnam uses the đồng (₫ or VND). NOT in any monetary union.
  • Format: 100.000₫ or 100,000 VND (period thousands, ₫ after, no decimals in casual use)
  • The đồng is heavily inflated; sub-1000 amounts are essentially absent from UI
  • ❌ $100 → ✅ 100.000₫ (use VND, NOT dollars)
  • ❌ 100.000 đồng (verbose in UI) — acceptable in body text but 100.000₫ for compact UI

Comma Rules

NO comma before coordinating conjunctions (hoặc, hay, và, cũng như):

  • ❌ "Kéo tệp vào đây, hoặc nhấp" → ✅ "Kéo tệp vào đây hoặc nhấp"
  • ❌ "Lưu tệp, và đóng" → ✅ "Lưu tệp và đóng"

Comma DOES go before subordinating clauses (nếu, khi, vì, nhưng):

  • "Nhấn vào đây, nếu bạn muốn tiếp tục"
  • "Không hoạt động, vì tệp bị thiếu"
  • "Đó là tệp nhỏ, nhưng quan trọng"

Word Spacing

Vietnamese DOES use spaces between syllables (unlike Thai or Chinese). Each syllable is a separate "word" in writing:

  • ✅ "Cảm ơn bạn" (three separated syllables)
  • ❌ "Cảmơnbạn" (wrong)

Compound words are written as separated syllables: máy tính (computer), điện thoại (phone), phần mềm (software). Don't fuse them.

Terminology

| English | Preferred Vietnamese | Avoid | |---|---|---| | Save | Lưu | | | Delete | Xóa | | | Cancel | Hủy | Hủy bỏ (verbose) | | Upload | Tải lên | Upload (English) | | Download | Tải xuống | Download | | Settings | Cài đặt | Thiết lập (less common in modern UI) | | Search | Tìm kiếm | | | Edit | Chỉnh sửa | Edit | | Copy | Sao chép | Copy (use in some contexts) | | Paste | Dán | | | Close | Đóng | | | Open | Mở | | | File | Tệp / tập tin / file | (file is also acceptable in tech context) | | Folder | Thư mục | | | User | Người dùng | | | Password | Mật khẩu | | | Email | Email / Thư điện tử | (Email is preferred in modern UI) | | Username | Tên đăng nhập | | | Log in | Đăng nhập | | | Log out | Đăng xuất | | | Dashboard | Bảng điều khiển | | | Account | Tài khoản | | | Browser | Trình duyệt | | | Click | Nhấp / nhấn / bấm | | | Submit | Gửi | | | Loading | Đang tải | |

Proper noun abbreviations in UI:

  • ✅ "Mỹ" / "Hoa Kỳ" (NOT "Hợp chúng quốc Hoa Kỳ" in cramped UI)
  • ✅ "Anh" / "Vương quốc Anh" (NOT "Vương quốc Liên hiệp Anh và Bắc Ireland")
  • ✅ "Úc" (NOT "Ô-xtrây-li-a" — old transliteration, sounds archaic)
  • ✅ "Đức" (Germany), "Nhật" (Japan), "Hàn" (Korea), "Trung Quốc" (China)

Tech English tolerance: Modern Vietnamese tolerates well-established English tech terms (email, app, online, wifi, link, ID, OK). Don't over-translate these.

Calque / Anti-Pattern Blocklist

| Wrong (calque) | Correct (idiomatic) | Source | |---|---|---| | Nó có nghĩa | Điều này hợp lý / Có lý | "it makes sense" | | Vào cuối ngày | Cuối cùng / Suy cho cùng | "at the end of the day" | | Không thực sự | Thực ra không phải / Không hẳn | "not really" | | Lấy một nghỉ | Nghỉ ngơi | "take a break" | | Gãy chân đi | Chúc may mắn! | "break a leg" | | Miếng bánh | Dễ như trở bàn tay / Dễ ợt | "piece of cake" | | 25+ ngôn ngữ | hơn 25 ngôn ngữ / trên 25 ngôn ngữ | "25+ languages" | | +{count} thêm | và {count} khác / thêm {count} | "+{count} more" | | {min} ký tự dài | ít nhất {min} ký tự | "{min} characters long" | | 5 phút dài | 5 phút | "5 minutes long" (length is implicit) | | Thất bại khi tải | Không thể tải / Lỗi tải | "failed to load" | | Lỗi khi lưu | Không thể lưu | "error saving" | | File được lưu | Đã lưu file / File đã lưu | "the file was saved" (passive→active) |

Question Particles

Vietnamese questions don't change word order. They use sentence-final particles or question words:

| Form | Pattern | Example | |---|---|---| | Yes/no question | sentence + không? | "Bạn có muốn lưu không?" (Do you want to save?) | | Or-question | A + hay + B | "Lưu hay hủy?" (Save or cancel?) | | Wh-question | WH-word in question position | "Tệp ở đâu?" (Where is the file?) | | Tag question | sentence + đúng không? / phải không? | "Tệp đã lưu, đúng không?" |

Self-Check Checklist

Run BEFORE finalizing each translation:

Accuracy (critical):

  • [ ] All tone marks present (Cảm ơn bạn, not Cam on ban) — never strip
  • [ ] Vowel diacritics present (ă, â, ê, ô, ơ, ư + combined with tones)
  • [ ] Classifier used when counting nouns (một cái bàn, một con mèo, một quyển sách); BUT no classifier for inherent counts (5 ngôn ngữ, 3 tệp)
  • [ ] Adjective AFTER noun (tệp mới, NOT mới tệp)
  • [ ] No plural marker with numbers (5 tệp, NOT 5 các tệp)
  • [ ] Active voice preferred ove

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.