diff --git a/packages/language-select/package.json b/packages/language-select/package.json
index 5bdcefbad7a6998210f4c255fa898b8eafc587c8..0079a30c5b728f2bf20f8f05e41658c22b28ba3b 100644
--- a/packages/language-select/package.json
+++ b/packages/language-select/package.json
@@ -24,7 +24,6 @@
     "vpu-common": "file:./vendor/common"
   },
   "dependencies": {
-    "i18next": "^17.0.3",
     "lit-element": "^2.1.0"
   },
   "scripts": {
diff --git a/packages/language-select/rollup.config.js b/packages/language-select/rollup.config.js
index 2d9f0c87644a1997ec83f96b73e6a89a4536c341..7448ef5f354d7c11dfdc10cff023cf44213c2f5a 100644
--- a/packages/language-select/rollup.config.js
+++ b/packages/language-select/rollup.config.js
@@ -1,3 +1,4 @@
+import path from 'path';
 import resolve from 'rollup-plugin-node-resolve';
 import commonjs from 'rollup-plugin-commonjs';
 import copy from 'rollup-plugin-copy';
@@ -18,7 +19,12 @@ export default {
     },
     plugins: [
         multiEntry(),
-        resolve(),
+        resolve({
+          customResolveOptions: {
+            // ignore node_modules from vendored packages
+            moduleDirectory: path.join(process.cwd(), 'node_modules')
+          }
+        }),
         commonjs({
             include: 'node_modules/**'
         }),
diff --git a/packages/language-select/src/i18n.js b/packages/language-select/src/i18n.js
index a2380632e7095df7cc09dddf372598f5d6b5898c..02c88eb4fd48d17e453af6166addcd7583e92479 100644
--- a/packages/language-select/src/i18n.js
+++ b/packages/language-select/src/i18n.js
@@ -1,29 +1,6 @@
-import i18next from 'i18next';
+import {createInstance} from 'vpu-common/i18next.js';
 
 import de from './i18n/de/translation.json';
 import en from './i18n/en/translation.json';
 
-const i18n = i18next.createInstance();
-
-i18n.init({
-    lng: 'de',
-    fallbackLng: ['de'],
-    debug: false,
-    initImmediate: false, // Don't init async
-    resources: {
-        en: {translation: en},
-        de: {translation: de}
-    },
-});
-
-console.assert(i18n.isInitialized);
-
-function dateTimeFormat(date, options) {
-    return new Intl.DateTimeFormat(i18n.languages, options).format(date);
-}
-
-function numberFormat(number, options) {
-    return new Intl.NumberFormat(i18n.languages, options).format(number);
-}
-
-export {i18n, dateTimeFormat, numberFormat};
+export const i18n = createInstance({en: en, de: de}, 'de', 'en');
\ No newline at end of file
diff --git a/packages/language-select/src/language-select.js b/packages/language-select/src/language-select.js
index cf3a5102f2aa8ad5fb726216f242779fe742bf75..53d05ed7ec6e000912343ecef9b3fa7cb45f300b 100644
--- a/packages/language-select/src/language-select.js
+++ b/packages/language-select/src/language-select.js
@@ -1,5 +1,5 @@
 import {html, css, LitElement} from 'lit-element';
-import {i18n, dateTimeFormat, numberFormat} from './i18n.js';
+import {i18n} from './i18n.js';
 import utils from 'vpu-common/utils';
 
 /**
diff --git a/packages/language-select/vendor/common b/packages/language-select/vendor/common
index b30eaa6475ccc65b5f99d2ead86ddbe2b8e015a7..378256b0ae92712fd5b8feed3a987cd014617c0b 160000
--- a/packages/language-select/vendor/common
+++ b/packages/language-select/vendor/common
@@ -1 +1 @@
-Subproject commit b30eaa6475ccc65b5f99d2ead86ddbe2b8e015a7
+Subproject commit 378256b0ae92712fd5b8feed3a987cd014617c0b