# Apple Strings (.strings)

{% hint style="info" %}
Format is automatically detected based on the file extension, so there’s no need to specify the format type when using it. ✨
{% endhint %}

### Supported project structure

The Developer CLI assumes a standard project structure in which translation files are named `Localizable.strings` and stored in locale-specific folders. For example:

```
my-ios-app
├── en.lproj
│   └── Localizable.strings     // English translations
├── fr-FR.lproj
│   └── Localizable.strings     // French translations
├── de-DE.lproj
│   └── Localizable.strings     // German translations
```

### Comments

{% hint style="info" %}
Existing comments in the file will be preserved when pulling content from Frontitude.
{% endhint %}

Comments are supported in the following format. Comments in other formats will be converted accordingly.

{% code title="Localizable.strings" %}

```javascript
/* Error message shown when there is a network connectivity issue */
"network_error_message" = "Unable to connect. Please check your internet connection.";
```

{% endcode %}

### Variables

While this format supports different types for variables, currently only string variables are supported. Variables defined in Frontitude will be converted into string variables.

{% code title="Localizable.strings" %}

```
"greetings.hello" = "Hello, %@!";
"time.last_seen" = "Last seen at %@";
```

{% endcode %}

### Plurals <a href="#h_6eca633a75" id="h_6eca633a75"></a>

The following key format is used for texts with plurals: `<key>_<plural_type>`. For example:

```
"greetings.hello_one" = "Hello, %@!";
"greetings.hello_many" = "Hello, folks!";
```

### Multiline support <a href="#h_6eca633a75" id="h_6eca633a75"></a>

Frontitude uses `\n`  to handle multiline strings. For example:

{% code title="Localizable.strings" %}

```
"error.cant_recognize_email" = "We can't recognize this email.\nPlease try again.";
```

{% endcode %}

### File encoding

The supported file encoding is `UTF-16`, which is recommended by Apple. Please contact us if you require a different encoding.
