Skip to main content
Deno 2 is finally here ๐ŸŽ‰๏ธ
Learn more

@intilfy/utils

npm version npm downloads CI

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/utils
Using 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

  • isLocale
  • toLocale
  • parseAcceptLanguage
  • validateLangTag
  • normalizeLanguageName

You can do import { ... } from '@intlify/utils' the above utilities

  • getNavigatorLocales
  • getNavigatorLocale

You can do import { ... } from '@intlify/utils' the above utilities

Note

for Node.js You need to do import { ... } from '@intlify/utils/node'

HTTP

  • getHeaderLanguages
  • getHeaderLanguage
  • getHeaderLocales
  • getHeaderLocale
  • getCookieLocale
  • setCookieLocale
  • getPathLocale
  • getQueryLocale
  • tryHeaderLocales
  • tryHeaderLocale
  • tryCookieLocale
  • tryPathLocale
  • tryQueryLocale

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: accept IncomingMessage and Outgoing by Node.js http module
  • h3: accept H3Event by HTTP framework h3
  • hono: accept Context by 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.

ยฉ๏ธ License

MIT