2025-02-10 14:33:27 -08:00
|
|
|
/**
|
|
|
|
* @copyright nhcarrigan
|
|
|
|
* @license Naomi's Public License
|
|
|
|
* @author Naomi Carrigan
|
|
|
|
*/
|
|
|
|
|
|
|
|
import { describe, it, expect } from "vitest";
|
|
|
|
import { supportedLocales, mappedLocales } from "../src/config/locales.js";
|
|
|
|
|
2025-02-10 15:43:06 -08:00
|
|
|
const localesSupportedByLibretranslate = [
|
|
|
|
"ar",
|
|
|
|
"az",
|
|
|
|
"bg",
|
|
|
|
"bn",
|
|
|
|
"ca",
|
|
|
|
"cs",
|
|
|
|
"da",
|
|
|
|
"de",
|
|
|
|
"el",
|
|
|
|
"en",
|
|
|
|
"eo",
|
|
|
|
"es",
|
|
|
|
"et",
|
|
|
|
"eu",
|
|
|
|
"fa",
|
|
|
|
"fi",
|
|
|
|
"fr",
|
|
|
|
"ga",
|
|
|
|
"gl",
|
|
|
|
"he",
|
|
|
|
"hi",
|
|
|
|
"hu",
|
|
|
|
"id",
|
|
|
|
"it",
|
|
|
|
"ja",
|
|
|
|
"ko",
|
|
|
|
"lt",
|
|
|
|
"lv",
|
|
|
|
"ms",
|
|
|
|
"nb",
|
|
|
|
"nl",
|
|
|
|
"pl",
|
|
|
|
"pt",
|
|
|
|
"ro",
|
|
|
|
"ru",
|
|
|
|
"sk",
|
|
|
|
"sl",
|
|
|
|
"sq",
|
|
|
|
"sv",
|
|
|
|
"th",
|
|
|
|
"tl",
|
|
|
|
"tr",
|
|
|
|
"uk",
|
|
|
|
"ur",
|
|
|
|
"zh",
|
|
|
|
"zt",
|
|
|
|
];
|
2025-02-10 14:33:27 -08:00
|
|
|
|
|
|
|
describe("i18n locales", () => {
|
2025-02-10 15:43:06 -08:00
|
|
|
it.each(supportedLocales)(
|
|
|
|
"%s should be supported by libretranslate",
|
|
|
|
(lang) => {
|
|
|
|
expect.assertions(1);
|
|
|
|
expect(
|
|
|
|
localesSupportedByLibretranslate,
|
|
|
|
`${lang} is not supported by libretranslate`,
|
|
|
|
).toContain(lang);
|
|
|
|
},
|
|
|
|
);
|
2025-02-10 14:33:27 -08:00
|
|
|
|
2025-02-10 15:43:06 -08:00
|
|
|
it.each(Object.values(mappedLocales))(
|
|
|
|
"%s should be mapped to a supported locale",
|
|
|
|
(lang) => {
|
|
|
|
expect.assertions(1);
|
|
|
|
expect(supportedLocales, `${lang} is not supported by our app`).toContain(
|
|
|
|
lang,
|
|
|
|
);
|
|
|
|
},
|
|
|
|
);
|
2025-02-10 14:33:27 -08:00
|
|
|
});
|