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

Localize Th

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

Use when translating or localizing UI strings, marketing copy, documentation, or any source text into Thai (ภาษาไทย). Isolating Tai-Kadai — NO gender, number, case, or conjugation. The defining feature is NO SPACES between words (spaces only at clause breaks). Enforces the 5-tone system with mandatory tone marks, the classifier system (คน/ตัว/อัน/แผ่น), three formality registers (polite สุภาพ as…

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

Install

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

✓ 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-th)

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 Th? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Localize: Thai (th → ภาษาไทย)

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

Scope & Variants

One standard:

  • th-TH — Central Thai (ภาษาไทยกลาง) as used in Bangkok. The national standard.

Regional varieties (Northern/Isaan/Southern) exist as spoken languages but are NEVER used in written/UI contexts. Always write standard Central Thai.

Native name: ภาษาไทย (the language).

Identity guardrail:

  • Thai is Tai-Kadai (Kra-Dai), NOT Chinese (Sino-Tibetan), NOT Vietnamese (Austroasiatic), NOT Cambodian (Austroasiatic), NOT Burmese (Sino-Tibetan). Closest relative is Lao (mutually intelligible to ~70%).
  • Thai uses the Thai script (อักษรไทย), derived from Khmer/Brahmi. 44 consonants, 32 vowels (including combinations), 4 tone marks. NOT Latin script.
  • Thai is isolating — no inflections, no gender, no number. Grammar is conveyed by word order, particles, and tones.
  • Thai has heavy Sanskrit/Pali influence in formal vocabulary (especially religious, royal, legal). UI generally uses everyday Thai vocabulary.

Register

Default level: ภาษาสุภาพ (polite standard) for software UI, errors, documentation, marketing.

Thai has three main formality registers:

| Register | Use case | Example | |---|---|---| | ภาษาทางการ (formal) | Royal/legal/official documents | กราบเรียน ท่าน | | ภาษาสุภาพ (polite — UI default) | Business, UI, customer service, public | คุณสามารถ, กรุณา | | ภาษาพูด (colloquial) | Casual conversation, social media | ไร, มะได้, รึป่าว |

Within a file, ONE register only. Don't mix formal and colloquial.

Colloquial shortenings to AVOID in UI:

| Wrong (colloquial) | Correct (polite written) | Meaning | |---|---|---| | มะได้ | ไม่ได้ | cannot | | ไร | อะไร | what | | แค่นั้น | เท่านั้น | only that | | งั้น | เช่นนั้น / ถ้าอย่างนั้น | so / in that case | | รึ | หรือ | or | | ป่าว | หรือเปล่า | or not | | ก็ได้ | (acceptable in casual UI; varies) | also possible | | หนิ | นี้ | this | | เนี่ย | (intensifier — avoid in UI) | this/here |

Critical Hard Rules

NO SPACES Between Thai Words (severity 2.0 — THE defining Thai rule)

Thai does NOT use spaces between words. Words run continuously. Spaces are ONLY used at clause/sentence boundaries.

| Wrong (English-style spacing) | Correct (Thai run-together) | |---|---| | ยินดี ต้อนรับ | ยินดีต้อนรับ (welcome) | | สวัสดี ตอน เช้า | สวัสดีตอนเช้า (good morning) | | คุณ สามารถ ลบ ไฟล์ ได้ | คุณสามารถลบไฟล์ได้ (you can delete the file) | | ผม กำลัง ทำ | ผมกำลังทำ (I am doing) | | ภาษา ไทย | ภาษาไทย (Thai language) | | ใหม่ ๆ | ใหม่ ๆ (multiple new — repetition mark does take adjacent space-like behavior) |

This is the #1 Thai translation error. Machine translators and non-native writers add English-style spaces that completely break Thai readability.

Spaces ARE used at:

  • Clause breaks (where English would use a comma or period)
  • Before and after Latin/Arabic numerals embedded in Thai text: "อายุ 25 ปี" (age 25 years)
  • Before and after Latin script embedded: "เปิด Microsoft Word"
  • Before and after the colon (:) — see below

Spaces are NOT used:

  • Between Thai words
  • Within compound words: "เครื่องบิน" (airplane), "ห้องน้ำ" (bathroom)

Colon Spacing (severity 1.5)

Thai requires a space before AND after the colon (unlike English which has only space after):

  • ❌ "อีเมล:user@example.com" (no spaces) → ✅ "อีเมล : user@example.com"
  • ❌ "ชื่อ: สมชาย" → ✅ "ชื่อ : สมชาย"
  • ❌ "เวลา:14:30" → ✅ "เวลา : 14:30" (but the time itself has no space around the colon)

This is part of standard Thai typographic convention.

Tone Marks and Vowels (essential — meaning-critical)

Thai has 5 tones determined by a combination of:

  1. Consonant class (high/mid/low — three classes)
  2. Vowel length (long/short)
  3. Live/dead syllable (final consonant or vowel ending)
  4. Tone mark (◌่ ◌้ ◌๊ ◌๋ — mai ek, mai tho, mai tri, mai chattawa)

The tone determines meaning:

  • มา (mā, mid tone) = to come
  • ม่า (mà, low tone) = (rare)
  • ม้า (má, high tone) = horse
  • หม้า / หมา (hmǎ, rising tone) = dog (with high-class consonant cluster)

NEVER omit tone marks or vowel marks. All Thai diacritics are meaning-critical.

Vowel marks that go above, below, before, after, or around the consonant:

  • เ-, แ-, โ-, ใ-, ไ- (before)
  • -ะ, -า (after)
  • -ิ, -ี, -ึ, -ื, -ุ, -ู (above/below)
  • เ-า, เ-ือ (around)

Get them all right.

Classifier System (ลักษณนาม) (severity 1.5)

Thai requires a classifier (ลักษณนาม) when counting nouns. The pattern is:

NOUN + NUMBER + CLASSIFIER (most common) or NUMBER + CLASSIFIER + NOUN (less common, archaic)

| Classifier | Used for | Example | |---|---|---| | คน | people | คน 5 คน (five people), ผู้ใช้ 3 คน (3 users) | | ตัว | animals, some objects (clothing items, characters) | แมว 2 ตัว (2 cats), เสื้อ 1 ตัว (1 shirt) | | อัน | general small objects | ปากกา 3 อัน (3 pens) | | ชิ้น | pieces, items | เค้ก 5 ชิ้น (5 pieces of cake) | | แผ่น | flat objects, sheets, discs | กระดาษ 10 แผ่น (10 sheets) | | ใบ | flat-roundish (paper, leaves, hats, faces) | ใบไม้ 3 ใบ (3 leaves), หมวก 1 ใบ | | ลูก | round objects, fruits, children (informal) | ลูกบอล 1 ลูก (1 ball) | | เล่ม | books, knives | หนังสือ 3 เล่ม (3 books) | | คัน | vehicles, umbrellas, fishing rods | รถ 1 คัน (1 car) | | หลัง | buildings | บ้าน 2 หลัง (2 houses) | | แห่ง / ที่ | places, locations | สถานที่ 5 แห่ง | | รายการ | items in a list | 10 รายการ (10 items) | | ภาษา | languages (the noun IS the classifier) | 5 ภาษา (5 languages) | | ไฟล์ | files (the noun IS the classifier in modern usage) | 10 ไฟล์ (10 files) |

Self-classifying nouns (don't need an additional classifier): ภาษา, ไฟล์, นาที, วินาที, ชั่วโมง, รายการ. The noun itself acts as classifier.

  • ❌ 5 คน ภาษา (cannot use "person" classifier for language)
  • 5 ภาษา (language is its own classifier)
  • 5 ไฟล์ (file is its own classifier in modern usage)

Modifier-After-Head Word Order (severity 1.5)

Thai modifiers FOLLOW the head word (like Vietnamese, opposite of English):

| Wrong (English order) | Correct (Thai) | English | |---|---|---| | ใหม่ไฟล์ | ไฟล์ใหม่ | new file | | ดีระบบ | ระบบดี | good system | | ใหญ่ห้อง | ห้องใหญ่ | big room | | สวยหญิง | หญิงสวย | beautiful woman |

Applies to:

  • Adjectives (ไฟล์ ใหม่)
  • Demonstratives (ไฟล์ นี้ this, ไฟล์ นั้น that)
  • Possessives via ของ (ไฟล์ ของฉัน my file)
  • Relative clauses (ไฟล์ ที่ฉันเลือก the file that I selected)

Pronoun Choice for UI

Thai has dozens of pronouns. For UI:

| Pronoun | Use | Note | |---|---|---| | คุณ | "you" — polite standard | DEFAULT for UI | | ท่าน | "you" — formal/honorific | For premium/banking | | เธอ | "you" — intimate | NEVER in UI (sounds romantic/familial) | | คุณท่าน | "you" — formal | Less common | | ผม / ดิฉัน | "I" — polite (m / f) | For first-person if needed (rare in UI) | | พวกเรา | "we" — inclusive | For "we" |

  • ❌ "เธอสามารถ..." (intimate) → ✅ "คุณสามารถ..."

Active Voice over Passive (severity 1.5)

Thai prefers active voice. The passive marker ถูก (suggests negative experience) or โดย (formal) creates stiff translations:

| Wrong (passive) | Correct (active) | English | |---|---|---| | ไฟล์ถูกบันทึกโดยระบบ | ระบบบันทึกไฟล์แล้ว / บันทึกไฟล์แล้ว | The file was saved by the system | | ผู้ใช้ถูกตัดออก | ตัดผู้ใช้ออกแล้ว | The user was removed | | ข้อความถูกส่ง | ส่งข้อความแล้ว | The message was sent |

ถูก is fine when expressing genuinely passive/negative scenarios ("ถูกแฮ็ก" = was hacked) but should not pad UI status messages.

Progressive Form with กำลัง (for status messages)

Thai uses กำลัง + verb for ongoing actions:

| Wrong | Correct | English | |---|---|---| | โหลด... | กำลังโหลด... | Loading... | | บันทึก... | กำลังบันทึก... | Saving... | | ประมวลผล... | กำลังประมวลผล... | Processing... | | ส่ง... | กำลังส่ง... | Sending... |

For completed: แล้ว marker — "บันทึกแล้ว" (saved), "เสร็จแล้ว" (done).

UI Conventions

Button Labels — No Polite Particles

Thai buttons use bare verbs/imperatives without polite particles. The polite particles ครับ (male) and ค่ะ (female) are for spoken/conversational use and bloat UI:

| Wrong (with particle) | Correct (clean) | English | |---|---|---| | กรุณาบันทึกครับ | บันทึก | Save | | กรุณายกเลิกค่ะ | ยกเลิก | Cancel | | กรุณาลบครับ | ลบ | Delete | | กรุณาอัปโหลดค่ะ | อัปโหลด | Upload | | กรุณาดาวน์โหลด | ดาวน์โหลด | Download | | กรุณาเลือก | เลือก | Select | | กรุณาตกลง | ตกลง | OK / Confirm |

กรุณา (please) is sometimes used in instructions or polite system messages but not on action buttons.

Status Messages — No Polite Particles

✅ กำลังโหลด...        (Loading...)
✅ กำลังบันทึก...       (Saving...)
✅ บันทึกแล้ว           (Saved)
✅ เสร็จสิ้น             (Complete)
❌ กำลังโหลดครับ        (with polite particle — wrong for UI)
❌ บันทึกแล้วค่ะ         (with polite particle)

Drag-and-Drop Vocabulary

  • ลาก = drag
  • วาง = place/drop (the standard term)
  • ปล่อย = release
  • ❌ "drag" / "drop" (English) — wrong, except in casual tech speak
✅ ลากไฟล์มาที่นี่               (drag files here)
✅ ลากและวางที่นี่                (drag and drop here)
✅ เลือกไฟล์หรือลากและวางที่นี่   (select file or drag and drop here)
❌ Drag ไฟล์
❌ เลือกไฟล์หรือลาก  (incomplete — must complete the phrase)

Error Messages — Polite, Indirect

Thai culture values face-saving. Direct accusations are softened:

| Wrong (direct) | Correct (indirect/polite) | |---|---| | คุณผิด | ขออภัย อาจมีข้อผิดพลาด (Apologies, there may be an error) | | ทำไม่ถูก | กรุณาลองอีกครั้ง (Please try again) | | รหัสผ่านผิด | รหัสผ่านไม่ถูกต้อง (Password incorrect — less accusatory) |

UI Label Completeness (severity 1.0)

Thai UI labels should be COMPLETE descriptive phrases, not abbreviated nominal heads:

| Wrong (incomplete) | Correct (complete) | English | |---|---|---| | การตรวจจับทางเลือก | วิธีการตรวจจับทางเลือก | Alternative detection method | | การบันทึกอัตโนมัติ | การตั้งค่าการบันทึกอัตโนมัติ | Auto-save settings |

Punctuation, Numbers, Dates, Currency

Quotation Marks

  • Thai uses standard double quotes "..." or sometimes angle quotes «...»
  • No special "Thai quote marks"
  • Curly or straight double quotes are both acceptable

Numbers

  • Decimal separator: period (3.14)
  • Thousands separator: comma (100,000)
  • Format: 1,234,567.89
  • ❌ 1.234.567,89 (European) → ✅ 1,234,567.89

Thai numerals (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) exist but are rarely used in modern UI. Latin/Arabic numerals are standard.

Dates — DD/MM/YYYY (with Buddhist Era option)

Buddhist Era (BE / พ.ศ.) is +543 years from CE/AD:

  • CE 2024 = BE 2567
  • CE 2025 = BE 2568

| Form | Example | Meaning | |---|---|---| | Numeric BE | 15/01/2567 | 15 Jan 2024 BE format | | Numeric CE | 15/01/2024 | 15 Jan 2024 CE format (international) | | Word form BE | 15 มกราคม 2567 | 15 January BE | | Long BE | วันที่ 15 มกราคม พ.ศ. 2567 | Date 15 January B.E. 2567 | | Word form CE | 15 มกราคม 2024 / ค.ศ. 2024 | (CE marked explicitly) |

For international products / tech UI: use CE (2024). For traditional/government-facing Thai contexts: BE (2567). When in doubt, state which era explicitly if the year could be ambiguous.

Months (always lowercase): | English | Thai (full) | Thai (abbrev) | |---|---|---| | January | มกราคม | ม.ค. | | February | กุมภาพันธ์ | ก.พ. | | March | มีนาคม | มี.ค. | | April | เมษายน | เม.ย. | | May | พฤษภาคม | พ.ค. | | June | มิถุนายน | มิ.ย. | | July | กรกฎาคม | ก.ค. | | August | สิงหาคม | ส.ค. | | September | กันยายน | ก.ย. | | October | ตุลาคม | ต.ค. | | November | พฤศจิกายน | พ.ย. | | December | ธันวาคม | ธ.ค. |

Time

  • 24-hour: 14:30 น. (น. = นาฬิกา = o'clock marker; optional in tech UI)
  • Word form: บ่ายสองโมงครึ่ง (2:30 PM in traditional Thai 6-hour cycle)
  • For UI, prefer 14:30 (international 24-hour, no marker needed)

Currency: THB Baht

  • Thailand uses the baht (฿ / THB). Symbol BEFORE amount.
  • Format: ฿1,000 or 1,000 บาท
  • Subdivision: 100 satang (สตางค์) — rarely used in everyday UI
  • ❌ 1.000,00 ฿ → ✅ 1,000.00 ฿ or ฿1,000
  • ❌ $100 → ✅ ฿3,500 (or whatever THB equivalent — use Baht for Thai users)

Comma in Sentences

Thai sentences typically do NOT use commas internally the way English does. Clause boundaries are marked by:

  • Spaces (where English uses commas)
  • Particles like แล้ว (then), และ (and), หรือ (or), แต่ (but)

Don't insert commas mid-sentence in Thai.

Terminology

| English | Preferred Thai | Avoid | |---|---|---| | Email | อีเมล | จดหมายอิเล็กทรอนิกส์ (verbose) | | Update | อัปเดต | ปรับปรุง (in modern tech contexts) | | Website | เว็บไซต์ | | | Privacy | ความเป็นส่วนตัว | | | Contact | ติดต่อ | | | Save | บันทึก | | | Delete | ลบ | | | Cancel | ยกเลิก | | | Upload | อัปโหลด | | | Download | ดาวน์โหลด | | | Settings | การตั้งค่า / ตั้งค่า | | | Search | ค้นหา | | | Edit | แก้ไข | | | Copy | คัดลอก | | | Paste | วาง | | | Close | ปิด | | | Open | เปิด | | | File | ไฟล์ | | | Folder | โฟลเดอร์ | | | User | ผู้ใช้ | | | Password | รหัสผ่าน | | | Username | ชื่อผู้ใช้ | | | Log in | เข้าสู่ระบบ / ล็อกอิน | | | Log out | ออกจากระบบ / ล็อกเอาต์ | | | Dashboard | แดชบอร์ด | | | Account | บัญชี | | | Click | คลิก | | | Submit | ส่ง | | | Loading | กำลังโหลด | |

Modern Thai is loanword-friendly for tech. Anglicism transliterations like อีเมล, อัปเดต, แดชบอร์ด, ดาวน์โหลด, อัปโหลด, คลิก are PREFERRED over native calques like จดหมายอิเล็กทรอนิกส์. Don't over-translate.

Proper noun abbreviations in UI:

  • สหรัฐฯ (with mai yamok ) / อเมริกา (NOT "สหรัฐอเมริกา" in cramped UI)
  • สหราชอาณาจักร / อังกฤษ (NOT the full official name)
  • ไทย for Thailand in informal UI
  • ญี่ปุ่น (Japan), เกาหลี (Korea), จีน (China), เยอรมัน / เยอรมนี (Germany)

Brand names: Keep in original form for global brands (Apple, Google, Microsoft, Facebook). Don't transliterate established global brand names.

List Parallelism (severity 1.5)

When a list contains multiple items of the same semantic category (language names, file types, country names), ALL items must use the same grammatical form:

| Wrong (mixed) | Correct (parallel) | Reason | |---|---|---| | แปลเป็นภาษาเยอรมัน ฟินแลนด์ หรือไทย | แปลเป็นภาษาเยอรมัน ภาษาฟินแลนด์ หรือภาษาไทย | Either all use "ภาษา" prefix... | | | แปลเป็นเยอรมัน ฟินแลนด์ หรือไทย | ...or none does. Don't mix. | | ไฟล์ PDF, เวิร์ด, หรือ excel | ไฟล์ PDF, Word, หรือ Excel | Don't mix transliteration with original |

Apply this rule wherever list items share a category.

Calque / Anti-Pattern Blocklist

| Wrong (calque) | Correct (idiomatic) | Source | |---|---|---| | มันสมเหตุสมผล | เข้าใจได้ / มีเหตุผล | "it makes sense" | | ตอนท้ายวัน | ในที่สุด / สรุปแล้ว | "at the end of the day" | | ไม่จริงๆ | จริงๆ แล้วไม่ใช่ / ไม่ใช่เลย | "not really" | | 25+ ภาษา | มากกว่า 25 ภาษา / กว่า 25 ภาษา | "25+ languages" | | +{count} เพิ่มเติม | และอีก {count} ภาษา | "+{count} more" | | {min} ตัวอักษรยาว | อย่างน้อย {min} ตัวอักษร | "{min} characters long" | | 5 นาทียาว | 5 นาที | "5 minutes long" (length implicit) | | ใหม่ไฟล์ | ไฟล์ใหม่ | English adjective-first order | | ถูกบันทึกโดยระบบ | ระบบบันทึก / บันทึกแล้ว | "was saved by the system" | | ทำให้ดีที่สุด | ทำให้ดีที่สุด (acceptable) | "make best" | | ออฟฟิศ | ที่ทำงาน / สำนักงาน | Optional — borrowed but native is also fi

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.