@intilfy/utils
Collection of i18n utilities
๐ Features
โ ๏ธ ย Modern: ES Modules first and respect Web Standard and ECMAScript Internationalization APIs
โ ๏ธ ย Compatible: support CommonJS and various JS environments
โ ๏ธ๏ธ ย Minimal: Small and fully tree-shakable
โ ๏ธ๏ธ ย Type Strong: Written in TypeScript, with full JSdoc
๐ฟ Installation
๐ข Node.js
# Using npm
npm install @intlify/utils
# Using yarn
yarn add @intlify/utils
# Using pnpm
pnpm add @intlify/utilsUsing Edge Releases
If you are directly using @intlify/utils as a dependency:
{
"dependencies": {
"@intlify/utils": "npm:@intlify/utils-edge@latest"
}
}Note: Make sure to recreate lockfile and node_modules after reinstall to avoid hoisting issues.
๐ฆ Deno
You can install via import.
in your code:
/**
* you can install via other CDN URL such as skypack,
* or, you can also use import maps
* https://docs.deno.com/runtime/manual/basics/import_maps
*/
import { ... } from 'https://deno.land/x/intlify_utils/mod.ts'
// something todo
// ...๐ฅ Bun
bun install @intlify/utils๐ Browser
in your HTML:
<script type="module">
/**
* you can install via other CDN URL such as skypack,
* or, you can also use import maps
*/
import { isLocale } from 'https://esm.sh/@intlify/utils'
// something todo
// ...
</script>Using Edge Releases
import { isLocale } from 'https://esm.sh/@intlify/utils-edge'
// something todo
// ...๐ญ Playground
You can play the below examples:
- ๐ข Node.js:
npm run play:node - ๐ฆ Deno:
npm run play:deno - ๐ฅ Bun:
npm run play:bun - ๐ Browser:
npm run play:browser
๐จ Utilities
Common
isLocaletoLocaleparseAcceptLanguagevalidateLangTagnormalizeLanguageName
You can do import { ... } from '@intlify/utils' the above utilities
Navigator
getNavigatorLocalesgetNavigatorLocale
You can do import { ... } from '@intlify/utils' the above utilities
Note
for Node.js You need to do import { ... } from '@intlify/utils/node'
HTTP
getHeaderLanguagesgetHeaderLanguagegetHeaderLocalesgetHeaderLocalegetCookieLocalesetCookieLocalegetPathLocalegetQueryLocaletryHeaderLocalestryHeaderLocaletryCookieLocaletryPathLocaletryQueryLocale
The about utilities functions accept Web APIs such as Request and Response that is supported by JS environments (such as Deno, Bun, and Browser)
Specialized environments
If you will use Node.js and H3, You can do import { ... } from '@intlify/utils/{ENV}' the above utilities.
The namespace {ENV} is one of the following:
node: acceptIncomingMessageandOutgoingby Node.js http moduleh3: acceptH3Eventby HTTP framework h3hono: acceptContextby edge-side web framework hono
๐ Contributing guidelines
If you are interested in contributing to @intlify/utils, I highly recommend checking out the contributing guidelines here. Youโll find all the relevant information such as how to make a PR, how to setup development) etc., there.