uL uLanding Docs

Localization

uLanding can display its interface and content in many languages, and it supports right‑to‑left (RTL) languages like Arabic. This chapter explains the language system and how to add your own.


Built‑in languages

uLanding ships with translations for 14 languages:

Code Language Code Language
en English ko Korean
es Spanish pt Portuguese
fr French ru Russian
de German sl Slovenian
it Italian th Thai
ar Arabic (RTL) zh Chinese
el Greek ka Georgian

Note The plugin's interface strings (admin labels, builder text) are translated into these languages. Your own content (page text, service descriptions, etc.) is whatever you type — uLanding doesn't auto‑translate your content.


How languages work

uLanding's text comes from translation files. There are two kinds:

  • messages.php — most admin/UI strings.
  • ulanding.php — page‑builder and widget‑builder labels (currently provided for English and Spanish; other languages can add it).

The active language follows your Ultimate SMS language setting. uLanding registers its translations with the host app automatically.


Right‑to‑left (RTL) support

For RTL languages such as Arabic, uLanding flips the layout direction so text reads right‑to‑left and elements mirror appropriately. The Arabic (ar) language is included.

  • The admin and frontend respect the dir="rtl" direction.
  • The Text Slider block has its own direction option (left‑to‑right / right‑to‑left).

Tip When building an RTL site, preview your pages in the RTL language to confirm alignment of images, buttons and columns looks correct.


Adding a new language

To add a language not included by default:

  1. Create the folder & file. Copy resources/lang/en/messages.php to resources/lang/<code>/messages.php (where <code> is the new language code, e.g. nl for Dutch).
  2. Translate the strings. Edit each value in the new file into your language. Keep the keys (left side) unchanged.
  3. (Optional) Add builder strings. Copy resources/lang/en/ulanding.php to resources/lang/<code>/ulanding.php and translate it for fully localized page‑builder labels.
  4. Register the language in your Ultimate SMS language settings so it becomes selectable.
  5. Check for missing keys with the audit command:
php artisan ulanding:audit-translations --locale=<code>

This reports any keys you forgot to translate.

Warning Only edit the values, never the keys (the part before =>). Changing keys breaks the translation lookup.


Translating your content

Your pages, services and posts contain the text you type. To offer your content in multiple languages, you would create separate pages/posts for each language (e.g. an English Home and a Spanish Home) and link them via your menu, following your Ultimate SMS multi‑language workflow.


Best practices

  • Keep translations consistent — use the same terms throughout.
  • Run the audit command after translating to catch missing keys.
  • Test RTL layouts thoroughly if you support Arabic or similar.
  • Don't machine‑translate blindly — review for context and tone.
  • Mind text length — some languages are longer than English and may wrap differently; check buttons and headings.

Troubleshooting

Problem Fix
Some labels still in English Those keys aren't translated yet; add them and run the audit command.
New language not selectable Register it in Ultimate SMS language settings.
RTL layout looks broken Confirm the language is set to RTL and clear caches.
Builder labels not translated Add a ulanding.php file for that language.

Continue to Troubleshooting.