i18next-config.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. 'use client'
  2. import i18n from 'i18next'
  3. import { initReactI18next } from 'react-i18next'
  4. import commonEn from './lang/common.en'
  5. import commonZh from './lang/common.zh'
  6. import loginEn from './lang/login.en'
  7. import loginZh from './lang/login.zh'
  8. import registerEn from './lang/register.en'
  9. import registerZh from './lang/register.zh'
  10. import layoutEn from './lang/layout.en'
  11. import layoutZh from './lang/layout.zh'
  12. import appEn from './lang/app.en'
  13. import appZh from './lang/app.zh'
  14. import appOverviewEn from './lang/app-overview.en'
  15. import appOverviewZh from './lang/app-overview.zh'
  16. import appDebugEn from './lang/app-debug.en'
  17. import appDebugZh from './lang/app-debug.zh'
  18. import appApiEn from './lang/app-api.en'
  19. import appApiZh from './lang/app-api.zh'
  20. import appLogEn from './lang/app-log.en'
  21. import appLogZh from './lang/app-log.zh'
  22. import shareEn from './lang/share-app.en'
  23. import shareZh from './lang/share-app.zh'
  24. import datasetEn from './lang/dataset.en'
  25. import datasetZh from './lang/dataset.zh'
  26. import datasetDocumentsEn from './lang/dataset-documents.en'
  27. import datasetDocumentsZh from './lang/dataset-documents.zh'
  28. import datasetHitTestingEn from './lang/dataset-hit-testing.en'
  29. import datasetHitTestingZh from './lang/dataset-hit-testing.zh'
  30. import datasetSettingsEn from './lang/dataset-settings.en'
  31. import datasetSettingsZh from './lang/dataset-settings.zh'
  32. import datasetCreationEn from './lang/dataset-creation.en'
  33. import datasetCreationZh from './lang/dataset-creation.zh'
  34. import { getLocaleOnClient } from '@/i18n/client'
  35. const resources = {
  36. 'en': {
  37. translation: {
  38. common: commonEn,
  39. layout: layoutEn, // page layout
  40. login: loginEn,
  41. register: registerEn,
  42. // app
  43. app: appEn,
  44. appOverview: appOverviewEn,
  45. appDebug: appDebugEn,
  46. appApi: appApiEn,
  47. appLog: appLogEn,
  48. // share
  49. share: shareEn,
  50. dataset: datasetEn,
  51. datasetDocuments: datasetDocumentsEn,
  52. datasetHitTesting: datasetHitTestingEn,
  53. datasetSettings: datasetSettingsEn,
  54. datasetCreation: datasetCreationEn,
  55. },
  56. },
  57. 'zh-Hans': {
  58. translation: {
  59. common: commonZh,
  60. layout: layoutZh,
  61. login: loginZh,
  62. register: registerZh,
  63. // app
  64. app: appZh,
  65. appOverview: appOverviewZh,
  66. appDebug: appDebugZh,
  67. appApi: appApiZh,
  68. appLog: appLogZh,
  69. // share
  70. share: shareZh,
  71. dataset: datasetZh,
  72. datasetDocuments: datasetDocumentsZh,
  73. datasetHitTesting: datasetHitTestingZh,
  74. datasetSettings: datasetSettingsZh,
  75. datasetCreation: datasetCreationZh,
  76. },
  77. },
  78. }
  79. i18n.use(initReactI18next)
  80. // init i18next
  81. // for all options read: https://www.i18next.com/overview/configuration-options
  82. .init({
  83. lng: getLocaleOnClient(),
  84. fallbackLng: 'en',
  85. // debug: true,
  86. resources,
  87. })
  88. export const changeLanguage = i18n.changeLanguage
  89. export default i18n