diff --git a/ui/src/i18next.ts b/ui/src/i18next.ts index 85d06f91f..2cd290007 100644 --- a/ui/src/i18next.ts +++ b/ui/src/i18next.ts @@ -13,14 +13,18 @@ import { it } from './translations/it'; import { fi } from './translations/fi'; import { ca } from './translations/ca'; import { fa } from './translations/fa'; +import { hi } from './translations/hi'; import { pt_BR } from './translations/pt_BR'; import { ja } from './translations/ja'; +import { ka } from './translations/ka'; // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 const resources = { en, eo, es, + ka, + hi, de, zh, fr, diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 21a7fef83..2256a0c13 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -13,6 +13,7 @@ import 'moment/locale/fa'; import 'moment/locale/pt-br'; import 'moment/locale/ja'; import 'moment/locale/ka'; +import 'moment/locale/hi'; import { UserOperation, @@ -62,6 +63,7 @@ export const languages = [ { code: 'es', name: 'Español' }, { code: 'de', name: 'Deutsch' }, { code: 'ka', name: 'ქართული ენა' }, + { code: 'hi', name: 'मानक हिन्दी' }, { code: 'fa', name: 'فارسی' }, { code: 'ja', name: '日本語' }, { code: 'pt_BR', name: 'Português Brasileiro' }, @@ -118,11 +120,11 @@ export const md = new markdown_it({ typographer: true, }) .use(markdown_it_container, 'spoiler', { - validate: function(params: any) { + validate: function (params: any) { return params.trim().match(/^spoiler\s+(.*)$/); }, - render: function(tokens: any, idx: any) { + render: function (tokens: any, idx: any) { var m = tokens[idx].info.trim().match(/^spoiler\s+(.*)$/); if (tokens[idx].nesting === 1) { @@ -138,7 +140,7 @@ export const md = new markdown_it({ defs: objectFlip(emojiShortName), }); -md.renderer.rules.emoji = function(token, idx) { +md.renderer.rules.emoji = function (token, idx) { return twemoji.parse(token[idx].content); }; @@ -284,7 +286,7 @@ export function debounce( let timeout: any; // Calling debounce returns a new anonymous function - return function() { + return function () { // reference the context and args for the setTimeout function var context = this, args = arguments; @@ -300,7 +302,7 @@ export function debounce( clearTimeout(timeout); // Set the new timeout - timeout = setTimeout(function() { + timeout = setTimeout(function () { // Inside the timeout function, clear the timeout variable // which will let the next execution run when in 'immediate' mode timeout = null; @@ -366,6 +368,8 @@ export function getMomentLanguage(): string { lang = 'ja'; } else if (lang.startsWith('ka')) { lang = 'ka'; + } else if (lang.startsWith('hi')) { + lang = 'hi'; } else { lang = 'en'; } diff --git a/ui/translations/hi.json b/ui/translations/hi.json new file mode 100644 index 000000000..0db3279e4 --- /dev/null +++ b/ui/translations/hi.json @@ -0,0 +1,3 @@ +{ + +}