на трех языках. Вся локализация у меня лежит в src/locales
client/src/locales:
en.js
fr.js
index.ts
nl.js
структура файла локализации довольно проста.
btn: {
sign_in: 'Sign in',
create_account: 'Create account',
login: 'Login',
register: 'Register',
forgot_password: 'Forgot password?',
next: 'Next',
back_to_sign_in: 'Back to Sign in',
resend_reset_link: 'Resend reset link',
send_reset_link: 'Send reset link',
sign_out: 'Sign out',
},
...
profile: {
title: 'My profile',
already_an_account: '@:welcome.already_an_account',
my_information: 'My information',
order_history: 'Order history',
change_password: 'Change password',
},
т.е. я стараюсь группировать локализацию по компоненту/роутеру. Общие фразы конечно не группирую. Мне кажется поддерживать это не удобно.
Теперь я планирую перейти в JSON формат. Тогда смогу использовать утилиты для визуализации diff между языками.
Так-же есть мысли положить файлы локализации поближе к компонентам. Так, как в проекте у меня нет .vue файлов (все на tsx), я не могу использовать секцию <i18n/> . Но это мелочи - напишу лоадер. Но я все еще не уверен, что от этого станет удобнее.
А как делаете вы?
Привет. Component-specific локали удобно хранить рядом. Общие и переиспользуемые (всякие Sign in, Register, Go back, Price ${num}/month) где-то отдельно
Утилиты юзаешь?
Не понял вопроса)
Если вы перейдёте на json то вам придётся их класть в компоненты или делать какой-то index.js для переводов всё-равно, т.к. у json нет импортов, а разделять по файликам как-то надо.
Обсуждают сегодня