1.0.4 • Published 5 years ago

culture-info v1.0.4

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

CultureInfo.js

A node-package for representing locales

General

This package allows you to easily represent locales and determining the next lesser-specific parent of a locale (en-US => en).

This key feature might be usable for creating a resource-manager or showing web-content based on a language-tag consisting of the language, the script and the region.

Creating a CultureInfo instance

You can create a CultureInfo instance by passing a language-tag to its constructor:

import { CultureInfo } from "@manuth/culture-info";

let culture = new CultureInfo("en-US");

Following kinds of language-tags are supported:

  • Language
    Example: en
  • Language and region
    Example: en-US
  • Language, script and region
    Example: zh-Hans-CN

Features

Automated Casing

The casing is automatically adjusted allowing you to pass the language-tag even with incorrect letter-casing:

console.log(new CultureInfo("EN-US").Name); // Logs `"en-US"`
console.log(new CultureInfo("zH-hANs-cN").Name); // Logs `"zh-Hans-CN"`

Checking whether a culture only consists of a language:

console.log(new CultureInfo("en").IsNeutralCulture); // Logs `true`
console.log(new CultureInfo("en-US").IsNeutralCulture); // Logs `false`

Walking up the Locale-Graph

You might want to find out the next lesser specific locale of a specific language-tag. This can be achieved using the Parent-property:

let culture = new CultureInfo("en-US");
console.log(culture.Name); // Logs `"en-US"`
culture = culture.Parent;
console.log(culture.Name); // Logs `"en"`
culture = culture.Parent;
console.log(culture.Name); // Logs `""` - That's the invariant culture

String Conversion

When converting a CultureInfo to a string it's automatically converted to the language-tag:

console.log(`${new CultureInfo("en-US")}`); // Logs `"en-US"`