---
title: Translating
url: 'https://docs.danami.com/sentinel/misc/translating'
markdown: 'https://docs.danami.com/sentinel/misc/translating.md'
date: '2026-09-22'
description: '• Make sure that you are using a text editor that is UTF8 aware then making changes to the translation files. • Make sure not to translate any strings between square brackets. The application has a fairly simple and easy to use i18n system that is slightly modeled after gettext.…'
taxonomy:
  category:
    - docs
---

[](#)  [ Basics ](https://docs.danami.com/sentinel/)     [ Misc ](https://docs.danami.com/sentinel/misc)      Translating    

# Translating

> > > > > • Make sure that you are using a text editor that is UTF8 aware then making changes to the translation files.
> > > > > • Make sure not to translate any strings between square brackets.

The application has a fairly simple and easy to use i18n system that is slightly modeled after gettext.

## Translation file example

```php
<?php
return array
(
     'Hello, world!' => 'Bonjour, monde!',
     'Goodbye [:user]'  => 'Au revoir [:user]',
);
```

## Translation file structure

```
root
 +- application
 |    +- i18n
 |        +- de.php (German)
 |        +- fr.php (French)
 +- modules
 |    +- common
 |        +- i18n
 |        |   +- de.php
 |        |   +- fr.php
 |    +- report
 |        +- i18n
 |        |   +- de.php
 |        |   +- fr.php
```

## Language files

To package into an archive:

```
cd /usr/local/psa/admin/plib/modules/
find -L "sentinel/" -path "*/i18n/*.php" | tar -zcvf sentinel-i18n.tar.gz -T -
```

 [ ](https://docs.danami.com/sentinel/troubleshooting/clamav) [](https://docs.danami.com/sentinel/misc/references)

---

## Navigation

- Parent: [Misc](https://docs.danami.com/sentinel/misc.md)
- Next: [References](https://docs.danami.com/sentinel/misc/references.md)
