Multi-language Support

How to implement multi-language features in your application

Available Languages

🇬🇧

English

Default language for all countries

🇸🇦

Arabic

Complete for Arab countries

🇫��

French

Available for all countries

Language Detection

Detect and set language based on user preferences:

// Detect browser language
const detectUserLanguage = () => {
  const browserLang = navigator.language.split('-')[0];
  
  // Map to supported languages
  if (browserLang === 'ar') return 'ar';
  if (browserLang === 'fr') return 'fr';
  return 'en'; // Default to English
};

// Use with localStorage for persistence
const getPreferredLanguage = () => {
  const saved = localStorage.getItem('preferredLang');
  if (saved && ['en', 'ar', 'fr'].includes(saved)) {
    return saved;
  }
  return detectUserLanguage();
};

Implementation Example

MultiLangApp.tsx
import { useState } from 'react';
import { allCountries } from 'countries-cities-ar';

function MultiLangApp() {
  const [lang, setLang] = useState('en');
  
  const getCountryName = (country) => {
    switch(lang) {
      case 'ar': return country.nameAr;
      case 'fr': return country.nameFr;
      default: return country.name;
    }
  };
  
  return (
    <div>
      {/* Language Switcher */}
      <select 
        value={lang} 
        onChange={(e) => setLang(e.target.value)}
        className="mb-4 px-3 py-2 border rounded"
      >
        <option value="en">English</option>
        <option value="ar">العربية</option>
        <option value="fr">Français</option>
      </select>
      
      {/* Display countries in selected language */}
      <div className="grid gap-2">
        {allCountries.slice(0, 10).map(country => (
          <div key={country.code} className="p-2 border rounded">
            {getCountryName(country)}
          </div>
        ))}
      </div>
    </div>
  );
}

Countries Cities AR

Documentation

Version
v3.0.1
250 دولة • 4,642 محافظة