Перейти к содержимому

Добавление новых локалей

Откройте tyndale.config.json и добавьте код локали в массив locales:

{
"defaultLocale": "en",
"locales": ["es", "fr", "ja", "de"]
}

defaultLocale — это исходный язык, поэтому он не должен присутствовать в locales.

Затем выполните:

Окно терминала
npx tyndale translate

translate сначала автоматически запускает извлечение, а затем генерирует переводы для новой локали, не затрагивая существующие файлы локалей, если только не требуется очистка устаревших записей.

Сопоставляйте коды вариантов с каноническими с помощью localeAliases:

{
"localeAliases": {
"pt-BR": "pt",
"zh-TW": "zh"
}
}

Tyndale определяет RTL-локали, но не изменяет <html dir> за вас. Явно задайте направление с помощью текущих хелперов локали:

app/[locale]/layout.tsx
import { getDirection } from 'tyndale-next/server';
export default async function RootLayout({
children,
params,
}: {
children: React.ReactNode;
params: Promise<{ locale: string }>;
}) {
const { locale } = await params;
return (
<html lang={locale} dir={getDirection(locale)}>
<body>{children}</body>
</html>
);
}

В клиентских компонентах используйте useDirection(), когда вам нужно активное значение направления внутри отображаемого UI.