Jump to content

Set custom values per lang

Dima Turchenko

Recommended Posts

Ok. Pls imagine, I have created my custom button and wanna display it title by lang1 or lang2, so i need to create lang pack or what?
I guess this is very complicated manipulation for such a simple task, dont u think?
usually there is en/blog_lang.php, de/blog_lang.php or en_EN.php, de_DE.php
And system automatically loads suitable lang file by existing langs

Link to comment
Share on other sites

If the string you want to display is a static string you defined, then you simply put the string in a language file. i.e. for a plugin it would be plugins/(yourplugin)/dev/lang.php in the format of


$lang = array(

'key1'	=> "This is the text to display",
'key2'	=> "Button String"


Be sure to use unique keys (maybe pluginkey_somethingelse) as they are not namespaced in any way.

From there, you simply use this in your teplates


Or this in your controllers

\IPS\Member::loggedIn()->language()->addToStack( 'key1' );

The system supports more complex things like inserting URLs and using sprintf (both with and without automatic escaping of HTML characters) as needed.

You only define the English language strings. Authors of language packs, and site operators, will define the keys in other languages beyond English. There is no way for you to ship the German, etc. translations with your application or plugin I'm afraid.


If you want to create a form field to allow admins to translate directly, you use the Translatable form helper. Here's an example for the forum name field.

$form->add( new \IPS\Helpers\Form\Translatable( 'forum_name', NULL, TRUE, array( 'app' => 'forums', 'key' => ( $this->id ? "forums_forum_{$this->id}" : NULL ) ) ) );

As a general rule we do not present translatable fields on the front end, only in the ACP.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...