summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gui/src/shared/gettext.ts13
-rw-r--r--gui/src/shared/localization-contexts.ts29
2 files changed, 41 insertions, 1 deletions
diff --git a/gui/src/shared/gettext.ts b/gui/src/shared/gettext.ts
index cf7e91830a..cfee187351 100644
--- a/gui/src/shared/gettext.ts
+++ b/gui/src/shared/gettext.ts
@@ -3,6 +3,7 @@ import fs from 'fs';
import { po } from 'gettext-parser';
import Gettext from 'node-gettext';
import path from 'path';
+import { LocalizationContexts } from './localization-contexts';
const SOURCE_LANGUAGE = 'en';
const LOCALES_DIR = path.resolve(__dirname, '../../locales');
@@ -70,7 +71,17 @@ function setErrorHandler(catalogue: Gettext) {
const gettextOptions = { sourceLocale: SOURCE_LANGUAGE };
-export const messages = new Gettext(gettextOptions);
+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);
diff --git a/gui/src/shared/localization-contexts.ts b/gui/src/shared/localization-contexts.ts
new file mode 100644
index 0000000000..7f408c0a83
--- /dev/null
+++ b/gui/src/shared/localization-contexts.ts
@@ -0,0 +1,29 @@
+export type LocalizationContexts =
+ | 'generic'
+ | 'login-view'
+ | 'auth-failure'
+ | 'launch-view'
+ | 'error-boundary-view'
+ | 'connect-container'
+ | 'connect-view'
+ | 'tunnel-control'
+ | 'connection-info'
+ | 'notifications'
+ | 'in-app-notifications'
+ | 'account-expiry'
+ | 'select-location-view'
+ | 'select-location-nav'
+ | 'settings-view'
+ | 'navigation-bar'
+ | 'account-view'
+ | 'redeem-voucher-view'
+ | 'redeem-voucher-alert'
+ | 'preferences-view'
+ | 'preferences-nav'
+ | 'advanced-settings-view'
+ | 'advanced-settings-nav'
+ | 'advanced-settings-view-wireguard'
+ | 'wireguard-key-view'
+ | 'wireguard-keys-nav'
+ | 'support-view'
+ | 'select-language-nav';