> For the complete documentation index, see [llms.txt](https://ctracker-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ctracker-docs.keywordrush.com/running-your-site/translating.md).

# Translating the plugin

Cashback Tracker ships in English with a translation template, so it can be translated into any language.

### Two halves, and both need doing

This is the part people miss.

**The front end** — shop pages, the member area, buttons, emails — is PHP. A normal translation covers it.

**The admin screens** — Orders, Members, Payouts, the Shop catalog — are JavaScript. They need the translation in a **second file format**, and a translation that skips it leaves your whole admin in English while the front end is perfectly translated.

Most translation tools can produce both. You usually have to switch it on.

### Translating with Loco Translate

1. Install **Loco Translate**.
2. `Loco Translate` → `Plugins` → **Cashback Tracker**.
3. **New language**, choose yours, and save it to the **custom** location — see below.
4. Translate. You can do as much or as little as you like; anything untranslated stays English.
5. **Save** to compile it.

{% hint style="warning" %}
**Turn on JSON output**, or the admin screens stay English.

In Loco Translate, `Settings` → **Compile settings** (or the equivalent on your version) has an option to generate JSON files for JavaScript. Without it, only the front end is translated — and this is easy to spend an afternoon confused by.
{% endhint %}

### Where the files must live

When Loco asks where to save, choose the **System** location — `wp-content/languages/plugins/`.

Two reasons. It survives plugin updates, and it is exactly where WordPress itself looks for the JavaScript translations the admin screens need. Loco's own *custom* location works for the PHP half, but System is the one that needs nothing to redirect it.

{% hint style="warning" %}
Never save into the plugin's own folder. **The next plugin update deletes it**, and it is the most common way translation work is lost.
{% endhint %}

### What to translate first

You do not have to do all of it. In order of what your visitors and members actually see:

1. **Member-facing front end** — the account page, balance labels, payout wording, buttons
2. **Emails to members** — these arrive in their inbox, so English here is the most jarring
3. **Shop page furniture** — the cashback box, Go to shop, terms headings
4. **Admin screens** — only worth it if the people running the site do not read English

### Wording you should change, not translate

Some strings are decisions rather than English:

* Button labels for coupons and deals — settable directly, see [Coupon display settings](/coupons/coupon-display-settings.md)
* Email subjects and bodies — editable in `Settings` → `Emails`
* Shop page titles — a template in `Settings` → `General`

Set those in your own language in the settings rather than translating them. They will not be overwritten and they are easier to change later.

### AI writing has its own language setting

Generated descriptions are written in the language set in `Settings` → `AI` → **Language**, independent of the interface translation. A German site wanting German descriptions needs both.

See [Setting up AI](/ai-and-seo/setting-up-ai.md).

### After a plugin update

New versions add strings. Reopen your translation in Loco Translate, press **Sync**, translate whatever is new, and save.

Nothing you already translated is lost, and untranslated new strings simply show in English until you get to them.

### Contributing a translation back

If you have translated a language well and would like it shipped with the plugin so other operators benefit, get in touch through support. Translations contributed this way are credited.
