Languages
Code
ISO 639-1 language code by the International Standard Organization.
Charset
UTF-8 is recommended. Windows however do not support unicoded character sets for which must be set to Windows-1252, ISO-8859-1 or similar.
System Locale
The system locale is the local machine code for regional settings. These differ on different platforms. Contact your system administrator if you are unsure about your system locales. An example is shown below.
Locale Linux Mac Windows (Non-UTF-8)
English (United States) en_US.utf8 en_US.UTF-8 en-US, eng_us, or english_United States
Swedish (Sweden) sv_SE.utf8 sv_SE.UTF-8 sv-SE, sve_swe, or swedish_Sweden
Japanese (Japan) ja_JP.utf8 ja_JP.UTF-8 ja-JP, jap_jap, or japanese_Japan
Note: Windows do not support UTF-8. For strftime() LiteCart will attempt to convert encoding to UTF-8.
Note: PHP 5.6+ runs UTF-8 as default charset.
How does LiteCart attempt to identify the user language?
LiteCart attempts to identify the choice of language in the following
order:
- Return language from URI query e.g. ?language=de
- Return language from URI path e.g. /de/...
- Return language from current PHP session
- Return language from a previously set cookie
- Return language from the browser request headers
- Return language from country TLD, if set
- Return default language
- Return system language
- Return first language in list
Entity Object
$language = new ent_language();
$language->data['code'] = 'xx';
$language->data['name'] = 'Name';
$language->save();
Reference Model
echo reference::language('en')->name;
Database Query
$language = database::query(
"select * from ". DB_TABLE_PREFIX ."languages
where code = '". database::input($language_code) ."'
limit 1;"
)->fetch();
Session Language
language::set($language_code);
var_dump(language::$selected);
Date/Time Formatting
echo language::strftime(language::$selected['format_date'], $timestamp); // 27 Nov 2023
echo language::strftime(language::$selected['format_datetime'], $timestamp); // 27 Nov 2023 4:23 PM
echo language::strftime(language::$selected['format_time'], $timestamp); // 4:23 PM
echo date(language::$selected['raw_date'], $timestamp); // 11/27/23
echo date(language::$selected['raw_datetime'], $timestamp); // 11/27/23 4:23 PM
echo date(language::$selected['raw_time'], $timestamp); // 4:23 PM
Number Formatting
echo language::number_format($value, $decimals); // 1,000.00