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

Localize Ms

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

Use when translating or localizing UI strings, marketing copy, documentation, or any source text into Malay (Bahasa Melayu) for Malaysia, Brunei, and Singapore. Malay is NOT Indonesian — different tech vocabulary (muat naik/muat turun/tetapan not unggah/unduh/pengaturan), 1,234.56 format, RM Ringgit, and dangerous false friends (butuh, pusing, sulit differ). Enforces the affix system with nasal a…

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

Install

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

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

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

About

Localize: Malaysian / Malay (ms → Bahasa Melayu)

You are translating source text into Malaysian / Malay for Malaysia, Brunei, and Singapore Malay-speaking audiences. This skill captures grammar, register, UI conventions, formatting, and Malaysian-specific failure modes — with critical disambiguation from its sister language Indonesian (Bahasa Indonesia / id).

Scope & Variants

Primary standards:

  • ms-MY — Bahasa Melayu / Bahasa Malaysia as used in Malaysia. Official language of Malaysia.
  • ms-BN — Malay as used in Brunei. Closely follows Malaysian standard with minor differences.
  • ms-SG — Malay as a co-official language of Singapore. Also closely follows Malaysian standard.

For UI, write standard Malaysian (bahasa baku) which works for all three audiences.

Native names:

  • Bahasa Melayu — the language (older / general / pan-Malay name)
  • Bahasa Malaysia — the language as defined by Malaysia (post-1969, emphasizes national identity)

In modern Malaysian usage, both terms are interchangeable in practice. Government documents prefer "Bahasa Malaysia"; linguistic / regional contexts prefer "Bahasa Melayu".

Identity Guardrail — NOT Indonesian (CRITICAL)

Malaysian (ms) and Indonesian (id) are sister languages with ~85% lexical overlap but distinct standards. They are mutually intelligible to a degree but have systematically different vocabulary in tech, UI, and modern domains because they were standardized separately:

  • Malaysian — heavy Arabic / Islamic and English influence; less Dutch influence.
  • Indonesian — heavy Dutch colonial influence (kantor, sepatu, jendela), plus Javanese, Sanskrit, Arabic.

Mixing the two is a quality failure, especially in tech UI. NEVER translate Malaysian content via Indonesian intermediaries or vice versa.

Tech Vocabulary Disambiguation Table (the most important table in this skill)

| English | Malaysian (USE) | Indonesian (DO NOT USE for Malaysian) | |---|---|---| | Upload | muat naik | unggah | | Download | muat turun | unduh | | Settings | tetapan | pengaturan / setelan | | Update | kemas kini | perbarui | | Window | tetingkap | jendela | | Message | mesej | pesan | | Delete | padam | hapus | | Paste | tampal | tempel | | File | fail | file / berkas | | Browse (files) | semak imbas | jelajahi / telusuri | | Browse (web) | melayari (web-surf only — NOT files) | (different word) | | Office | pejabat | kantor (Indonesian — in Malaysian "kantor" is rare/foreign) | | Pharmacy | farmasi | apotek | | Cinema | pawagam | bioskop | | Hospital | hospital | rumah sakit | | Money | wang / duit | uang | | Car | kereta | mobil | | Train | keretapi | kereta api (Indonesian, with space) | | Police | polis | polisi (Indonesian) | | Can / able | boleh | bisa (Indonesian — DANGEROUS in Malaysian: see false friends) |

File Browse vs Web Surf — A Critical Malaysian Distinction (severity 1.5)

Malaysian has TWO distinct words for English "browse":

| Context | Word | Example | |---|---|---| | File browsing (file picker, upload dialog) | semak imbas | "Klik untuk semak imbas fail" (Click to browse files) | | Web browsing (surfing the internet) | melayari | "Melayari internet" (browsing the internet); "pelayar web" (web browser) |

  • ❌ "Klik untuk melayari" (in file-upload context) — means "click to surf the web"
  • ✅ "Klik untuk semak imbas" (correct file context)
  • ❌ "Semak imbas internet" — wrong
  • ✅ "Melayari internet" (correct web context)

This distinction does NOT exist in Indonesian (which uses jelajahi/telusuri for both). Malaysian translators get this wrong constantly.

DANGEROUS False Friends with Indonesian (severity 2.5)

These words exist in BOTH languages but mean different things. Using the Indonesian sense in Malaysian text is a serious error.

| Word | Malaysian meaning | Indonesian meaning | What to use in Malaysian | |---|---|---|---| | butuh | VULGAR (genitalia) | need (standard verb) | Use perlu instead | | pusing | to spin / turn around | dizzy / headache | For "dizzy" use pening | | punggung | buttocks | back (body part) | For "back" use belakang | | sulit | confidential / secret | difficult | For "difficult" use susah / sukar | | kereta | car (everyday) | train (short for "kereta api") | "kereta" = car in Malaysian | | comel | cute (common) | (rare; sometimes pretty) | OK to use | | abang | older brother / boyfriend | older brother | Context-dependent | | buncit | (round/pot-bellied) | (round/pot-bellied) | mostly same | | kacau | disturb / mess up | confusing / mixed up | mostly same |

Critical takeaway: NEVER use butuh in Malaysian text — it's vulgar. Use perlu (need) or memerlukan (to need).

Day Names — DIFFER from Indonesian

| Day | Malaysian | Indonesian | |---|---|---| | Monday | Isnin | Senin | | Tuesday | Selasa | Selasa (same) | | Wednesday | Rabu | Rabu (same) | | Thursday | Khamis | Kamis | | Friday | Jumaat | Jumat | | Saturday | Sabtu | Sabtu (same) | | Sunday | Ahad | Minggu (Indonesian — in Malaysian "Minggu" means "week", NEVER "Sunday") |

Minggu in Malaysian = week only. Ahad = Sunday. Confusing them is a quality failure.

Times of Day — 3 periods (NOT 4 like Indonesian)

| Period | Malaysian | Approximate time | Greeting | |---|---|---|---| | Morning | pagi | 04:00–12:00 | Selamat pagi | | Afternoon / Evening | petang | 12:00–19:00 | Selamat petang | | Night | malam | 19:00–04:00 | Selamat malam |

(Indonesian uses 4: pagi / siang / sore / malam. Malaysian does NOT use "siang" or "sore" in formal time-of-day distinction; "petang" covers both.)

Number Format — Anglo / English-influenced

  • Decimal separator: period (3.14)
  • Thousands separator: comma (1,000,000)
  • Format: 1,234,567.89
  • ❌ 3,14 (European) → ✅ 3.14
  • ❌ 1.000.000 (Indonesian) → ✅ 1,000,000
  • This is the OPPOSITE of Indonesian.

Currency: MYR Ringgit

  • Malaysia uses the ringgit (RM / MYR). NOT Indonesian rupiah.
  • Format: RM 1,000 or RM1,000 or RM 1,234.56 (comma thousands, period decimal)
  • Subdivision: 100 sen (rarely shown in everyday UI for amounts ≥ RM 1)
  • ❌ Rp 1.000.000 (Indonesian) → ✅ RM ... (different currency entirely)
  • ❌ RM 1.000,00 (Indonesian format) → ✅ RM 1,000.00

Brunei: BND (Brunei dollar, B$ or BND); equivalent to SGD 1:1 by peg. Singapore Malay: SGD (S$). When translating for Brunei or Singapore audiences, adjust currency accordingly.

Register

Default level: FORMAL (Anda) for software UI, errors, documentation, marketing.

| Level | Pronoun | Use case | |---|---|---| | Formal | Anda (capitalized) | Business UI, professional software, customer-facing | | Standard polite | awak | General polite peer-level usage | | Familiar | kamu | Casual, friends, peers | | Honorifics | Tuan (Mr/Sir), Puan (Mrs/Madam), Encik (Mr), Cik (Miss / unmarried) | Direct address with name | | Very formal | Datuk (titled), Datin (wife of Datuk), Dato', Tan Sri, Tun | Royal/honorific titles |

Politeness marker: Sila (please) — used frequently for polite requests.

  • "Sila tunggu" (Please wait)
  • "Sila masukkan kata laluan" (Please enter the password)
  • "Sila klik di sini" (Please click here)

Rules:

  • Choose ONE pronoun level per file.
  • Do NOT mix BM (Bahasa Melayu) with BI (Bahasa Inggeris / English) or with Indonesian within the same sentence.
  • Use Sila liberally for polite UI requests.

Examples:

  • ❌ "Anda nak delete tak?" (formal Anda + colloquial nak + English delete + colloquial tak) → ✅ "Adakah anda ingin memadam fail ini?"
  • ❌ "kamu boleh + Sila anda" (mixed pronouns) → ✅ "Sila masukkan kata laluan anda"

Formal vs Colloquial Vocabulary (severity 1.5)

Professional UI must use bahasa baku (standard formal Malay):

| Colloquial (AVOID) | Formal (USE) | Meaning | |---|---|---| | tak | tidak | not | | nak | hendak / mahu | want | | je / jer | sahaja | only | | dah | sudah | already | | kat | di / pada | at | | ni / tu | ini / itu | this / that | | sikit | sedikit | a little | | macam | seperti | like / similar to | | sebab | kerana | because | | camne / macam mana | bagaimana | how | | dapat | memperoleh / mendapat | get / obtain (context) | | boleh tak | bolehkah | can (you)? |

Critical Hard Rules

Affix System: me- / di- / ber- / -kan / -i (severity 2.0)

Malaysian grammar runs on affixation — same system as Indonesian:

| Affix | Function | Example | |---|---|---| | me- | active transitive verb | menulis (write), membaca (read), mengirim (send) | | di- | passive | ditulis (was written), dibaca (was read) | | ber- | intransitive / stative | berlari (run), berdiri (stand) | | ke- | nominal | kebersihan (cleanliness) | | pe- | agent noun | penulis (writer) | | -kan | transitive / causative | menggunakan (use, with object) | | -i | intensive / locative | memenuhi (fulfill) | | -an | abstract noun | bulanan (monthly), tulisan (writing) |

Nasal Assimilation with me- (severity 1.5)

The me- prefix changes form based on the initial consonant of the root:

| Root consonant | Becomes | Example | |---|---|---| | p, b, f | mem- | padam → memadam (delete) | | t, d | men- | tulis → menulis (write) | | k, g, h | meng- | kemas → mengemas (tidy), guna → mengguna (use) | | s | meny- | simpan → menyimpan (save) | | vowels | meng- | ambil → mengambil (take) | | l, m, n, r, w, y, ng, ny | me- (no change) | larang → melarang (forbid) |

Common errors:

  • ❌ mepadam → ✅ memadam (p → m)
  • ❌ metulis → ✅ menulis (t → n)
  • ❌ mekemas → ✅ mengemas (k → ng)
  • ❌ mesimpan → ✅ menyimpan (s → ny)

Transitive -kan Suffix (severity 2.0)

Verbs with direct objects, or in imperative/suggestion contexts, MUST use the -kan suffix.

| Wrong | Correct | |---|---| | Pertimbang untuk membetulkan | Pertimbangkan untuk membetulkan | | Guna pemboleh ubah | Gunakan pemboleh ubah | | Tambah kandungan | Tambahkan kandungan |

"untuk" + Verb Requires me- Prefix (severity 2.0)

When untuk (to / in order to) introduces a verb phrase, the verb MUST be in the me- prefixed form.

| Wrong | Correct | |---|---| | untuk muat naik | untuk memuat naik | | untuk edit dokumen | untuk mengedit dokumen | | untuk tukar format | untuk menukar format |

Note: muat naik (upload) takes me- → memuat naik. The compound stays intact; only the first verb takes the prefix.

Reduplication for Plurality (severity 2.0)

Malaysian has no grammatical number marker. Plural is marked by reduplication — but ONLY when no number is present.

| Context | Form | Example | |---|---|---| | Plural, no number | reduplication | "Upload Files" → "Muat naik fail-fail" | | Plural, no number | reduplication | "View books" → "Lihat buku-buku" | | With number | NO reduplication | "5 files" → "5 fail" (NOT "5 fail-fail") | | ICU with # | NO reduplication | {count, plural, other {# fail}} |

ICU pattern (Malaysian has only other effectively):

{count, plural,
  other {# fail}
}

Adverb Placement — After the Verb (severity 1.5)

Manner adverbs (secara X / dengan X) follow the main verb:

| Wrong (adverb before verb) | Correct (adverb after verb) | |---|---| | akan secara automatik mengesan | akan mengesan secara automatik | | secara automatik akan mengesan | akan mengesan secara automatik |

UI Conventions

Button Labels — Short Imperative

| English | Malaysian | NOT (Indonesian) | |---|---|---| | Save | Simpan | (same) | | Delete | Padam | Hapus | | Cancel | Batal | (same) | | Submit | Hantar | Kirim | | Upload | Muat naik | Unggah | | Download | Muat turun | Unduh | | Search | Cari | (same) | | Edit | Edit / Sunting | | | Copy | Salin | (same) | | Paste | Tampal | Tempel | | Close | Tutup | (same) | | Open | Buka | (same) | | Browse (files) | Semak imbas | Jelajahi / Telusuri | | OK / Confirm | OK / Sahkan | |

❌ "Menyimpan" (progressive form, not imperative) on a button → ✅ "Simpan" ❌ "Penyimpanan" (nominalization) on a button → ✅ "Simpan"

Status Messages — Impersonal Progressive

Use me- prefix or sedang + verb for ongoing status:

| Wrong (first person) | Correct (impersonal) | |---|---| | Saya sedang memuatkan... | Memuatkan... / Sedang memuatkan... | | Kami menyimpan... | Menyimpan... |

Drag-and-Drop Vocabulary

  • seret = drag (same as Indonesian — one of the few shared tech terms)
  • lepas / lepaskan = drop / release
  • ❌ "drag" / "drop" (English) — wrong
✅ Seret fail ke sini                       (drag files here)
✅ Seret dan lepas fail ke sini             (drag and drop files here)
✅ Lepaskan untuk memuat naik               (release to upload)
❌ Drag fail ke sini
❌ Release untuk muat naik

Error Messages — Polite, Direct

  • ❌ "Anda salah" (you are wrong — too direct)
  • ✅ "Maaf, terdapat ralat" (Sorry, there is an error — polite)
  • ✅ "Fail tidak dapat disimpan" (File cannot be saved — direct predicate)
  • ✅ "Sila cuba sekali lagi" (Please try again)

Malaysian culture values harmony and indirect communication. Add Sila (please) and Maaf (sorry) liberally in error/instruction text.

Redundant Word Patterns

| Wrong (calque) | Correct | |---|---| | sekurang-kurangnya {min} aksara panjang | sekurang-kurangnya {min} aksara | | 5 minit panjang | 5 minit |

panjang (long) is implicit in length/duration — don't translate it literally from English.

Punctuation, Numbers, Dates, Currency

Quotation Marks

  • Standard double quotes "..." — most common
  • Single quotes '...' for nested

Numbers (Anglo format — opposite of Indonesian)

  • Decimal separator: period (3.14)
  • Thousands separator: comma (1,000,000)
  • Format: 1,234,567.89
  • ❌ 3,14 → ✅ 3.14
  • ❌ 1.000.000 → ✅ 1,000,000

Dates — DD/MM/YYYY

  • Numeric: 15/01/2024
  • Word form: 15 Januari 2024 or 15hb Januari 2024 (hb = haribulan = "day-of-month", optional)
  • Long form: Isnin, 15 Januari 2024

Malaysian months (capitalized): Januari, Februari, Mac, April, Mei, Jun, Julai, Ogos, September, Oktober, November, Disember.

Note month spelling differences from Indonesian:

| Month | Malaysian | Indonesian | |---|---|---| | March | Mac | Maret | | June | Jun | Juni | | July | Julai | Juli | | August | Ogos | Agustus | | December | Disember | Desember |

Time

  • 24-hour: 14:30
  • 12-hour common in spoken: 2:30 petang (2:30 PM in afternoon period)
  • AM/PM equivalents: pagi (AM), petang (PM afternoon), malam (PM night)

Currency: MYR Ringgit

  • Format: RM 1,000 or RM1,000 or RM 1,234.56
  • ❌ Rp ... → ✅ RM ...

Comma Rules

NO comma before coordinating conjunctions (atau, dan):

  • ❌ "Seret fail ke sini, atau klik untuk semak imbas" → ✅ "Seret fail ke sini atau klik untuk semak imbas"

COMMA before subordinating conjunctions:

  • tetapi / namun (but): "Mudah, tetapi berkesan"
  • yang (which / that): "Fail yang anda pilih"
  • jika (if): "Klik di sini, jika anda ingin meneruskan"
  • kerana (because): "Tidak berfungsi, kerana fail tidak dijumpai"
  • apabila (when): "Tunggu, apabila proses selesai"
  • supaya / agar (so that): "Simpan, supaya perubahan tersimpan"

Terminology Quick Reference

| English | Malaysian | NOT (Indonesian) | |---|---|---| | Save | Simpan | (same) | | Delete | Padam | Hapus | | Cancel | Batal | (same) | | Submit | Hantar | Kirim | | Upload | **Muat

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.