> ## Documentation Index
> Fetch the complete documentation index at: https://ownpay.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> OwnPay is licensed under AGPL-3.0 and is completely free - no licensing fees.
> Production docs URL: https://ownpay.org/docs - append .md to any page URL for clean markdown.
> OwnPay requires PHP 8.3+, MySQL/MariaDB, and Redis.
> MCP server available at https://ownpay.org/docs/mcp for programmatic documentation queries.
> Use root-relative links (e.g. /quickstart) for internal navigation - do NOT include /docs prefix.
> Plugin development: consult /developer/plugins/ pages for correct interfaces and manifests.
> Canonical locations: API auth = /api/authentication, webhook verification = /api/webhooks, rate limits = /resources/rate-limiting, transaction statuses = /fundamentals/payment-flow.
> The documentation uses the Diataxis framework: Tutorials (learning), How-to (tasks), Reference (lookup), Explanation (understanding).

# Languages

> Manage multi-language support - change admin language per staff member, upload language packs, and set brand default languages for the checkout experience.

OwnPay supports multiple languages for both the admin panel and the customer-facing checkout. Language preferences can be set at the individual staff level and the brand level.

## Change your admin language

Each staff member can set their preferred admin panel language independently:

1. Click your **avatar** in the top-right corner
2. Select **My Account**
3. Choose your **Language** from the dropdown
4. Click **Save**

See [My Account](/docs/security/my-account) for the full personal settings guide.

## Manage system languages

Navigate to **System > Languages** to view and manage all available languages.

| Column            | Description                                      |
| ----------------- | ------------------------------------------------ |
| **Language**      | Display name (for example, "English", "Bengali") |
| **Code**          | ISO 639-1 code (for example, `en`, `bn`)         |
| **Status**        | Installed or Not Installed                       |
| **Brand Default** | Whether this is the default for a specific brand |

## Upload a language pack

<Steps>
  <Step>
    Click **Upload Language Pack** and select a JSON file.
  </Step>

  <Step>
    OwnPay validates the file structure and imports the translations.
  </Step>

  <Step>
    If the language code does not exist yet, it is added automatically.
  </Step>
</Steps>

### Language file format

Language files are JSON with dot-notation keys:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "checkout.pay_now": "Pay Now",
  "checkout.enter_amount": "Enter Amount",
  "common.currency": "Currency"
}
```

<Info>
  For guidance on contributing translations or creating complete language packs, see the [Translations guide](/docs/developer/translations).
</Info>

## Set default language per brand

In the Languages list, click **Set as Default** next to any installed language. A brand selector appears - choose which brand this default applies to. The checkout experience for that brand will use this language unless the customer's browser requests otherwise.

## Checkout language determination

When a customer visits the checkout page, OwnPay determines the language in this order:

1. **Brand default language** - The language set in System > Languages for the current brand
2. **Browser Accept-Language header** - If the brand default is not set, OwnPay reads the visitor's browser language preference
3. **English fallback** - If no match is found, English is used

<Tip>
  If your customer base is multilingual, leave the brand default unset. OwnPay will then respect each visitor's browser language preference automatically.
</Tip>

## Related Pages

* [My Account](/docs/security/my-account) - Change your personal admin language
* [Translations Guide](/docs/developer/translations) - Contribute or create language packs
* [Customer Experience](/docs/checkout/customer-experience) - How language affects the checkout page


## Related topics

- [Internationalization - Multi-Language Checkout and Locale](/docs/developer/translations.md)
- [My Account](/docs/security/my-account.md)
- [Features and Capabilities](/docs/resources/features.md)
- [Contributing to OwnPay](/docs/resources/contributing.md)
- [Plugin Directory Structure](/docs/developer/plugins/directory-structure.md)
