Install
$ agentstack add skill-i18n-agent-i18nstack-localize-ro ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
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 →About
Localize: Romanian (ro → Română)
You are translating source text into Romanian for Romania (and Moldova, where the same standard Romanian applies — Moldovan is Romanian with a different name post-2013 constitutional change). This skill captures grammar, register, UI conventions, formatting, and Romanian-specific failure modes derived from a production translation prompt.
Scope & Variants
One standard, two countries:
- ro-RO — Romanian as used in Romania. Official language.
- ro-MD — Romanian as used in Moldova (called "Moldovan" pre-2013, now officially "Romanian" in the constitution). Same standard, minor lexical differences negligible for UI.
For product UI, ro-RO is the universal default.
Native name: Limba română (the language); românește (the adverb "in Romanian"). Use "română" for the language in UI.
Identity guardrail:
- Romanian is a Romance language (Latin-derived), NOT Slavic. Despite being surrounded by Slavic languages (Bulgarian, Serbian, Ukrainian, etc.) and having a Slavic vocabulary layer (~15%), the grammar is fundamentally Latin: Romance verbs, Romance articles, Romance case marking.
- Romanian is the only major Romance language with:
- A productive neuter gender
- Postposed definite article (Latin-style fused suffix)
- A retained morphological case system (others lost it; Spanish/French/Italian use prepositions)
- Romanian uses the Latin alphabet with 5 diacritics (ă, â, î, ș, ț), NOT Cyrillic. (Moldovan was written in Cyrillic during Soviet era — that's obsolete since 1989.)
- Do NOT translate Romanian by analogy with Italian/Spanish/French — its grammar diverged early.
Register
Default level: FORMAL (Dumneavoastră-form) for software UI, errors, documentation, marketing aimed at business users. Consumer-app marketing may use informal tu.
| | Dumneavoastră (formal) | Tu (informal) | |---|---|---| | Pronoun | Dumneavoastră (often abbreviated Dvs. in writing) | tu | | Verb form | 2nd person plural (puteți, sunteți, aveți) | 2nd person singular (poți, ești, ai) | | Imperative | Salvați, Selectați, Ștergeți | Salvează, Selectează, Șterge | | Possessive | dumneavoastră (invariable) | tău/ta/tăi/tale (agrees) |
Critical: Dumneavoastră uses 2nd-person plural verbs (like French vous). Mixing is severity 2.0.
Examples:
- ❌ Dumneavoastră poți modifica (2sg verb with formal pronoun) → ✅ Dumneavoastră puteți modifica
- ❌ fișierele dumneavoastră + Selectează (formal possessive + informal imperative) → ✅ fișierele dumneavoastră + Selectați
- ❌ Salvați-vă a ta muncă (formal verb + informal possessive) → ✅ Salvați-vă munca dumneavoastră
Within a file, ONE register only. Mixing dumneavoastră and tu in possessives, verbs, or imperatives is always wrong.
Critical Hard Rules
Three-Gender System with NEUTER (severity 2.0 — defining Romanian feature)
Romanian has THREE grammatical genders. The neuter is unique: it behaves as masculine in singular and feminine in plural.
| Gender | Indef art | Singular | Plural | Examples | |---|---|---|---|---| | Masculine | un | -∅ / -e / -u | -i | un utilizator → utilizatorii | | Feminine | o | -ă / -e / -a | -e / -i | o pagină → paginile | | Neuter | un | (like masc) | (like fem) | un fișier → fișierele |
Most modern tech terms are neuter:
- un sistem → sistemele
- un fișier → fișierele
- un computer → computerele
- un program → programele
- un cont → conturile
- un mesaj → mesajele
- un buton → butoanele
- un cod → codurile
- un fond → fondurile
Common errors:
- ❌ o sistem (using fem article with neuter) → ✅ un sistem
- ❌ sistemii (using masc plural with neuter) → ✅ sistemele
- ❌ un soluție (using masc article with feminine) → ✅ o soluție
- ❌ o computer → ✅ un computer
Adjective agreement follows the neuter pattern:
- un sistem nou (masc sg adj) → sisteme noi (fem pl adj)
- un fișier important → fișiere importante
- un program rapid → programe rapide
Postposed Definite Article (severity 2.0)
Romanian attaches the definite article to the END of the noun, fused with the stem. This is unique among major modern languages (only Albanian, Bulgarian, and Macedonian share it).
| Gender | Indefinite | Definite (fused) | |---|---|---| | Masculine | un utilizator (a user) | utilizatorul (the user) | | Feminine | o pagină (a page) | pagina (the page) | | Neuter sg | un fișier (a file) | fișierul (the file) — like masc | | Neuter pl | fișiere | fișierele (the files) — like fem |
Common errors:
- ❌ "utilizator a fost șters" → ✅ "utilizatorul a fost șters"
- ❌ "fișier salvat" (as standalone sentence) → ✅ "Fișierul a fost salvat" / "Fișierul salvat"
- ❌ "pagină principală" (as the page title) → ✅ "Pagina principală"
When the noun is generic/uncountable, no article: "Eroare de sistem" (a type of error) vs "Eroarea sistemului" (the error of THE system).
Genitive-Dative Case (severity 1.5)
Romanian retains a morphological case system, simplified to:
- Nominative-accusative (subject and direct object — same form)
- Genitive-dative (possession and indirect object — same form, marked by
-ului/-ei/-elor) - Vocative (direct address —
-ule!/-o!— rare in UI)
The genitive-dative is REQUIRED between two specific nouns (where English uses "of" or apostrophe-s):
| Wrong (bare juxtaposition) | Correct (genitive) | English | |---|---|---| | folder proiect | folderul proiectului | the folder of the project | | nume director | numele directorului | the name of the directory | | pagina utilizator | pagina utilizatorului | the user's page | | configurații sistem | configurațiile sistemului | the system's settings | | eroare aplicație | eroarea aplicației | the application's error | | stare conexiune | starea conexiunii | connection status | | detalii tranzacție | detaliile tranzacției | transaction details |
Genitive endings:
- Masc/neuter sg:
-ul→-ului(utilizatorul → utilizatorului, sistemul → sistemului) - Fem sg:
-a→-ei(pagina → paginei, aplicația → aplicației) - Plural:
-le→-lor(utilizatorii → utilizatorilor, fișierele → fișierelor)
Exception — when the modifier is generic/classificatory (not a specific entity), bare juxtaposition with de is correct: "eroare de sistem" (a system-error type), "fișier de configurare" (a config-type file). These are stable compounds.
Five Mandatory Diacritics: ă â î ș ț (severity 2.0)
Romanian has 5 essential diacritics. Omitting any is a hard error.
| Letter | Name | Where used | Examples | |---|---|---|---| | Ă/ă | a-breve | reduced/schwa vowel | băiat, fără, două | | Â/â | a-circumflex | within words (high-back vowel) | în, pâine, român, încă | | Î/î | i-circumflex | word-initial/final (same sound as â) | început, își, înăuntru | | Ș/ș | s-with-comma-below | "sh" sound | și, ștergere, configurații | | Ț/ț | t-with-comma-below | "ts" sound | țară, configurații, conține |
CRITICAL — Comma vs Cedilla:
Romanian uses Ș / ș and Ț / ț with comma-below, NOT Ş / ş and Ţ / ţ with cedilla (Turkish style). They look similar but are DIFFERENT Unicode characters.
- ✅ Romanian:
Ș ș Ț ț(U+0218, U+0219, U+021A, U+021B) - ❌ Turkish:
Ş ş Ţ ţ(U+015E, U+015F, U+0162, U+0163)
Older Romanian texts and broken Unicode fonts use cedilla — but modern Unicode-compliant Romanian uses comma-below. Always use comma-below for new content.
Common stripping errors:
- ❌ configuratii → ✅ configurații (ț required)
- ❌ stergere → ✅ ștergere (ș required)
- ❌ inceput → ✅ început (î required)
- ❌ fara → ✅ fără (ă required)
- ❌ pâine → kept correctly (â within word)
- ❌ Romana → ✅ Română (ă required)
ICU Plurals: one / few / other — the "de" rule (severity 2.0)
Romanian has THREE plural categories, and uses the preposition de before nouns when count ≥ 20 (technically: numbers ending in 00 or 01-19 in the last two digits use few; everything else uses other with de).
| Branch | Rule | Example (fișier — neuter) | |---|---|---| | one | n = 1 | 1 fișier | | few | n = 0, 2-19, or n % 100 = 1-19 | 0 fișiere, 5 fișiere, 19 fișiere, 101 fișiere, 119 fișiere | | other | n = 20+ to 100, then 120+ etc. | 20 de fișiere, 50 de fișiere, 100 de fișiere, 120 de fișiere |
{count, plural,
one {# fișier}
few {# fișiere}
other {# de fișiere}
}
The "de" before the noun in the other branch is non-optional Romanian grammar when counting ≥ 20.
- ❌ "25 limbi" → ✅ "25 de limbi"
- ❌ "100 utilizatori" → ✅ "100 de utilizatori"
- ✅ "5 fișiere" (no
de— n is infew) - ✅ "115 fișiere" (no
de— last two digits 1-19) - ❌ "25+ limbi" (English-style) → ✅ "peste 25 de limbi"
Adjective Agreement (severity 1.5)
Adjectives agree with noun in gender + number (case is mostly identical to noun's). Most adjectives FOLLOW the noun.
| Noun | Adjective | Form | |---|---|---| | un sistem nou | masc sg | -∅ | | o pagină nouă | fem sg | -ă | | un fișier important | neuter sg = masc sg | -∅ | | fișiere importante | neuter pl = fem pl | -e | | sisteme noi | masc pl OR neuter pl | -i | | pagini noi | fem pl | -i |
- ❌ sisteme nou (sg adj with pl noun) → ✅ sisteme noi
- ❌ platforma inteligent (masc adj with fem noun) → ✅ platforma inteligentă
A few high-frequency adjectives precede the noun: bun, mare, mic, frumos. "O bună soluție" / "un mare succes" — these add stylistic emphasis.
Pronouns and Possessives
| English | Formal | Informal | |---|---|---| | you (subj) | Dumneavoastră / Dvs. | tu | | you (obj) | vă / pe dumneavoastră | te / pe tine | | your (poss) | dumneavoastră (invariable) | tău / ta / tăi / tale (agrees) | | Imperative (sg) | Salvați (2pl form) | Salvează (2sg) |
dumneavoastră does NOT inflect — it's the same form regardless of gender/number of the noun it modifies.
UI Conventions
Button Labels — Imperative (formal preferred) or Infinitive
Romanian buttons use imperative formal (Salvați, Ștergeți) OR infinitive (Salvare, Ștergere) — both are acceptable, but imperative is preferred for clear actions.
| Wrong | Correct (preferred) | Alternative | English | |---|---|---|---| | Salvați (infinitive only — context: needs action) | Salvați (imperative) | Salvare (infinitive) | Save | | Ștergeți | Ștergeți (imperative) | Ștergere | Delete | | Anulați | Anulați | Anulare | Cancel | | Încărcați | Încărcați | Încărcare | Upload | | Descărcați | Descărcați | Descărcare | Download | | Conectați-vă | Conectați-vă | Conectare | Log in | | Selectați | Selectați | Selectare | Select | | Editați | Editați | Editare | Edit |
Use imperative for direct action; infinitive for menu labels / option lists.
Status Messages — Reflexive Passive or În curs de...
For ongoing actions, use reflexive passive (se + verb) or În curs de...:
| Wrong (past) | Correct | English | |---|---|---| | Salvat... | Se salvează... / În curs de salvare... | Saving... | | Încărcat... | Se încarcă... / Se procesează... | Loading... | | Trimis... | Se trimite... / În curs de trimitere... | Sending... | | Verificat... | Se verifică... | Checking... |
For completion, use participial form (see next section).
Completion Messages — Participial Form (NOT "de succes")
Romanian completion states use participial forms (finalizată, efectuată, salvat), NOT adjective calques like "de succes" (= "of success", a literal calque of English "successful"):
| Wrong (calque) | Correct (participial) | English | |---|---|---| | Plată de succes | Plată efectuată / Plată finalizată / Gata! | Payment successful | | Încărcare reușită | Încărcare finalizată / Fișier încărcat | Upload successful | | Operațiune completă | Operațiune finalizată / Gata! | Operation complete | | Salvare cu succes | Salvat / Salvare finalizată | Saved successfully | | Conectare de succes | Conectare reușită / Conectat | Connected (Login OK) |
Note: reușită is acceptable for "successful" in some contexts (especially "Conectare reușită") but finalizată/efectuată is preferred as a default.
Empty State Messages — Nu există X / Niciun X
For empty states (no items, no results), Romanian uses existential negation (Nu există X) or negative determiner (Niciun X / Nicio X), NOT passive constructions:
| Wrong (passive calque) | Correct (existential) | English | |---|---|---| | Nu au fost selectate limbi | Nu există limbi selectate / Nicio limbă selectată | No languages selected | | Nu au fost găsite rezultate | Nu există rezultate / Niciun rezultat | No results found | | Nu au fost încărcate fișiere | Nu există fișiere încărcate / Niciun fișier încărcat | No files uploaded |
Niciun (masc/neuter) / Nicio (fem) is the negative singular determiner. It is written as ONE word (NOT nici un).
Drag-and-Drop Vocabulary
- a trage = to drag
- a plasa / a elibera = to drop / release
- trageți și plasați = "drag and drop" (compound action)
✅ Trageți fișierele aici (drag files here)
✅ Trageți și plasați aici (drag and drop here)
✅ Eliberați pentru a încărca (release to upload)
❌ a permite încărcarea (vague — "to allow upload")
❌ drag and drop (English — unchanged)
Error Messages — Direct Predicate + Actionable Advice
| Wrong (verbose nominal) | Correct (predicate + advice) | |---|---| | Eroare la procesarea fișierului | Fișierul nu a putut fi procesat. Verificați formatul. | | Eroare de conexiune | Nu există conexiune. Verificați rețeaua. | | Eroare de validare | Datele nu sunt valide. Verificați câmpurile. |
Article Completeness in Subjects
Subject nouns in sentences need the definite article:
- ❌ "variabilă de mediu lipsește" → ✅ "variabila de mediu lipsește" / "lipsește variabila de mediu" (verb-first also natural)
- ❌ "utilizator nu a fost găsit" → ✅ "utilizatorul nu a fost găsit"
Punctuation, Numbers, Dates, Currency
Quotation Marks
- Romanian uses "99-66" style quotes:
„..."— low opening (like comma), high-right closing - Secondary:
«...»(Russian/French guillemets — used in older typography) - ❌ "English quotes" → ✅ „Ghilimele românești"
Numbers
- Decimal separator: comma (3,14)
- Thousands separator: period (1.234)
- Format:
1.234.567,89 - ❌ 1,234.56 (US) → ✅ 1.234,56
Dates — DD.MM.YYYY (or word form)
- Numeric:
15.01.2024(with periods) — most common in UI - Alternative:
15/01/2024(with slashes — also common) - Word form:
15 ianuarie 2024(months lowercase, day-month-year, no comma) - ❌ 01/15/2024 (US) → ✅ 15.01.2024
Months (always lowercase): | English | Romanian | |---|---| | January | ianuarie | | February | februarie | | March | martie | | April | aprilie | | May | mai | | June | iunie | | July | iulie | | August | august | | September | septembrie | | October | octombrie | | November | noiembrie | | December | decembrie |
Time
- 24-hour:
14:30(standard) orla ora 14:30(more formal) - 12-hour: rare in formal contexts
Currency: RON Leu (NOT in eurozone)
- Romania uses the leu (RON / lei). Romania has NOT yet adopted the euro.
- Format:
99,99 lei(lowercase "lei", after amount, with space) or99,99 RON - Plural:
un leu/doi lei/20 de lei(thederule applies to currency too!) - ❌ €99.99 → ✅ 99,99 € for euro contexts, or 99,99 lei for Romanian currency
Comma Rules
NO comma before coordinating conjunctions (și, sau, ori, fie):
- ❌
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: i18n-agent
- Source: i18n-agent/i18nstack
- License: MIT
- Homepage: https://i18nagent.ai
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.