summaryrefslogtreecommitdiffhomepage
path: root/gui/src/shared/gettext.ts
blob: 9acdd80a55199c13d957c8f1f3e9a30c6a99b77e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import Gettext from 'node-gettext';
import { LocalizationContexts } from './localization-contexts';
import log from './logging';

const SOURCE_LANGUAGE = 'en';

function setErrorHandler(catalogue: Gettext) {
  catalogue.on('error', (error) => {
    log.debug(`Gettext error: ${error.message}`);
  });
}

const gettextOptions = { sourceLocale: SOURCE_LANGUAGE };

declare class GettextWithAppContexts extends Gettext {
  pgettext(msgctxt: LocalizationContexts, msgid: string): string;
  npgettext(
    msgctxt: LocalizationContexts,
    msgid: string,
    msgidPlural: string,
    count: number,
  ): string;
}

export const messages = new Gettext(gettextOptions) as GettextWithAppContexts;
messages.setTextDomain('messages');
setErrorHandler(messages);

export const relayLocations = new Gettext(gettextOptions);
relayLocations.setTextDomain('relay-locations');
setErrorHandler(relayLocations);