Multilingual Greetings React Js Github -

Multilingual Greetings React Js Github -

const styles = container: textAlign: 'center', padding: '2rem', fontFamily: 'sans-serif' , select: padding: '0.5rem 1rem', fontSize: '1rem', marginBottom: '2rem', cursor: 'pointer' , card: backgroundColor: '#f5f5f5', borderRadius: '12px', padding: '2rem', maxWidth: '400px', margin: '0 auto', boxShadow: '0 4px 12px rgba(0,0,0,0.1)' , input: padding: '0.5rem', fontSize: '1rem', marginTop: '1rem', width: '80%', borderRadius: '8px', border: '1px solid #ccc'

import i18n from 'i18next'; import initReactI18next from 'react-i18next'; const resources = en: translation: greeting: "Hello, name! Welcome to the app.", select_lang: "Select Language"

, es: translation: greeting: "¡Hola, name! Bienvenido a la aplicación.", select_lang: "Seleccionar idioma"

return ( <div style=styles.container> <h2>t('select_lang')</h2> <select value=i18n.language onChange=(e) => changeLanguage(e.target.value) style=styles.select > <option value="en">🇺🇸 English</option> <option value="es">🇪🇸 Español</option> <option value="fr">🇫🇷 Français</option> <option value="ja">🇯🇵 日本語</option> <option value="hi">🇮🇳 हिन्दी</option> </select> multilingual greetings react js github

## Deploying to GitHub Pages / Netlify

);

const changeLanguage = (lng) => i18n.changeLanguage(lng); ; Bienvenue dans l'application

, ja: translation: greeting: "こんにちは、nameさん!アプリへようこそ。", select_lang: "言語を選択"

Tags: React i18n JavaScript WebDev Open Source

, fr: translation: greeting: "Bonjour, name ! Bienvenue dans l'application.", select_lang: "Choisir la langue" For Netlify: drag & drop `build` folder

1. Push code to GitHub. 2. For Netlify: drag & drop `build` folder. 3. For GitHub Pages: ```bash npm run build npm install -g gh-pages gh-pages -d build </code></pre> <hr> <h2>Common Pitfalls & Solutions</h2> <p>| Issue | Fix | |-------|-----| | Translations not updating | Ensure <code>i18n.changeLanguage</code> is called and component re-renders (it does with <code>useTranslation</code>). | | Placeholder not replaced | Check syntax: <code>t('greeting', name )</code> not <code>t('greeting', name)</code>. | | JSON nesting errors | Keep translation keys flat unless you use nested objects (then access with <code>t('nested.key')</code>). |</p> <hr> <h2>Conclusion</h2> <p>You’ve just built a fully functional multilingual greeting app in React with i18next. The same pattern scales to large apps – you can split translations into separate JSON files, lazy-load languages, or integrate with a CMS.</p> <p><strong>Next steps:</strong></p> <ul> <li>Add more languages (Arabic RTL support requires <code>dir="rtl"</code>).</li> <li>Save user’s language preference in <code>localStorage</code>.</li> <li>Build a translation dashboard for non-technical users.</li> </ul> <p><strong>GitHub Ready?</strong><br> Fork my starter repo: <a href="https://github.com">github.com/yourusername/multilingual-greeting</a> (Replace with your actual link after creating it).</p> <hr> <p><strong>Found this helpful?</strong><br> Leave a ⭐ on GitHub and share this post with your network. Happy coding! 🚀</p> <hr>

import React, useState from 'react'; import useTranslation from 'react-i18next'; const Greeting = () => const t, i18n = useTranslation(); const [name, setName] = useState('Guest');

npm install react-country-flag import CountryFlag from "react-country-flag"; <button onClick=() => changeLanguage('es')> <CountryFlag countryCode="ES" svg /> Spanish </button> Here’s how to organize your repo for maximum clarity:

In today’s globalized world, a simple "Hello" can open doors. But what if your React app needs to say "Bonjour," "Hola," or "こんにちは"? That’s where (i18n) comes in.