Language Files
Language Structure
Language strings are stored in files within the /resources/lang
directory, with each subdirectory
representing a language supported by the application. The name of the directory must conform to BCP 47 using
ISO_639-1 locale code and an
optional ISO_3166-1 ALPHA-2 regional
identifier. For example, valid identifiers are: 'en', 'en-GB', 'en-US'.
To synchronise languages with the database we recommend to browse to Settings > Languages in the operator panel; new languages will be disabled by default.
/resources
/lang
/en
core.php
/es
core.php
Each language files must return an array of language strings:
Please ensure that all of your language files are saved with UTF-8 encoding otherwise the help desk may not function correctly.
<?php
return [
'product_name' => 'SupportPal'
];
Basic Usage
Language strings can be accessed from any part of the application using Lang::get()
function. If you need to access language files from within a template the syntax changes slightly to Lang.get()
. For example, if you would like to access the product_name
language string in the core.php
file from within a PHP file:
echo Lang::get('core.product_name');
Alternatively, from within a template file:
{{ Lang.get('core.product_name') }}
Variable Replacement
If you need to dynamically control words within language strings, this is possible using placeholders. All placeholders are prefixed by the :
character.
<?php
return [
'product_name' => 'SupportPal,
'welcome' => 'Welcome to :product_name'
];
We can then assign the placeholder value when accessing the language string:
echo Lang::get('core.welcome', [ 'product_name' => Lang::get('core.product_name') ]); // Welcome to SupportPal
Pluralisation
Often we make use of singular and plural forms of language strings. Pluralisation is possible via the pipe (|
) character:
<?php
return [
'product' => 'Product|Products'
];
Depending on whether we want to access the singular of plural form, the string can be accessed using the Lang::choice()
function. The second parameter specifies which form we would like to retrieve:
echo Lang::choice('core.product', 1); // Product
echo Lang::choice('core.product', 2); // Products
Available Language Packs
Below is a list of the currently available user-contributed language packs.
To install a language pack, download below and remove 'language-files
' from the containing folder name, then upload the entire folder to the /resources/lang
folder. Visit Settings > Languages in the operator panel and enable the new language.
Contributing Languages
To contribute your own language files, please create a pull request to the language files repository, or alternatively open a ticket with us attached with the files and we will place them in the repository.
We really appreciate your contributions! Existing languages may also require updating to the latest version, for which we would appreciate contributions too.