src/App.tsx і збережіть, щоб перевірити HMR
>
),
en: (
<>
Edit src/App.tsx and save to test HMR
>
),
fr: (
<>
Éditez src/App.tsx et enregistrez pour tester HMR
>
),
es: (
<>
Edita src/App.tsx y guarda para probar HMR
>
),
}),
readTheDocs: t({
uk: "Натисніть на логотипи Vite і React, щоб дізнатися більше",
en: "Click on the Vite and React logos to learn more",
uk: "Натисніть на логотипи Vite та React, щоб дізнатися більше",
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
es: "Haga clic en los logotipos de Vite y React para obtener más información",
}),
},
} satisfies Dictionary;
export default appContent;
```
```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
import { t } from "intlayer";
/** @type {import('intlayer').Dictionary} */
const appContent = {
key: "app",
content: {
viteLogo: t({
uk: "Логотип Vite",
en: "Vite logo",
fr: "Logo Vite",
es: "Logo Vite",
}),
reactLogo: t({
uk: "Логотип React",
en: "React logo",
fr: "Logo React",
es: "Logo React",
}),
title: "Vite + React",
count: t({
uk: "лічильник: ",
en: "count is ",
fr: "le compte est ",
es: "el recuento es ",
}),
edit:
t <
ReactNode >
{
// Не забудьте імпортувати React, якщо ви використовуєте React node у своєму контенті
uk: (
<>
Редагуйте src/App.tsx і збережіть, щоб протестувати HMR
>
),
en: (
<>
Edit src/App.tsx and save to test HMR
>
),
fr: (
<>
Éditez src/App.tsx et enregistrez pour tester HMR
>
),
es: (
<>
Edita src/App.tsx y guarda para probar HMR
>
),
},
readTheDocs: t({
uk: "Клацніть на логотипи Vite та React, щоб дізнатися більше",
en: "Click on the Vite and React logos to learn more",
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
es: "Haga clic en los logotipos de Vite y React para obtener más información",
}),
},
};
export default appContent;
```
```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
const { t } = require("intlayer");
/** @type {import('intlayer').Dictionary} */
const appContent = {
key: "app",
content: {
viteLogo: t({
uk: "Логотип Vite",
en: "Vite logo",
fr: "Logo Vite",
es: "Logo Vite",
}),
reactLogo: t({
uk: "Логотип React",
en: "React logo",
fr: "Logo React",
es: "Logo React",
}),
title: "Vite + React",
count: t({
uk: "лічильник: ",
en: "count is ",
fr: "le compte est ",
es: "el recuento es ",
}),
edit:
t <
ReactNode >
{
// Не забудьте імпортувати React, якщо ви використовуєте React node у вашому вмісті
uk: (
<>
Редагуйте src/App.tsx та збережіть, щоб протестувати
HMR
>
),
en: (
<>
Edit src/App.tsx and save to test HMR
>
),
uk: (
<>
Відредагуйте src/App.tsx та збережіть, щоб перевірити
HMR
>
),
fr: (
<>
Éditez src/App.tsx et enregistrez pour tester HMR
>
),
es: (
<>
Edita src/App.tsx y guarda para probar HMR
>
),
},
readTheDocs: t({
uk: "Натисніть на логотипи Vite і React, щоб дізнатися більше",
en: "Click on the Vite and React logos to learn more",
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
es: "Haga clic en los logotipos de Vite y React para obtener más información",
}),
},
};
module.exports = appContent;
```
```json fileName="src/app.content.json" contentDeclarationFormat="json"
{
"$schema": "https://intlayer.org/schema.json",
"key": "app",
"content": {
"viteLogo": {
"nodeType": "translation",
"translation": {
"en": "Vite logo",
"uk": "Логотип Vite",
"fr": "Logo Vite",
"es": "Logo Vite"
}
},
"reactLogo": {
"nodeType": "translation",
"translation": {
"uk": "Логотип React",
"en": "React logo",
"fr": "Logo React",
"es": "Logo React"
}
},
"title": {
"nodeType": "translation",
"translation": {
"uk": "Vite + React",
"en": "Vite + React",
"fr": "Vite + React",
"es": "Vite + React"
}
},
"count": {
"nodeType": "translation",
"translation": {
"uk": "лічильник: ",
"en": "count is ",
"fr": "le compte est ",
"es": "el recuento es "
}
},
"edit": {
"nodeType": "translation",
"translation": {
"uk": "Редагуйте src/App.tsx і збережіть, щоб протестувати HMR",
"en": "Edit src/App.tsx and save to test HMR",
"fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
"es": "Edita src/App.tsx y guarda para probar HMR"
}
},
"readTheDocs": {
"nodeType": "translation",
"translation": {
"uk": "Натисніть на логотипи Vite та React, щоб дізнатися більше",
"en": "Click on the Vite and React logos to learn more",
"fr": "Cliquez sur les logos Vite et React pour en savoir plus",
"es": "Haga clic en los logotipos de Vite y React para obtener más información"
}
}
}
}
```
> Ваші декларації контенту можуть бути визначені будь-де у вашому застосунку, як тільки вони будуть додані до директорії `contentDir` (за замовчуванням, `./src`). І збігатися з розширенням файлу декларації контенту (за замовчуванням, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
> Для більш детальної інформації див. [документацію з декларації контенту](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md).
> Якщо ваш файл контенту містить код TSX, слід розглянути імпорт `import React from "react";` у вашому файлі контенту.
### Крок 5: Використання Intlayer у вашому коді
Отримуйте доступ до словників контенту по всьому застосунку:
```tsx {5,9} fileName="src/App.tsx" codeFormat="typescript"
import { useState, type FC } from "react";
import reactLogo from "./assets/react.svg";
import viteLogo from "/vite.svg";
import "./App.css";
import { IntlayerProvider, useIntlayer } from "react-intlayer";
const AppContent: FC = () => {
const [count, setCount] = useState(0);
const content = useIntlayer("app");
return (
<>
{content.edit}
{content.readTheDocs}
> ); }; const App: FC = () => ({content.edit}
{content.readTheDocs}
> ); }; const App = () => ({content.edit}
{content.readTheDocs}
> ); }; const App = () => (