Skip to content

leile/lobo-t-language-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lobo-T language detector

A small library that gets language from a url path

Installation

$ npm i @leile/lobo-t-language-detector
# or
$ yarn add @leile/lobo-t-language-detector

lobo-t-language-detector at a glance

lobo-t-language-detector's intended use is when you have the active language as part of the URL; for example https://leile.no/en or https://leile.no/nb. You give it the path which may contain the language identifier and it will return the active language or a fallback language, if the identifier is not present. It also ships with a handy little express middleware to detect the language on the server based on incoming requests.

That's all.

If you want to know more about why we decided to make this, see lobot-t readme.

Usage

// i18n.ts
import { initLobot } from '@leile/lobo-t';

// Specify which languages you support
export enum Language {
  Norwegian = 'nb',
  English = 'en',
}

const lobot = initLobot<typeof Language>(Language.English);

export const LanguageProvider = lobot.LanguageProvider;
export const useTranslation = lobot.useTranslation;
// languageDetector.ts
import { Language } from './i18n';
import { initLanguageDetector } from '@leile/lobo-t-language-detector';

export const languageDetector = initLanguageDetector<typeof Language>(
  Object.values(Language),
  Language.Norwegian
);
// server.ts
import { createLobotLanguageDetectorMiddleware } from 'lobo-t-language-detector';
import { languageDetector } from './languageDetector';

const server = express();
server.use(createLobotLanguageDetectorMiddleware(languageDetector));
// From now on, `req.locale` and `res.locale` will be set to the detected language
// index.tsx
import { LanguageProvider } from './i18n';
import { languageDetector } from './pathLookup';
import App from './App';

export default () => (
  <LanguageProvider
    value={languageDetector.getLanguageFromPath(window.location.pathname)}
  >
    <App />
  </LanguageProvider>
);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published