Skip to content

Translator Rules

Mehrdad Pajuhaan edited this page Oct 23, 2026 · 1 revision

Translator Rules

These rules keep translations working in the product. A translation that changes a variable name or breaks the file syntax can show wrong data or stop a page from loading. Read this page before you edit any file, and check your change against it before you submit.

1. Never change variables

Please pay attention to variables when translating! Do not change the variables in the translation. Variable patterns are represented as :variable_name or {variable_name}. These variables must be exactly the same as in the English version. Please double-check to ensure accuracy.

Wrong:

"deposit-title" => "Dipòsit :import :moneda al compte :account_from.",

Valid:

"deposit-title" => "Dipòsit :amount :currency al compte :account_from.",

This example is from backend/lang/ca/fcm.php. The English original is "Deposit :amount :currency into account :account_from.".

Where Pattern Example
TypeScript packs (dashboard/, shop/, global/, service/) {name} "{days} Days Return Warranty"
Backend PHP files (backend/lang/) :name 'greetings' => 'Hi, :name!'
A few texts %0 "Apply for Hypernova %0!" in dashboard/en.ts

You may move a variable to a different position in the sentence when your grammar needs it, but do not rename, translate or remove it.

2. Keep the structure identical to English

  • Use the English file as the only reference: en.ts for TypeScript packs, backend/lang/en/ for PHP.
  • Keep the same keys, nesting, key order and comments (for example /** @see SShopProductCard **/).
  • Keep the same syntax: export default { ... } in TypeScript, return [ ... ]; in PHP.
  • Never translate, rename, remove, reorder or invent keys. Translate only the human-readable values.
  • Keep arrays the same length (for example the five surveys ratings).

3. Preserve technical parts

Do not change:

  • HTML tags such as <b>, <br>, <a href="...">,
  • URLs and email addresses,
  • emojis,
  • line breaks written as \n,
  • template literals, codes, enum-like values and icon names (the global/icons files are not translated),
  • Laravel pluralization syntax in PHP files (values with | separators), if present.

4. Missing and extra keys

  • Missing: if a key exists in English but not in your file, add it in the same place and translate the value.
  • Extra: do not delete keys that exist only in your language. Mention them in your pull request.

5. Write natural UI text

Selldone is a business OS and store builder. Most texts are for seller dashboards, shop management, products, orders, payments, marketplaces, vendors, shipping, logistics, listings, campaigns and customers.

  • Write fluent, native text. Avoid literal, word-by-word translation.
  • Keep it short and clear; many texts are buttons and labels.
  • Use the professional tone of a web app.
  • Make sure the meaning matches the English context. When in doubt, check where the text appears (the @see comment names the component).

6. Validate before you submit

  • TypeScript files must still be valid TypeScript (matching quotes, commas, braces).
  • PHP files must still be valid PHP.
  • All keys and placeholders must match English.

Next steps