Repository navigation
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.
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.
- Use the English file as the only reference:
en.tsfor 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
surveysratings).
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/iconsfiles are not translated), - Laravel pluralization syntax in PHP files (values with
|separators), if present.
- 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.
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
@seecomment names the component).
- 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.