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

# Managing Template Content

> Edit landing page text, translations, navigation links, and page-level content.

## Translation system

All user-visible strings in StartMyVPN are wrapped in `{{ __('...') }}` — Laravel's localization helper. This means you can change any text either by:

1. **Editing the template directly** — fastest for one-off changes
2. **Editing the language file** — best when the same string appears in multiple places or when you support multiple languages

Language files live in `lang/`:

```
lang/
├── en.json          ← all translatable strings for English
├── en/
│   └── auth.php     ← Laravel's built-in auth messages
└── [locale].json    ← add a file here to add a new language
```

### Edit the English language file

Open `lang/en.json` and change values:

```json theme={null}
{
    "Your Privacy,": "Your Security,",
    "Our Priority": "Our Mission",
    "7-Day Free Trial": "14-Day Free Trial",
    "30-Day Money Back": "30-Day Refund"
}
```

The key is the original English string; the value is what's displayed. If no entry exists for a key, Laravel falls back to displaying the key itself — so both approaches work.

### Add a new language

Create `lang/[locale].json` (e.g. `lang/fr.json`) with translated values:

```json theme={null}
{
    "Your Privacy,": "Votre vie privée,",
    "Our Priority": "Notre priorité",
    "Sign in": "Se connecter",
    "Sign up": "S'inscrire"
}
```

Then add the locale to `config/app.php`:

```php theme={null}
'available_locales' => ['en', 'fr'],
```

The language switcher in the navigation bar will automatically show the new option.

***

## Landing page content

File: `resources/views/landing.blade.php`

### Hero text

```blade theme={null}
<h1>
    <span class="block">{{ __('Your Privacy,') }}</span>
    <span class="block text-secondary-400">{{ __('Our Priority') }}</span>
</h1>
<p>
    {{ __('Secure, fast, and anonymous VPN for all your devices...') }}
</p>
```

Update the strings in `lang/en.json` or edit the template directly.

### Trust badges

Below the hero buttons:

```blade theme={null}
<span>{{ __('No Credit Card Required') }}</span>
<span>{{ __('7-Day Free Trial') }}</span>
<span>{{ __('30-Day Money Back') }}</span>
```

Change these to match your actual offering (e.g. "14-Day Free Trial").

### Stats bar

```html theme={null}
<div class="text-4xl font-bold text-primary-900">50+</div>
<div class="text-sm text-gray-600">{{ __('Countries') }}</div>
```

Four stat blocks appear in this section. Update the numbers and labels directly in the template.

### Feature cards

Six cards in the Features section. Each card has a title and description paragraph:

```blade theme={null}
<h3>{{ __('Military-Grade Encryption') }}</h3>
<p>{{ __('AES-256 bit encryption protects your data...') }}</p>
```

To add a card, duplicate an existing `<div class="bg-white p-8 rounded-xl...">` block and change the content.

To remove a card, delete the block. The grid auto-adjusts (CSS `grid-cols-1 md:grid-cols-2 lg:grid-cols-3`).

### App download links

```html theme={null}
<a href="#">Download for Android</a>
<a href="#">Download for iOS</a>
```

Replace the `href="#"` values with your real App Store / Google Play URLs.

***

## Features page

File: `resources/views/features.blade.php`

This is a dedicated feature showcase page. Edit the feature list, descriptions, and any comparison tables directly in the template.

***

## Pricing page

File: `resources/views/pricing.blade.php`

The pricing page dynamically loads plans from the database — you do not hardcode prices here. Plan names, prices, bandwidth limits, and features come from **Admin → Plans**.

The template controls the visual layout of the pricing cards. To change the layout or add a custom "Most Popular" badge, edit this file.

***

## Navigation links

The public navigation is in `resources/views/components/layouts/public.blade.php`.

### Desktop nav links

```html theme={null}
<a href="{{ route('features') }}">{{ __('Features') }}</a>
<a href="{{ route('pricing') }}">{{ __('Pricing') }}</a>
<a href="{{ route('support') }}">{{ __('Support') }}</a>
```

To add a new link, add an `<a>` tag pointing to the relevant route. To remove a link, delete the `<a>` tag.

### Sign in / Sign up button text

```html theme={null}
<a href="{{ route('login') }}">{{ __('Sign in') }}</a>
<a href="{{ route('register') }}">{{ __('Sign up') }}</a>
```

Change the text by updating the translation strings.

***

## Footer

File: `resources/views/components/footer.blade.php`

Edit this file to change:

* Footer links and columns
* Copyright notice and year
* Social media links
* Company description or tagline

***

## Support page

File: `resources/views/support.blade.php`

Contains the support landing page content. Edit it to add contact information, hours of availability, or links to external resources.

***

## Auth page text

| File                                             | Page               |
| ------------------------------------------------ | ------------------ |
| `resources/views/auth/login.blade.php`           | Login              |
| `resources/views/auth/register.blade.php`        | Registration       |
| `resources/views/auth/forgot-password.blade.php` | Forgot password    |
| `resources/views/auth/reset-password.blade.php`  | Reset password     |
| `resources/views/auth/verify-email.blade.php`    | Email verification |

These pages use standard form layouts. Edit heading text, helper text, and button labels directly or via translation strings.

***

## Email template content

Email body text is in `resources/views/emails/`. Each file corresponds to a transactional email:

### Example: Service activation email

File: `resources/views/emails/service-activated.blade.php`

```blade theme={null}
@component('mail::message')
# {{ __('Your VPN Service is Active!') }}

{{ __('Welcome! Your subscription is now active.') }}

@component('mail::button', ['url' => $dashboardUrl])
{{ __('Go to Dashboard') }}
@endcomponent

{{ __('Thanks,') }}<br>
{{ config('app.name') }}
@endcomponent
```

Edit the subject line in `app/Mail/ServiceActivated.php`:

```php theme={null}
public function envelope(): Envelope
{
    return new Envelope(
        subject: __('Your VPN service is now active'),
    );
}
```

***

## Customer dashboard content

File: `resources/views/dashboard.blade.php`

The dashboard displays the user's active service, server list, and bandwidth usage. Edit this template to change:

* Section headings and labels
* Empty state messages (shown when no active service)
* Help text and tooltips

***

## After editing templates

No rebuild is needed for `.blade.php` changes — Laravel compiles them on request. However, clear the view cache if you have it enabled:

```bash theme={null}
php artisan view:clear
```

For changes to `lang/en.json` or other language files, clear the config cache:

```bash theme={null}
php artisan config:clear
```
