index.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import i18n from 'i18next';
  2. import { initReactI18next } from 'react-i18next';
  3. import LanguageDetector from 'i18next-browser-languagedetector';
  4. // Import translations directly for bundling
  5. import en from './locales/en';
  6. import de from './locales/de';
  7. const resources = {
  8. en: { translation: en },
  9. de: { translation: de },
  10. };
  11. i18n
  12. .use(LanguageDetector)
  13. .use(initReactI18next)
  14. .init({
  15. resources,
  16. fallbackLng: 'en',
  17. supportedLngs: ['en', 'de'],
  18. detection: {
  19. // Order of detection methods
  20. order: ['localStorage', 'navigator', 'htmlTag'],
  21. // Key to use in localStorage
  22. lookupLocalStorage: 'bambutrack_language',
  23. // Cache user language
  24. caches: ['localStorage'],
  25. },
  26. interpolation: {
  27. escapeValue: false, // React already escapes
  28. },
  29. react: {
  30. useSuspense: false,
  31. },
  32. });
  33. export default i18n;
  34. // Helper to get available languages
  35. export const availableLanguages = [
  36. { code: 'en', name: 'English', nativeName: 'English' },
  37. { code: 'de', name: 'German', nativeName: 'Deutsch' },
  38. ];