PHP's i18n_loc_set_default in TypeScript

How to use

Install via yarn add locutus and import: import { i18n_loc_set_default } from 'locutus/php/i18n/i18n_loc_set_default'.

Or with CommonJS: const { i18n_loc_set_default } = require('locutus/php/i18n/i18n_loc_set_default')

Use a bundler that supports tree-shaking so you only ship the functions you actually use. Vite, webpack, Rollup, and Parcel all handle this. For server-side use this is less of a concern.

Examples

These examples are extracted from test cases that automatically verify our functions against their native counterparts.

#codeexpected result
1i18n_loc_set_default('pt_PT')true

Notes

Dependencies

This function uses the following Locutus functions:

Here's what our current TypeScript equivalent to PHP's i18n_loc_set_default looks like.

import { ensurePhpRuntimeState, setPhpLocaleDefault } from '../_helpers/_phpRuntimeState.ts'
import type { PhpInput } from '../_helpers/_phpTypes.ts'

export function i18n_loc_set_default(name: string): boolean {
// discuss at: https://locutus.io/php/i18n_loc_set_default/
// original by: Brett Zamir (https://brett-zamir.me)
// note 1: Renamed in PHP6 from locale_set_default(). Not listed yet at php.net
// note 1: List of locales at https://demo.icu-project.org/icu-bin/locexp (use for implementing other locales here)
// note 1: To be usable with sort() if it is passed the SORT_LOCALE_STRING sorting flag: https://php.net/manual/en/function.sort.php
// example 1: i18n_loc_set_default('pt_PT')
// returns 1: true

const runtime = ensurePhpRuntimeState()

runtime.locales.en_US_POSIX = {
sorting: function (left: PhpInput, right: PhpInput): number {
// @todo: This one taken from strcmp, but need for other locales;
// we don't use localeCompare since its locale is not settable
const str1 = String(left)
const str2 = String(right)
return str1 === str2 ? 0 : str1 > str2 ? 1 : -1
},
}

setPhpLocaleDefault(name)

return true
}

Improve this function

Locutus is a community effort following The McDonald's Theory: we ship first iterations, hoping others will improve them. If you see something that could be better, we'd love your contribution.

View on GitHub · Edit on GitHub · View Raw


« More PHP i18n functions


Star