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:

  1. Return language from URI query e.g. ?language=de
  2. Return language from URI path e.g. /de/...
  3. Return language from current PHP session
  4. Return language from a previously set cookie
  5. Return language from the browser request headers
  6. Return language from country TLD, if set
  7. Return default language
  8. Return system language
  9. 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

$query = database::query(
  "select * from ". DB_TABLE_PREFIX ."languages
  where code = '". database::input($language_code) ."'
  limit 1;"
);

$language = database::fetch($query);

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

See Also

Revisions

Recently Edited Articles