Skip to content

Commit 76cbd9b

Browse files
committed
fix(compiler): dictionary merging
1 parent 0f6de71 commit 76cbd9b

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed

.changeset/selfish-cooks-suffer.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"vite-project": patch
3+
"@lingo.dev/_compiler": patch
4+
---
5+
6+
dictionary merging

demo/vite-project/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
"preview": "vite preview"
1111
},
1212
"dependencies": {
13+
"@vitejs/plugin-react": "^4.4.1",
1314
"react": "^19.1.0",
1415
"react-dom": "^19.1.0"
1516
},
1617
"devDependencies": {
17-
"lingo.dev": "workspace:*",
1818
"@eslint/js": "^9.25.0",
1919
"@types/react": "^19.1.2",
2020
"@types/react-dom": "^19.1.2",
@@ -23,6 +23,7 @@
2323
"eslint-plugin-react-hooks": "^5.2.0",
2424
"eslint-plugin-react-refresh": "^0.4.19",
2525
"globals": "^16.0.0",
26+
"lingo.dev": "workspace:*",
2627
"typescript": "~5.8.3",
2728
"typescript-eslint": "^8.30.1",
2829
"vite": "^6.3.5"

demo/vite-project/src/lingo/dictionary.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export default {
3838
en: "Lingo.dev loves Vite and React",
3939
es: "Lingo.dev ama Vite y React",
4040
fr: "Lingo.dev adore Vite et React",
41-
ja: "Lingo.devはViteとReactを愛しています",
41+
ja: "Lingo.devはViteとReactを愛用しています",
4242
ko: "Lingo.dev는 Vite와 React를 사랑합니다",
4343
ru: "Lingo.dev любит Vite и React",
4444
zh: "Lingo.dev 喜欢 Vite 和 React",
@@ -52,7 +52,7 @@ export default {
5252
en: "Welcome to your new Vite & React application! This starter template includes everything you need to get started with Vite & React and Lingo.dev for internationalization.",
5353
es: "¡Bienvenido a tu nueva aplicación de Vite y React! Esta plantilla de inicio incluye todo lo que necesitas para comenzar con Vite y React y Lingo.dev para la internacionalización.",
5454
fr: "Bienvenue dans votre nouvelle application Vite & React ! Ce modèle de démarrage comprend tout ce dont vous avez besoin pour commencer avec Vite & React et Lingo.dev pour l'internationalisation.",
55-
ja: "ViteとReactの新しいアプリケーションへようこそ!このスターターテンプレートには、ViteとReact、そして国際化のためのLingo.devを使い始めるために必要なすべてが含まれています。",
55+
ja: "Vite&Reactアプリケーションへようこそ!このスターターテンプレートには、Vite&ReactとLingo.devを使用した国際化を始めるために必要なすべてが含まれています。",
5656
ko: "Vite & React 애플리케이션에 오신 것을 환영합니다! 이 스타터 템플릿에는 Vite & React 및 국제화를 위한 Lingo.dev로 시작하는 데 필요한 모든 것이 포함되어 있습니다.",
5757
ru: "Добро пожаловать в ваше новое приложение на Vite и React! Этот стартовый шаблон включает всё необходимое для начала работы с Vite, React и Lingo.dev для интернационализации.",
5858
zh: "欢迎使用全新的 Vite 和 React 应用程序!此入门模板包含了使用 Vite、React 和 Lingo.dev 进行国际化所需的一切。",
@@ -94,7 +94,7 @@ export default {
9494
en: "Click on the logos above to learn more",
9595
es: "Haz clic en los logos de arriba para obtener más información",
9696
fr: "Cliquez sur les logos ci-dessus pour en savoir plus",
97-
ja: "詳細を学ぶには上のロゴをクリックしてください",
97+
ja: "詳細を学ぶには上記のロゴをクリックしてください",
9898
ko: "위의 로고를 클릭하여 자세히 알아보세요",
9999
ru: "Нажмите на логотипы выше, чтобы узнать больше",
100100
zh: "点击上方的标志以了解更多信息",

packages/compiler/src/lib/lcp/server.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ export class LCPServer {
133133

134134
// we merge new translations with cache, so that we can cache empty strings
135135
targetDictionary = this._mergeDictionaries(newTranslations, cache);
136+
// ensure the locale metadata reflects the target locale
137+
targetDictionary = {
138+
...targetDictionary,
139+
locale: params.targetLocale,
140+
};
136141
await LCPCache.writeLocaleDictionary(targetDictionary, cacheParams);
137142
}
138143

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)