diff --git a/packages/backend/src/server/web/HtmlTemplateService.ts b/packages/backend/src/server/web/HtmlTemplateService.ts index 80c767d886..8ff985530d 100644 --- a/packages/backend/src/server/web/HtmlTemplateService.ts +++ b/packages/backend/src/server/web/HtmlTemplateService.ts @@ -6,7 +6,7 @@ import { dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; import { promises as fsp } from 'node:fs'; -import { languages } from 'i18n'; +import { languages } from 'i18n/const'; import { Injectable, Inject } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; import { bindThis } from '@/decorators.js'; diff --git a/packages/i18n/package.json b/packages/i18n/package.json index d06e485da0..6ba41632e8 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -8,6 +8,10 @@ ".": { "types": "./built/index.d.ts", "import": "./built/index.js" + }, + "./const": { + "types": "./built/const.d.ts", + "import": "./built/const.js" } }, "scripts": { diff --git a/packages/i18n/src/const.ts b/packages/i18n/src/const.ts new file mode 100644 index 0000000000..bb690e7542 --- /dev/null +++ b/packages/i18n/src/const.ts @@ -0,0 +1,41 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export const languages = [ + 'ar-SA', + 'ca-ES', + 'cs-CZ', + 'da-DK', + 'de-DE', + 'en-US', + 'es-ES', + 'fr-FR', + 'id-ID', + 'it-IT', + 'ja-JP', + 'ja-KS', + 'kab-KAB', + 'kn-IN', + 'ko-KR', + 'nl-NL', + 'no-NO', + 'pl-PL', + 'pt-PT', + 'ru-RU', + 'sk-SK', + 'th-TH', + 'tr-TR', + 'ug-CN', + 'uk-UA', + 'vi-VN', + 'zh-CN', + 'zh-TW', +] as const; + +export const primaries = { + 'en': 'US', + 'ja': 'JP', + 'zh': 'CN', +} as const satisfies Record; diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index 77a4f42012..21d215159f 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -9,48 +9,12 @@ import * as fs from 'node:fs'; import * as yaml from 'js-yaml'; +import { languages, primaries } from './const.js'; import type { Locale } from './autogen/locale.js'; import type { ILocale, ParameterizedString } from './types.js'; -const languages = [ - 'ar-SA', - 'ca-ES', - 'cs-CZ', - 'da-DK', - 'de-DE', - 'en-US', - 'es-ES', - 'fr-FR', - 'id-ID', - 'it-IT', - 'ja-JP', - 'ja-KS', - 'kab-KAB', - 'kn-IN', - 'ko-KR', - 'nl-NL', - 'no-NO', - 'pl-PL', - 'pt-PT', - 'ru-RU', - 'sk-SK', - 'th-TH', - 'tr-TR', - 'ug-CN', - 'uk-UA', - 'vi-VN', - 'zh-CN', - 'zh-TW', -] as const; - type Language = typeof languages[number]; -const primaries = { - 'en': 'US', - 'ja': 'JP', - 'zh': 'CN', -} as const satisfies Record; - type PrimaryLang = keyof typeof primaries; type Locales = Record;