Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fluent-langneg

Package Overview
Dependencies
Maintainers
3
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fluent-langneg

Language Negotiation API for Fluent

  • 0.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

fluent-langneg

fluent-langneg is an API for negotiating languages. It's part of Project Fluent, a localization framework designed to unleash the expressive power of the natural language.

It's main function is to provide functionality around the Intl.Locale API with a focus on language negotiation, matching and selection.

Installation

fluent-langneg can be used both on the client-side and the server-side. You can install it from the npm registry or use it as a standalone script.

npm install fluent-langneg

How to use

import { negotiateLanguages } from 'fluent-langneg';

const supportedLocales = negotiateLanguages(
  navigator.languages,       // requested locales
  ['de', 'en-US', 'pl'],     // available locales
  { defaultLocale: 'en-US' }
);

The API reference is available at https://projectfluent.org/fluent.js/fluent-langneg.

Strategies

The API supports three negotiation strategies:

filtering (default)

In this strategy the algorithm will look for the best matching available locale for each requested locale.

Example:

requested: ['de-DE', 'fr-FR'] available: ['it', 'de', 'en-US', 'fr-CA', 'de-DE', 'fr', 'de-AU']

supported: ['de-DE', 'fr']

matching

In this strategy the algorithm will try to match as many available locales as possible for each of the requested locale.

Example:

requested: ['de-DE', 'fr-FR'] available: ['it', 'de', 'en-US', 'fr-CA', 'de-DE', 'fr', 'de-AU']

supported: ['de-DE', 'de', 'fr', 'fr-CA']

lookup

In this strategy the algorithm will try to find the single best locale for the requested locale list among the available locales.

Example:

requested: ['de-DE', 'fr-FR'] available: ['it', 'de', 'en-US', 'fr-CA', 'de-DE', 'fr', 'de-AU']

supported: ['de-DE']

API use:

let supported = negotiateLanguages(requested, available, {
  strategy: 'matching',
});

Likely subtags

Fluent Language Negotiation module carries its own minimal list of likely subtags data, which is useful in finding most likely available locales in case the requested locale is too generic.

An example of that scenario is when the user requests en locale, and the application supportes en-GB and en-US.

Learn more

Find out more about Project Fluent at projectfluent.org, including documentation of the Fluent file format (FTL), links to other packages and implementations, and information about how to get involved.

Keywords

FAQs

Package last updated on 25 Jul 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc