initial commit.

This commit is contained in:
Jordan Hewitt 2025-01-22 18:57:32 -08:00
commit e83034cedc
33 changed files with 15892 additions and 0 deletions

38
.gitignore vendored Normal file
View File

@ -0,0 +1,38 @@
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
# dependencies
node_modules/
# Expo
.expo/
dist/
web-build/
expo-env.d.ts
# Native
*.orig.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision
# Metro
.metro-health-check*
# debug
npm-debug.*
yarn-debug.*
yarn-error.*
# macOS
.DS_Store
*.pem
# local env files
.env*.local
# typescript
*.tsbuildinfo
app-example

50
README.md Normal file
View File

@ -0,0 +1,50 @@
# Welcome to your Expo app 👋
This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app).
## Get started
1. Install dependencies
```bash
npm install
```
2. Start the app
```bash
npx expo start
```
In the output, you'll find options to open the app in a
- [development build](https://docs.expo.dev/develop/development-builds/introduction/)
- [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/)
- [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/)
- [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo
You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).
## Get a fresh project
When you're ready, run:
```bash
npm run reset-project
```
This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing.
## Learn more
To learn more about developing your project with Expo, look at the following resources:
- [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides).
- [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
## Join the community
Join our community of developers creating universal apps.
- [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute.
- [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions.

41
app.json Normal file
View File

@ -0,0 +1,41 @@
{
"expo": {
"name": "translation-terrace",
"slug": "translation-terrace",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
"scheme": "myapp",
"userInterfaceStyle": "automatic",
"newArchEnabled": true,
"ios": {
"supportsTablet": true
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/images/adaptive-icon.png",
"backgroundColor": "#ffffff"
}
},
"web": {
"bundler": "metro",
"output": "static",
"favicon": "./assets/images/favicon.png"
},
"plugins": [
"expo-router",
[
"expo-splash-screen",
{
"image": "./assets/images/splash-icon.png",
"imageWidth": 200,
"resizeMode": "contain",
"backgroundColor": "#ffffff"
}
]
],
"experiments": {
"typedRoutes": true
}
}
}

45
app/(tabs)/_layout.tsx Normal file
View File

@ -0,0 +1,45 @@
import { Tabs } from 'expo-router';
import React from 'react';
import { Platform } from 'react-native';
import { HapticTab } from '@/components/HapticTab';
import { IconSymbol } from '@/components/ui/IconSymbol';
import TabBarBackground from '@/components/ui/TabBarBackground';
import { Colors } from '@/constants/Colors';
import { useColorScheme } from '@/hooks/useColorScheme';
export default function TabLayout() {
const colorScheme = useColorScheme();
return (
<Tabs
screenOptions={{
tabBarActiveTintColor: Colors[colorScheme ?? 'light'].tint,
headerShown: false,
tabBarButton: HapticTab,
tabBarBackground: TabBarBackground,
tabBarStyle: Platform.select({
ios: {
// Use a transparent background on iOS to show the blur effect
position: 'absolute',
},
default: {},
}),
}}>
<Tabs.Screen
name="index"
options={{
title: 'Home',
tabBarIcon: ({ color }) => <IconSymbol size={28} name="house.fill" color={color} />,
}}
/>
<Tabs.Screen
name="explore"
options={{
title: 'Explore',
tabBarIcon: ({ color }) => <IconSymbol size={28} name="paperplane.fill" color={color} />,
}}
/>
</Tabs>
);
}

109
app/(tabs)/explore.tsx Normal file
View File

@ -0,0 +1,109 @@
import { StyleSheet, Image, Platform } from 'react-native';
import { Collapsible } from '@/components/Collapsible';
import { ExternalLink } from '@/components/ExternalLink';
import ParallaxScrollView from '@/components/ParallaxScrollView';
import { ThemedText } from '@/components/ThemedText';
import { ThemedView } from '@/components/ThemedView';
import { IconSymbol } from '@/components/ui/IconSymbol';
export default function TabTwoScreen() {
return (
<ParallaxScrollView
headerBackgroundColor={{ light: '#D0D0D0', dark: '#353636' }}
headerImage={
<IconSymbol
size={310}
color="#808080"
name="chevron.left.forwardslash.chevron.right"
style={styles.headerImage}
/>
}>
<ThemedView style={styles.titleContainer}>
<ThemedText type="title">Explore</ThemedText>
</ThemedView>
<ThemedText>This app includes example code to help you get started.</ThemedText>
<Collapsible title="File-based routing">
<ThemedText>
This app has two screens:{' '}
<ThemedText type="defaultSemiBold">app/(tabs)/index.tsx</ThemedText> and{' '}
<ThemedText type="defaultSemiBold">app/(tabs)/explore.tsx</ThemedText>
</ThemedText>
<ThemedText>
The layout file in <ThemedText type="defaultSemiBold">app/(tabs)/_layout.tsx</ThemedText>{' '}
sets up the tab navigator.
</ThemedText>
<ExternalLink href="https://docs.expo.dev/router/introduction">
<ThemedText type="link">Learn more</ThemedText>
</ExternalLink>
</Collapsible>
<Collapsible title="Android, iOS, and web support">
<ThemedText>
You can open this project on Android, iOS, and the web. To open the web version, press{' '}
<ThemedText type="defaultSemiBold">w</ThemedText> in the terminal running this project.
</ThemedText>
</Collapsible>
<Collapsible title="Images">
<ThemedText>
For static images, you can use the <ThemedText type="defaultSemiBold">@2x</ThemedText> and{' '}
<ThemedText type="defaultSemiBold">@3x</ThemedText> suffixes to provide files for
different screen densities
</ThemedText>
<Image source={require('@/assets/images/react-logo.png')} style={{ alignSelf: 'center' }} />
<ExternalLink href="https://reactnative.dev/docs/images">
<ThemedText type="link">Learn more</ThemedText>
</ExternalLink>
</Collapsible>
<Collapsible title="Custom fonts">
<ThemedText>
Open <ThemedText type="defaultSemiBold">app/_layout.tsx</ThemedText> to see how to load{' '}
<ThemedText style={{ fontFamily: 'SpaceMono' }}>
custom fonts such as this one.
</ThemedText>
</ThemedText>
<ExternalLink href="https://docs.expo.dev/versions/latest/sdk/font">
<ThemedText type="link">Learn more</ThemedText>
</ExternalLink>
</Collapsible>
<Collapsible title="Light and dark mode components">
<ThemedText>
This template has light and dark mode support. The{' '}
<ThemedText type="defaultSemiBold">useColorScheme()</ThemedText> hook lets you inspect
what the user's current color scheme is, and so you can adjust UI colors accordingly.
</ThemedText>
<ExternalLink href="https://docs.expo.dev/develop/user-interface/color-themes/">
<ThemedText type="link">Learn more</ThemedText>
</ExternalLink>
</Collapsible>
<Collapsible title="Animations">
<ThemedText>
This template includes an example of an animated component. The{' '}
<ThemedText type="defaultSemiBold">components/HelloWave.tsx</ThemedText> component uses
the powerful <ThemedText type="defaultSemiBold">react-native-reanimated</ThemedText>{' '}
library to create a waving hand animation.
</ThemedText>
{Platform.select({
ios: (
<ThemedText>
The <ThemedText type="defaultSemiBold">components/ParallaxScrollView.tsx</ThemedText>{' '}
component provides a parallax effect for the header image.
</ThemedText>
),
})}
</Collapsible>
</ParallaxScrollView>
);
}
const styles = StyleSheet.create({
headerImage: {
color: '#808080',
bottom: -90,
left: -35,
position: 'absolute',
},
titleContainer: {
flexDirection: 'row',
gap: 8,
},
});

74
app/(tabs)/index.tsx Normal file
View File

@ -0,0 +1,74 @@
import { Image, StyleSheet, Platform } from 'react-native';
import { HelloWave } from '@/components/HelloWave';
import ParallaxScrollView from '@/components/ParallaxScrollView';
import { ThemedText } from '@/components/ThemedText';
import { ThemedView } from '@/components/ThemedView';
export default function HomeScreen() {
return (
<ParallaxScrollView
headerBackgroundColor={{ light: '#A1CEDC', dark: '#1D3D47' }}
headerImage={
<Image
source={require('@/assets/images/partial-react-logo.png')}
style={styles.reactLogo}
/>
}>
<ThemedView style={styles.titleContainer}>
<ThemedText type="title">Welcome!</ThemedText>
<HelloWave />
</ThemedView>
<ThemedView style={styles.stepContainer}>
<ThemedText type="subtitle">Step 1: Try it</ThemedText>
<ThemedText>
Edit <ThemedText type="defaultSemiBold">app/(tabs)/index.tsx</ThemedText> to see changes.
Press{' '}
<ThemedText type="defaultSemiBold">
{Platform.select({
ios: 'cmd + d',
android: 'cmd + m',
web: 'F12'
})}
</ThemedText>{' '}
to open developer tools.
</ThemedText>
</ThemedView>
<ThemedView style={styles.stepContainer}>
<ThemedText type="subtitle">Step 2: Explore</ThemedText>
<ThemedText>
Tap the Explore tab to learn more about what's included in this starter app.
</ThemedText>
</ThemedView>
<ThemedView style={styles.stepContainer}>
<ThemedText type="subtitle">Step 3: Get a fresh start</ThemedText>
<ThemedText>
When you're ready, run{' '}
<ThemedText type="defaultSemiBold">npm run reset-project</ThemedText> to get a fresh{' '}
<ThemedText type="defaultSemiBold">app</ThemedText> directory. This will move the current{' '}
<ThemedText type="defaultSemiBold">app</ThemedText> to{' '}
<ThemedText type="defaultSemiBold">app-example</ThemedText>.
</ThemedText>
</ThemedView>
</ParallaxScrollView>
);
}
const styles = StyleSheet.create({
titleContainer: {
flexDirection: 'row',
alignItems: 'center',
gap: 8,
},
stepContainer: {
gap: 8,
marginBottom: 8,
},
reactLogo: {
height: 178,
width: 290,
bottom: 0,
left: 0,
position: 'absolute',
},
});

32
app/+not-found.tsx Normal file
View File

@ -0,0 +1,32 @@
import { Link, Stack } from 'expo-router';
import { StyleSheet } from 'react-native';
import { ThemedText } from '@/components/ThemedText';
import { ThemedView } from '@/components/ThemedView';
export default function NotFoundScreen() {
return (
<>
<Stack.Screen options={{ title: 'Oops!' }} />
<ThemedView style={styles.container}>
<ThemedText type="title">This screen doesn't exist.</ThemedText>
<Link href="/" style={styles.link}>
<ThemedText type="link">Go to home screen!</ThemedText>
</Link>
</ThemedView>
</>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
padding: 20,
},
link: {
marginTop: 15,
paddingVertical: 15,
},
});

39
app/_layout.tsx Normal file
View File

@ -0,0 +1,39 @@
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
import { useFonts } from 'expo-font';
import { Stack } from 'expo-router';
import * as SplashScreen from 'expo-splash-screen';
import { StatusBar } from 'expo-status-bar';
import { useEffect } from 'react';
import 'react-native-reanimated';
import { useColorScheme } from '@/hooks/useColorScheme';
// Prevent the splash screen from auto-hiding before asset loading is complete.
SplashScreen.preventAutoHideAsync();
export default function RootLayout() {
const colorScheme = useColorScheme();
const [loaded] = useFonts({
SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
});
useEffect(() => {
if (loaded) {
SplashScreen.hideAsync();
}
}, [loaded]);
if (!loaded) {
return null;
}
return (
<ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
<Stack>
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
<Stack.Screen name="+not-found" />
</Stack>
<StatusBar style="auto" />
</ThemeProvider>
);
}

48
app/i18n/api.ts Normal file
View File

@ -0,0 +1,48 @@
import { language_t } from "./lang";
import { Cache } from "react-native-cache";
import AsyncStorage from '@react-native-async-storage/async-storage';
import { LIBRETRANSLATE_BASE_URL } from "@/constants/api";
const cache = new Cache({
namespace: "translation_terrace",
policy: {
maxEntries: 50000, // if unspecified, it can have unlimited entries
stdTTL: 0 // the standard ttl as number in seconds, default: 0 (unlimited)
},
backend: AsyncStorage
});
export class Translator {
constructor(public source : language_t, public target : language_t) {
}
async translate(text : string) {
const url = LIBRETRANSLATE_BASE_URL + `/translate`;
const res = await fetch(url, {
method: "POST",
body: JSON.stringify({
q: text,
source: this.source,
target: this.target,
format: "text",
alternatives: 3,
api_key: ""
}),
headers: { "Content-Type": "application/json" }
});
const data = await res.json();
return data.translatedText
}
}
export class CachedTranslator extends Translator {
async translate (text : string) {
const key1 = `${this.source}::${this.target}::${text}`
const tr1 = await cache.get(key1);
if (tr1) return tr1;
const tr2 = await super.translate(text);
const key2 = `${this.source}::${this.target}::${text}`
await cache.set(key2, tr2);
}
}

9
app/i18n/lang.ts Normal file
View File

@ -0,0 +1,9 @@
export const LANGUAGES = [
"en",
"es",
"fr",
"uk",
"rs",
]
export type language_t = typeof LANGUAGES[number];

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
assets/images/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
assets/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,10 @@
import * as React from 'react';
import renderer from 'react-test-renderer';
import { ThemedText } from '../ThemedText';
it(`renders correctly`, () => {
const tree = renderer.create(<ThemedText>Snapshot test!</ThemedText>).toJSON();
expect(tree).toMatchSnapshot();
});

View File

@ -0,0 +1,24 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`renders correctly 1`] = `
<Text
style={
[
{
"color": "#11181C",
},
{
"fontSize": 16,
"lineHeight": 24,
},
undefined,
undefined,
undefined,
undefined,
undefined,
]
}
>
Snapshot test!
</Text>
`;

View File

@ -0,0 +1,21 @@
import { CachedTranslator } from "@/app/i18n/api"
import { language_t } from "@/app/i18n/lang"
type ISpeakButtonProps = {
country: string,
language: string,
}
function iSpeak(language : string) {
return `I speak ${language}.`
}
async function iSpeakTr(targetLang : string, sourceLang = "en") {
const sourceStr = iSpeak(targetLang)
const translator = new CachedTranslator(sourceLang, targetLang);
return await translator.translate(sourceStr)
}
const ISpeakButton = (props : ISpeakButtonProps) => {
}

26
constants/Colors.ts Normal file
View File

@ -0,0 +1,26 @@
/**
* Below are the colors that are used in the app. The colors are defined in the light and dark mode.
* There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc.
*/
const tintColorLight = '#0a7ea4';
const tintColorDark = '#fff';
export const Colors = {
light: {
text: '#11181C',
background: '#fff',
tint: tintColorLight,
icon: '#687076',
tabIconDefault: '#687076',
tabIconSelected: tintColorLight,
},
dark: {
text: '#ECEDEE',
background: '#151718',
tint: tintColorDark,
icon: '#9BA1A6',
tabIconDefault: '#9BA1A6',
tabIconSelected: tintColorDark,
},
};

1
constants/api.ts Normal file
View File

@ -0,0 +1 @@
export const LIBRETRANSLATE_BASE_URL = process.env.LIBRETRANSALTE_BASE_URL || "http://localhost:5000"

1
hooks/useColorScheme.ts Normal file
View File

@ -0,0 +1 @@
export { useColorScheme } from 'react-native';

View File

@ -0,0 +1,21 @@
import { useEffect, useState } from 'react';
import { useColorScheme as useRNColorScheme } from 'react-native';
/**
* To support static rendering, this value needs to be re-calculated on the client side for web
*/
export function useColorScheme() {
const [hasHydrated, setHasHydrated] = useState(false);
useEffect(() => {
setHasHydrated(true);
}, []);
const colorScheme = useRNColorScheme();
if (hasHydrated) {
return colorScheme;
}
return 'light';
}

21
hooks/useThemeColor.ts Normal file
View File

@ -0,0 +1,21 @@
/**
* Learn more about light and dark modes:
* https://docs.expo.dev/guides/color-schemes/
*/
import { Colors } from '@/constants/Colors';
import { useColorScheme } from '@/hooks/useColorScheme';
export function useThemeColor(
props: { light?: string; dark?: string },
colorName: keyof typeof Colors.light & keyof typeof Colors.dark
) {
const theme = useColorScheme() ?? 'light';
const colorFromProps = props[theme];
if (colorFromProps) {
return colorFromProps;
} else {
return Colors[theme][colorName];
}
}

67
package.json Normal file
View File

@ -0,0 +1,67 @@
{
"name": "translation-terrace",
"main": "expo-router/entry",
"version": "1.0.0",
"scripts": {
"start": "expo start",
"reset-project": "node ./scripts/reset-project.js",
"android": "expo start --android --offline",
"ios": "expo start --ios",
"web": "expo start --web --offline",
"test": "jest --watchAll",
"lint": "expo lint"
},
"jest": {
"preset": "jest-expo"
},
"dependencies": {
"@babel/runtime": "^7.26.0",
"@expo/vector-icons": "^14.0.2",
"@react-native-async-storage/async-storage": "^2.1.0",
"@react-navigation/bottom-tabs": "^7.2.0",
"@react-navigation/elements": "^2.2.5",
"@react-navigation/native": "^7.0.14",
"@react-navigation/native-stack": "^7.2.0",
"@types/jsdom": "^21.1.7",
"cheerio": "^1.0.0",
"expo": "~52.0.27",
"expo-blur": "~14.0.2",
"expo-constants": "~17.0.4",
"expo-font": "~13.0.3",
"expo-haptics": "~14.0.1",
"expo-linking": "~7.0.4",
"expo-router": "~4.0.17",
"expo-splash-screen": "~0.29.21",
"expo-status-bar": "~2.0.1",
"expo-symbols": "~0.2.1",
"expo-system-ui": "~4.0.7",
"expo-web-browser": "~14.0.2",
"interopRequireDefault": "link:@babel/runtime/helpers/interopRequireDefault",
"jquery": "^3.7.1",
"jsdom": "^26.0.0",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-native": "0.76.6",
"react-native-cache": "^2.0.3",
"react-native-gesture-handler": "~2.20.2",
"react-native-reanimated": "~3.16.1",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "~4.4.0",
"react-native-web": "~0.19.13",
"react-native-webview": "13.12.5",
"ts-node": "^10.9.2"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@types/cheerio": "^0.22.35",
"@types/jest": "^29.5.12",
"@types/jquery": "^3.5.32",
"@types/react": "~18.3.12",
"@types/react-test-renderer": "^18.3.0",
"jest": "^29.2.1",
"jest-expo": "~52.0.3",
"react-test-renderer": "18.3.1",
"typescript": "^5.3.3"
},
"private": true
}

10619
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

32
scripts/captureTheFlag.ts Normal file
View File

@ -0,0 +1,32 @@
import {readFileSync} from "fs"
import {resolve, dirname} from "path"
import {load} from "cheerio"
const FLAG_URL = "https://www.flagpictures.com/countries/languages/";
const FLAG_FILE = resolve( __dirname, "./flagref.html" )
type locale = {
flag: string,
language: {
name: string,
abbreviation : string,
}
}
async function capture () {
// const flagHtml = await fetch(FLAG_URL, {
// method: "GET",
// headers: { "Content-Type": "text/html", 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
// }
// });
const flagHtml = readFileSync(FLAG_FILE, {encoding: "utf-8"});
const $ = load(flagHtml);
const countryLangFlags = $("table").find("tr").map(e => {
const tds = $(e).find("td");
console.log(tds.length)
})
}
(async function () {
await capture()
})();

4463
scripts/flagref.html Normal file
View File

@ -0,0 +1,4463 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>National Languages of the Countries - Updated 2025</title>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=5" />
<meta name="description" content="Know which country/territory speaks what language and how many languages are spoken in each country and territory" />
<meta property="og:locale" content="en_AE" />
<meta property="og:type" content="website" />
<meta property="og:title" content="National Languages of the Countries - Updated 2025" />
<meta property="og:description" content="Know which country/territory speaks what language and how many languages are spoken in each country and territory" />
<meta property="og:url" content="https://www.flagpictures.com/countries/languages" />
<meta property="og:site_name" content="FLAG PICTURES" />
<meta name="simpledcver" content="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkb21haW4iOiJmbGFncGljdHVyZXMuY29tIiwiZXhwIjoxNTk3NTM2MDAwfQ.Z2NYBFWuP44ieHvrviym0BNjJF3V7_wlnauVM56SyYE">
<meta name="twitter:card" content="summary" />
<meta name="twitter:image" content="https://www.flagpictures.com/static/images/flag-pictures-logo.png" />
<meta name="twitter:title" content="National Languages of the Countries - Updated 2025" />
<meta name="twitter:description" content="Know which country/territory speaks what language and how many languages are spoken in each country and territory" />
<link rel="canonical" href="https://www.flagpictures.com/countries/languages/" />
<link rel="icon" type="image/png" href="/static/images/favicon.png" />
<link rel="preload" href="/static/css/style.min.css?v=1.3" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/static/css/style.min.css?v=1.3"></noscript>
</head>
<body class="">
<!-- Body Inner -->
<div class="body-inner">
<!-- Header -->
<header id="header">
<div class="header-inner">
<div class="container">
<!--Logo-->
<div id="logo">
<a title="FlagPictures" href="/">
<span><img width="200" height="98" alt="All Countries National Flag Images" src="/static/images/flag-pictures-logo.png" /></span>
</a>
</div>
<div id="mainMenu">
<div class="container">
<nav>
<ul>
<li><a title="All country flags" href="/country-flags/">Country Flags</a></li>
<li><a title="Capital cities of all countries in the world" href="/world-capital-cities/">World Capital Cities</a></li>
</ul>
</nav>
</div>
</div>
<!--end: Navigation-->
</div>
</div>
<div class="gsce-container">
<div class="gcse-search"></div>
</div>
</header>
<!-- end: Header -->
<!-- Page title -->
<section id="page-title">
<div class="container">
<div class="page-title">
<h1>
National Languages of the Countries
</h1>
</div>
<div class="breadcrumb">
<ul itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem">
<a itemprop="item" href="/"><span itemprop="name">Home</span></a>
<meta itemprop="position" content="1" />
</li>
<li itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem">
<a itemprop="item" href="/country-flags/"><span itemprop="name">Countries</span></a>
<meta itemprop="position" content="2" />
</li>
<li itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem" class="active">
<span itemprop="name">Languages</span>
<meta itemprop="position" content="3" />
</li>
</ul>
</div>
</div>
</section>
<section>
<div class="container">
<div class="countries cities">
<div class="row country-nationals">
<table class="table">
<thead class="thead-dark">
<tr style="font-size: 16px; background:#EEE">
<th scope="col">Countries Name</th>
<th scope="col">Countries National Languages</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<a title="Afghanistan" href="/country-flags/afghanistan/">
<img src="/static/images/flags/af.png" width="50" /> Afghanistan
</a>
</td>
<td>
Pushto; Pashto (ps)<br />
Turkmen (tk)<br />
Uzbek (uz)<br />
</td>
</tr>
<tr>
<td>
<a title="Albania" href="/country-flags/albania/">
<img src="/static/images/flags/al.png" width="50" /> Albania
</a>
</td>
<td>
Albanian (sq)<br />
</td>
</tr>
<tr>
<td>
<a title="Algeria" href="/country-flags/algeria/">
<img src="/static/images/flags/dz.png" width="50" /> Algeria
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="American Samoa" href="/country-flags/american-samoa/">
<img src="/static/images/flags/as.png" width="50" /> American Samoa
</a>
</td>
<td>
English (en)<br />
Samoan (sm)<br />
</td>
</tr>
<tr>
<td>
<a title="Andorra" href="/country-flags/andorra/">
<img src="/static/images/flags/ad.png" width="50" /> Andorra
</a>
</td>
<td>
Catalan (cat)<br />
French (fr)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Angola" href="/country-flags/angola/">
<img src="/static/images/flags/ao.png" width="50" /> Angola
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Anguilla" href="/country-flags/anguilla/">
<img src="/static/images/flags/ai.png" width="50" /> Anguilla
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Antigua and Barbuda" href="/country-flags/antigua-and-barbuda/">
<img src="/static/images/flags/ag.png" width="50" /> Antigua And Barbuda
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Argentina" href="/country-flags/argentina/">
<img src="/static/images/flags/ar.png" width="50" /> Argentina
</a>
</td>
<td>
Guarani (gn)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Armenia" href="/country-flags/armenia/">
<img src="/static/images/flags/am.png" width="50" /> Armenia
</a>
</td>
<td>
Armenian (hy)<br />
Russian (ru)<br />
</td>
</tr>
<tr>
<td>
<a title="Aruba" href="/country-flags/aruba/">
<img src="/static/images/flags/aw.png" width="50" /> Aruba
</a>
</td>
<td>
Dutch (nl)<br />
Papiamentu (pap)<br />
</td>
</tr>
<tr>
<td>
<a title="Australia" href="/country-flags/australia/">
<img src="/static/images/flags/au.png" width="50" /> Australia
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Austria" href="/country-flags/austria/">
<img src="/static/images/flags/at.png" width="50" /> Austria
</a>
</td>
<td>
German (de)<br />
</td>
</tr>
<tr>
<td>
<a title="Azerbaijan" href="/country-flags/azerbaijan/">
<img src="/static/images/flags/az.png" width="50" /> Azerbaijan
</a>
</td>
<td>
Armenian (hy)<br />
Azerbaijani (az)<br />
</td>
</tr>
<tr>
<td>
<a title="Bahamas" href="/country-flags/bahamas/">
<img src="/static/images/flags/bs.png" width="50" /> Bahamas
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Bahrain" href="/country-flags/bahrain/">
<img src="/static/images/flags/bh.png" width="50" /> Bahrain
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Bangladesh" href="/country-flags/bangladesh/">
<img src="/static/images/flags/bd.png" width="50" /> Bangladesh
</a>
</td>
<td>
Bengali (bn)<br />
</td>
</tr>
<tr>
<td>
<a title="Barbados" href="/country-flags/barbados/">
<img src="/static/images/flags/bb.png" width="50" /> Barbados
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Belarus" href="/country-flags/belarus/">
<img src="/static/images/flags/by.png" width="50" /> Belarus
</a>
</td>
<td>
Belarusian (be)<br />
Russian (ru)<br />
</td>
</tr>
<tr>
<td>
<a title="Belgium" href="/country-flags/belgium/">
<img src="/static/images/flags/be.png" width="50" /> Belgium
</a>
</td>
<td>
Dutch (nl)<br />
French (fr)<br />
German (de)<br />
</td>
</tr>
<tr>
<td>
<a title="Belize" href="/country-flags/belize/">
<img src="/static/images/flags/bz.png" width="50" /> Belize
</a>
</td>
<td>
English (en)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Benin" href="/country-flags/benin/">
<img src="/static/images/flags/bj.png" width="50" /> Benin
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Bermuda" href="/country-flags/bermuda/">
<img src="/static/images/flags/bm.png" width="50" /> Bermuda
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Bhutan" href="/country-flags/bhutan/">
<img src="/static/images/flags/bt.png" width="50" /> Bhutan
</a>
</td>
<td>
Dzongkha (dz)<br />
</td>
</tr>
<tr>
<td>
<a title="Bolivia" href="/country-flags/bolivia/">
<img src="/static/images/flags/bo.png" width="50" /> Bolivia
</a>
</td>
<td>
Aymara (ay)<br />
Quechua (qu)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Bosnia and Herzegovina" href="/country-flags/bosnia-and-herzegovina/">
<img src="/static/images/flags/ba.png" width="50" /> Bosnia And Herzegovina
</a>
</td>
<td>
Bosnian (bs)<br />
Croatian (hr)<br />
Serbian (sr)<br />
</td>
</tr>
<tr>
<td>
<a title="Botswana" href="/country-flags/botswana/">
<img src="/static/images/flags/bw.png" width="50" /> Botswana
</a>
</td>
<td>
English (en)<br />
Tswana (tn)<br />
</td>
</tr>
<tr>
<td>
<a title="Bouvet Island" href="/country-flags/bouvet-island/">
<img src="/static/images/flags/bv.png" width="50" /> Bouvet Island
</a>
</td>
<td>
Norwegian (no)<br />
Sami languages (None)<br />
</td>
</tr>
<tr>
<td>
<a title="Brazil" href="/country-flags/brazil/">
<img src="/static/images/flags/br.png" width="50" /> Brazil
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="British Indian Ocean Territory" href="/country-flags/british-indian-ocean-territory/">
<img src="/static/images/flags/io.png" width="50" /> British Indian Ocean Territory
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Brunei Darussalam" href="/country-flags/brunei-darussalam/">
<img src="/static/images/flags/bn.png" width="50" /> Brunei Darussalam
</a>
</td>
<td>
Malay (ms)<br />
</td>
</tr>
<tr>
<td>
<a title="Bulgaria" href="/country-flags/bulgaria/">
<img src="/static/images/flags/bg.png" width="50" /> Bulgaria
</a>
</td>
<td>
Bulgarian (bg)<br />
</td>
</tr>
<tr>
<td>
<a title="Burkina Faso" href="/country-flags/burkina-faso/">
<img src="/static/images/flags/bf.png" width="50" /> Burkina Faso
</a>
</td>
<td>
French (fr)<br />
Fulah (ff)<br />
</td>
</tr>
<tr>
<td>
<a title="Burundi" href="/country-flags/burundi/">
<img src="/static/images/flags/bi.png" width="50" /> Burundi
</a>
</td>
<td>
French (fr)<br />
Rundi (rn)<br />
</td>
</tr>
<tr>
<td>
<a title="Cabo Verde" href="/country-flags/cabo-verde/">
<img src="/static/images/flags/cv.png" width="50" /> Cabo Verde
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Cambodia" href="/country-flags/cambodia/">
<img src="/static/images/flags/kh.png" width="50" /> Cambodia
</a>
</td>
<td>
Central Khmer (km)<br />
</td>
</tr>
<tr>
<td>
<a title="Cameroon" href="/country-flags/cameroon/">
<img src="/static/images/flags/cm.png" width="50" /> Cameroon
</a>
</td>
<td>
English (en)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Canada" href="/country-flags/canada/">
<img src="/static/images/flags/ca.png" width="50" /> Canada
</a>
</td>
<td>
English (en)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Cayman" href="/country-flags/cayman/">
<img src="/static/images/flags/ky.png" width="50" /> Cayman
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Central African Republic" href="/country-flags/central-african-republic/">
<img src="/static/images/flags/cf.png" width="50" /> Central African Republic
</a>
</td>
<td>
French (fr)<br />
Sango (sg)<br />
</td>
</tr>
<tr>
<td>
<a title="Chad" href="/country-flags/chad/">
<img src="/static/images/flags/td.png" width="50" /> Chad
</a>
</td>
<td>
Arabic (ar)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Chile" href="/country-flags/chile/">
<img src="/static/images/flags/cl.png" width="50" /> Chile
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="China" href="/country-flags/china/">
<img src="/static/images/flags/cn.png" width="50" /> China
</a>
</td>
<td>
Chinese (zh)<br />
</td>
</tr>
<tr>
<td>
<a title="Christmas Island" href="/country-flags/christmas-island/">
<img src="/static/images/flags/cx.png" width="50" /> Christmas Island
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Cocos Islands" href="/country-flags/cocos-islands/">
<img src="/static/images/flags/cc.png" width="50" /> Cocos Islands
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Colombia" href="/country-flags/colombia/">
<img src="/static/images/flags/co.png" width="50" /> Colombia
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Comoros" href="/country-flags/comoros/">
<img src="/static/images/flags/km.png" width="50" /> Comoros
</a>
</td>
<td>
Arabic (ar)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Cook Islands" href="/country-flags/cook-islands/">
<img src="/static/images/flags/ck.png" width="50" /> Cook Islands
</a>
</td>
<td>
English (en)<br />
Rarotongan; Cook Islands Maori (rar)<br />
</td>
</tr>
<tr>
<td>
<a title="Costa Rica" href="/country-flags/costa-rica/">
<img src="/static/images/flags/cr.png" width="50" /> Costa Rica
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Croatia" href="/country-flags/croatia/">
<img src="/static/images/flags/hr.png" width="50" /> Croatia
</a>
</td>
<td>
Croatian (hr)<br />
</td>
</tr>
<tr>
<td>
<a title="Cuba" href="/country-flags/cuba/">
<img src="/static/images/flags/cu.png" width="50" /> Cuba
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Curaçao" href="/country-flags/curacao/">
<img src="/static/images/flags/cw.png" width="50" /> Curaçao
</a>
</td>
<td>
Dutch (nl)<br />
English (en)<br />
Papiamentu (pap)<br />
</td>
</tr>
<tr>
<td>
<a title="Cyprus" href="/country-flags/cyprus/">
<img src="/static/images/flags/cy.png" width="50" /> Cyprus
</a>
</td>
<td>
Armenian (hy)<br />
Greek (el)<br />
Turkish (tr)<br />
</td>
</tr>
<tr>
<td>
<a title="Czechia" href="/country-flags/czechia/">
<img src="/static/images/flags/cz.png" width="50" /> Czechia
</a>
</td>
<td>
Czech (cs)<br />
Slovak (sk)<br />
</td>
</tr>
<tr>
<td>
<a title="Côte d&#x27;Ivoire" href="/country-flags/cote-divoire/">
<img src="/static/images/flags/ci.png" width="50" /> Côte D&#x27;Ivoire
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Democratic Republic of the Congo" href="/country-flags/democratic-republic-of-the-congo/">
<img src="/static/images/flags/cd.png" width="50" /> Democratic Republic Of The Congo
</a>
</td>
<td>
French (fr)<br />
Kongo (kg)<br />
Lingala (ln)<br />
Luba-Katanga (lu)<br />
Swahili (sw)<br />
</td>
</tr>
<tr>
<td>
<a title="Denmark" href="/country-flags/denmark/">
<img src="/static/images/flags/dk.png" width="50" /> Denmark
</a>
</td>
<td>
Danish (da)<br />
</td>
</tr>
<tr>
<td>
<a title="Djibouti" href="/country-flags/djibouti/">
<img src="/static/images/flags/dj.png" width="50" /> Djibouti
</a>
</td>
<td>
Arabic (ar)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Dominica" href="/country-flags/dominica/">
<img src="/static/images/flags/dm.png" width="50" /> Dominica
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Dominican Republic" href="/country-flags/dominican-republic/">
<img src="/static/images/flags/do.png" width="50" /> Dominican Republic
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Ecuador" href="/country-flags/ecuador/">
<img src="/static/images/flags/ec.png" width="50" /> Ecuador
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Egypt" href="/country-flags/egypt/">
<img src="/static/images/flags/eg.png" width="50" /> Egypt
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="El Salvador" href="/country-flags/el-salvador/">
<img src="/static/images/flags/sv.png" width="50" /> El Salvador
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Equatorial Guinea" href="/country-flags/equatorial-guinea/">
<img src="/static/images/flags/gq.png" width="50" /> Equatorial Guinea
</a>
</td>
<td>
French (fr)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Eritrea" href="/country-flags/eritrea/">
<img src="/static/images/flags/er.png" width="50" /> Eritrea
</a>
</td>
<td>
Arabic (ar)<br />
English (en)<br />
Tigrinya (ti)<br />
</td>
</tr>
<tr>
<td>
<a title="Estonia" href="/country-flags/estonia/">
<img src="/static/images/flags/ee.png" width="50" /> Estonia
</a>
</td>
<td>
Estonian (et)<br />
</td>
</tr>
<tr>
<td>
<a title="Eswatini" href="/country-flags/eswatini/">
<img src="/static/images/flags/sz.png" width="50" /> Eswatini
</a>
</td>
<td>
English (en)<br />
Swati (ss)<br />
</td>
</tr>
<tr>
<td>
<a title="Ethiopia" href="/country-flags/ethiopia/">
<img src="/static/images/flags/et.png" width="50" /> Ethiopia
</a>
</td>
<td>
Amharic (am)<br />
</td>
</tr>
<tr>
<td>
<a title="Falkland Islands" href="/country-flags/falkland-islands/">
<img src="/static/images/flags/fk.png" width="50" /> Falkland Islands
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Faroe Islands" href="/country-flags/faroe-islands/">
<img src="/static/images/flags/fo.png" width="50" /> Faroe Islands
</a>
</td>
<td>
Faroese (fo)<br />
</td>
</tr>
<tr>
<td>
<a title="Fiji" href="/country-flags/fiji/">
<img src="/static/images/flags/fj.png" width="50" /> Fiji
</a>
</td>
<td>
English (en)<br />
Fijian (fj)<br />
Hindi (hi)<br />
Urdu (ur)<br />
</td>
</tr>
<tr>
<td>
<a title="Finland" href="/country-flags/finland/">
<img src="/static/images/flags/fi.png" width="50" /> Finland
</a>
</td>
<td>
Finnish (fi)<br />
Swedish (sv)<br />
</td>
</tr>
<tr>
<td>
<a title="France" href="/country-flags/france/">
<img src="/static/images/flags/fr.png" width="50" /> France
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="French Guiana" href="/country-flags/french-guiana/">
<img src="/static/images/flags/gf.png" width="50" /> French Guiana
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="French Polynesia" href="/country-flags/french-polynesia/">
<img src="/static/images/flags/pf.png" width="50" /> French Polynesia
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="French Southern Territories" href="/country-flags/french-southern-territories/">
<img src="/static/images/flags/tf.png" width="50" /> French Southern Territories
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Gabon" href="/country-flags/gabon/">
<img src="/static/images/flags/ga.png" width="50" /> Gabon
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Gambia" href="/country-flags/gambia/">
<img src="/static/images/flags/gm.png" width="50" /> Gambia
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Georgia" href="/country-flags/georgia/">
<img src="/static/images/flags/ge.png" width="50" /> Georgia
</a>
</td>
<td>
Georgian (ka)<br />
</td>
</tr>
<tr>
<td>
<a title="Germany" href="/country-flags/germany/">
<img src="/static/images/flags/de.png" width="50" /> Germany
</a>
</td>
<td>
German (de)<br />
</td>
</tr>
<tr>
<td>
<a title="Ghana" href="/country-flags/ghana/">
<img src="/static/images/flags/gh.png" width="50" /> Ghana
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Gibraltar" href="/country-flags/gibraltar/">
<img src="/static/images/flags/gi.png" width="50" /> Gibraltar
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Greece" href="/country-flags/greece/">
<img src="/static/images/flags/gr.png" width="50" /> Greece
</a>
</td>
<td>
Greek (el)<br />
</td>
</tr>
<tr>
<td>
<a title="Greenland" href="/country-flags/greenland/">
<img src="/static/images/flags/gl.png" width="50" /> Greenland
</a>
</td>
<td>
Kalaallisut; Greenlandic (kl)<br />
</td>
</tr>
<tr>
<td>
<a title="Grenada" href="/country-flags/grenada/">
<img src="/static/images/flags/gd.png" width="50" /> Grenada
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Guadeloupe" href="/country-flags/guadeloupe/">
<img src="/static/images/flags/gp.png" width="50" /> Guadeloupe
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Guam" href="/country-flags/guam/">
<img src="/static/images/flags/gu.png" width="50" /> Guam
</a>
</td>
<td>
Chamorro (ch)<br />
English (en)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Guatemala" href="/country-flags/guatemala/">
<img src="/static/images/flags/gt.png" width="50" /> Guatemala
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Guernsey" href="/country-flags/guernsey/">
<img src="/static/images/flags/gg.png" width="50" /> Guernsey
</a>
</td>
<td>
English (en)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Guinea" href="/country-flags/guinea/">
<img src="/static/images/flags/gn.png" width="50" /> Guinea
</a>
</td>
<td>
French (fr)<br />
Fulah (ff)<br />
</td>
</tr>
<tr>
<td>
<a title="Guinea-Bissau" href="/country-flags/guinea-bissau/">
<img src="/static/images/flags/gw.png" width="50" /> Guinea-Bissau
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Guyana" href="/country-flags/guyana/">
<img src="/static/images/flags/gy.png" width="50" /> Guyana
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="HIMI" href="/country-flags/himi/">
<img src="/static/images/flags/hm.png" width="50" /> Himi
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Haiti" href="/country-flags/haiti/">
<img src="/static/images/flags/ht.png" width="50" /> Haiti
</a>
</td>
<td>
French (fr)<br />
Haitian Creole (ht)<br />
</td>
</tr>
<tr>
<td>
<a title="Holy See (Vatican City State)" href="/country-flags/holy-see-vatican-city-state/">
<img src="/static/images/flags/va.png" width="50" /> Holy See (Vatican City State)
</a>
</td>
<td>
Italian (it)<br />
Latin (la)<br />
</td>
</tr>
<tr>
<td>
<a title="Honduras" href="/country-flags/honduras/">
<img src="/static/images/flags/hn.png" width="50" /> Honduras
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Hong Kong" href="/country-flags/hong-kong/">
<img src="/static/images/flags/hk.png" width="50" /> Hong Kong
</a>
</td>
<td>
Chinese (zh)<br />
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Hungary" href="/country-flags/hungary/">
<img src="/static/images/flags/hu.png" width="50" /> Hungary
</a>
</td>
<td>
Hungarian (hu)<br />
</td>
</tr>
<tr>
<td>
<a title="Iceland" href="/country-flags/iceland/">
<img src="/static/images/flags/is.png" width="50" /> Iceland
</a>
</td>
<td>
Icelandic (is)<br />
</td>
</tr>
<tr>
<td>
<a title="India" href="/country-flags/india/">
<img src="/static/images/flags/in.png" width="50" /> India
</a>
</td>
<td>
English (en)<br />
Hindi (hi)<br />
</td>
</tr>
<tr>
<td>
<a title="Indonesia" href="/country-flags/indonesia/">
<img src="/static/images/flags/id.png" width="50" /> Indonesia
</a>
</td>
<td>
Indonesian (id)<br />
</td>
</tr>
<tr>
<td>
<a title="Iran" href="/country-flags/iran/">
<img src="/static/images/flags/ir.png" width="50" /> Iran
</a>
</td>
<td>
Persian (fa)<br />
</td>
</tr>
<tr>
<td>
<a title="Iraq" href="/country-flags/iraq/">
<img src="/static/images/flags/iq.png" width="50" /> Iraq
</a>
</td>
<td>
Arabic (ar)<br />
Kurdish (ku)<br />
</td>
</tr>
<tr>
<td>
<a title="Ireland" href="/country-flags/ireland/">
<img src="/static/images/flags/ie.png" width="50" /> Ireland
</a>
</td>
<td>
English (en)<br />
Irish (ga)<br />
</td>
</tr>
<tr>
<td>
<a title="Isle of Man" href="/country-flags/isle-of-man/">
<img src="/static/images/flags/im.png" width="50" /> Isle Of Man
</a>
</td>
<td>
English (en)<br />
Manx (gv)<br />
</td>
</tr>
<tr>
<td>
<a title="Israel" href="/country-flags/israel/">
<img src="/static/images/flags/il.png" width="50" /> Israel
</a>
</td>
<td>
Arabic (ar)<br />
Hebrew (he)<br />
</td>
</tr>
<tr>
<td>
<a title="Italy" href="/country-flags/italy/">
<img src="/static/images/flags/it.png" width="50" /> Italy
</a>
</td>
<td>
Italian (it)<br />
</td>
</tr>
<tr>
<td>
<a title="Jamaica" href="/country-flags/jamaica/">
<img src="/static/images/flags/jm.png" width="50" /> Jamaica
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Japan" href="/country-flags/japan/">
<img src="/static/images/flags/jp.png" width="50" /> Japan
</a>
</td>
<td>
Japanese (ja)<br />
</td>
</tr>
<tr>
<td>
<a title="Jersey" href="/country-flags/jersey/">
<img src="/static/images/flags/je.png" width="50" /> Jersey
</a>
</td>
<td>
English (en)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Jordan" href="/country-flags/jordan/">
<img src="/static/images/flags/jo.png" width="50" /> Jordan
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Kazakhstan" href="/country-flags/kazakhstan/">
<img src="/static/images/flags/kz.png" width="50" /> Kazakhstan
</a>
</td>
<td>
Kazakh (kk)<br />
Russian (ru)<br />
</td>
</tr>
<tr>
<td>
<a title="Kenya" href="/country-flags/kenya/">
<img src="/static/images/flags/ke.png" width="50" /> Kenya
</a>
</td>
<td>
English (en)<br />
Swahili (sw)<br />
</td>
</tr>
<tr>
<td>
<a title="Kiribati" href="/country-flags/kiribati/">
<img src="/static/images/flags/ki.png" width="50" /> Kiribati
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Kuwait" href="/country-flags/kuwait/">
<img src="/static/images/flags/kw.png" width="50" /> Kuwait
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Kyrgyzstan" href="/country-flags/kyrgyzstan/">
<img src="/static/images/flags/kg.png" width="50" /> Kyrgyzstan
</a>
</td>
<td>
Kirghiz; Kyrgyz (ky)<br />
Russian (ru)<br />
</td>
</tr>
<tr>
<td>
<a title="Laos" href="/country-flags/laos/">
<img src="/static/images/flags/la.png" width="50" /> Laos
</a>
</td>
<td>
Lao (lo)<br />
</td>
</tr>
<tr>
<td>
<a title="Latvia" href="/country-flags/latvia/">
<img src="/static/images/flags/lv.png" width="50" /> Latvia
</a>
</td>
<td>
Latvian (lv)<br />
</td>
</tr>
<tr>
<td>
<a title="Lebanon" href="/country-flags/lebanon/">
<img src="/static/images/flags/lb.png" width="50" /> Lebanon
</a>
</td>
<td>
Arabic (ar)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Lesotho" href="/country-flags/lesotho/">
<img src="/static/images/flags/ls.png" width="50" /> Lesotho
</a>
</td>
<td>
English (en)<br />
Sotho, Southern (st)<br />
</td>
</tr>
<tr>
<td>
<a title="Liberia" href="/country-flags/liberia/">
<img src="/static/images/flags/lr.png" width="50" /> Liberia
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Libya" href="/country-flags/libya/">
<img src="/static/images/flags/ly.png" width="50" /> Libya
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Liechtenstein" href="/country-flags/liechtenstein/">
<img src="/static/images/flags/li.png" width="50" /> Liechtenstein
</a>
</td>
<td>
German (de)<br />
</td>
</tr>
<tr>
<td>
<a title="Lithuania" href="/country-flags/lithuania/">
<img src="/static/images/flags/lt.png" width="50" /> Lithuania
</a>
</td>
<td>
Lithuanian (lt)<br />
</td>
</tr>
<tr>
<td>
<a title="Luxembourg" href="/country-flags/luxembourg/">
<img src="/static/images/flags/lu.png" width="50" /> Luxembourg
</a>
</td>
<td>
French (fr)<br />
German (de)<br />
Luxembourgish; Lëtzebuergesch (lb)<br />
</td>
</tr>
<tr>
<td>
<a title="Macao" href="/country-flags/macao/">
<img src="/static/images/flags/mo.png" width="50" /> Macao
</a>
</td>
<td>
Chinese (zh)<br />
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Madagascar" href="/country-flags/madagascar/">
<img src="/static/images/flags/mg.png" width="50" /> Madagascar
</a>
</td>
<td>
French (fr)<br />
Malagasy (mg)<br />
</td>
</tr>
<tr>
<td>
<a title="Malawi" href="/country-flags/malawi/">
<img src="/static/images/flags/mw.png" width="50" /> Malawi
</a>
</td>
<td>
Chichewa (ny)<br />
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Malaysia" href="/country-flags/malaysia/">
<img src="/static/images/flags/my.png" width="50" /> Malaysia
</a>
</td>
<td>
Malay (ms)<br />
</td>
</tr>
<tr>
<td>
<a title="Maldives" href="/country-flags/maldives/">
<img src="/static/images/flags/mv.png" width="50" /> Maldives
</a>
</td>
<td>
Divehi; Dhivehi; Maldivian (dv)<br />
</td>
</tr>
<tr>
<td>
<a title="Mali" href="/country-flags/mali/">
<img src="/static/images/flags/ml.png" width="50" /> Mali
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Malta" href="/country-flags/malta/">
<img src="/static/images/flags/mt.png" width="50" /> Malta
</a>
</td>
<td>
English (en)<br />
Maltese (mt)<br />
</td>
</tr>
<tr>
<td>
<a title="Marshall Islands" href="/country-flags/marshall-islands/">
<img src="/static/images/flags/mh.png" width="50" /> Marshall Islands
</a>
</td>
<td>
English (en)<br />
Marshallese (mh)<br />
</td>
</tr>
<tr>
<td>
<a title="Martinique" href="/country-flags/martinique/">
<img src="/static/images/flags/mq.png" width="50" /> Martinique
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Mauritania" href="/country-flags/mauritania/">
<img src="/static/images/flags/mr.png" width="50" /> Mauritania
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Mauritius" href="/country-flags/mauritius/">
<img src="/static/images/flags/mu.png" width="50" /> Mauritius
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Mayotte" href="/country-flags/mayotte/">
<img src="/static/images/flags/yt.png" width="50" /> Mayotte
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Mexico" href="/country-flags/mexico/">
<img src="/static/images/flags/mx.png" width="50" /> Mexico
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Micronesia" href="/country-flags/micronesia/">
<img src="/static/images/flags/fm.png" width="50" /> Micronesia
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Moldova" href="/country-flags/moldova/">
<img src="/static/images/flags/md.png" width="50" /> Moldova
</a>
</td>
<td>
Romanian; Moldavian; Moldovan (ro)<br />
</td>
</tr>
<tr>
<td>
<a title="Monaco" href="/country-flags/monaco/">
<img src="/static/images/flags/mc.png" width="50" /> Monaco
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Mongolia" href="/country-flags/mongolia/">
<img src="/static/images/flags/mn.png" width="50" /> Mongolia
</a>
</td>
<td>
Mongolian (mn)<br />
</td>
</tr>
<tr>
<td>
<a title="Montenegro" href="/country-flags/montenegro/">
<img src="/static/images/flags/me.png" width="50" /> Montenegro
</a>
</td>
<td>
Montenegrin (cnr)<br />
Serbian (sr)<br />
</td>
</tr>
<tr>
<td>
<a title="Montserrat" href="/country-flags/montserrat/">
<img src="/static/images/flags/ms.png" width="50" /> Montserrat
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Morocco" href="/country-flags/morocco/">
<img src="/static/images/flags/ma.png" width="50" /> Morocco
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Mozambique" href="/country-flags/mozambique/">
<img src="/static/images/flags/mz.png" width="50" /> Mozambique
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Myanmar" href="/country-flags/myanmar/">
<img src="/static/images/flags/mm.png" width="50" /> Myanmar
</a>
</td>
<td>
Burmese (my)<br />
</td>
</tr>
<tr>
<td>
<a title="Namibia" href="/country-flags/namibia/">
<img src="/static/images/flags/na.png" width="50" /> Namibia
</a>
</td>
<td>
Afrikaans (af)<br />
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Nauru" href="/country-flags/nauru/">
<img src="/static/images/flags/nr.png" width="50" /> Nauru
</a>
</td>
<td>
English (en)<br />
Nauru (na)<br />
</td>
</tr>
<tr>
<td>
<a title="Nepal" href="/country-flags/nepal/">
<img src="/static/images/flags/np.png" width="50" /> Nepal
</a>
</td>
<td>
Nepali (ne)<br />
</td>
</tr>
<tr>
<td>
<a title="Netherlands" href="/country-flags/netherlands/">
<img src="/static/images/flags/nl.png" width="50" /> Netherlands
</a>
</td>
<td>
Dutch (nl)<br />
</td>
</tr>
<tr>
<td>
<a title="New Caledonia" href="/country-flags/new-caledonia/">
<img src="/static/images/flags/nc.png" width="50" /> New Caledonia
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="New Zealand" href="/country-flags/new-zealand/">
<img src="/static/images/flags/nz.png" width="50" /> New Zealand
</a>
</td>
<td>
English (en)<br />
Maori (mi)<br />
</td>
</tr>
<tr>
<td>
<a title="Nicaragua" href="/country-flags/nicaragua/">
<img src="/static/images/flags/ni.png" width="50" /> Nicaragua
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Niger" href="/country-flags/niger/">
<img src="/static/images/flags/ne.png" width="50" /> Niger
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Nigeria" href="/country-flags/nigeria/">
<img src="/static/images/flags/ng.png" width="50" /> Nigeria
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Niue" href="/country-flags/niue/">
<img src="/static/images/flags/nu.png" width="50" /> Niue
</a>
</td>
<td>
English (en)<br />
Niuean (None)<br />
</td>
</tr>
<tr>
<td>
<a title="Norfolk Island" href="/country-flags/norfolk-island/">
<img src="/static/images/flags/nf.png" width="50" /> Norfolk Island
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="North Korea" href="/country-flags/north-korea/">
<img src="/static/images/flags/kp.png" width="50" /> North Korea
</a>
</td>
<td>
Korean (ko)<br />
</td>
</tr>
<tr>
<td>
<a title="North Macedonia" href="/country-flags/north-macedonia/">
<img src="/static/images/flags/mk.png" width="50" /> North Macedonia
</a>
</td>
<td>
Macedonian (mk)<br />
</td>
</tr>
<tr>
<td>
<a title="Northern Mariana Islands" href="/country-flags/northern-mariana-islands/">
<img src="/static/images/flags/mp.png" width="50" /> Northern Mariana Islands
</a>
</td>
<td>
Chamorro (ch)<br />
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Norway" href="/country-flags/norway/">
<img src="/static/images/flags/no.png" width="50" /> Norway
</a>
</td>
<td>
Bokmål, Norwegian; Norwegian Bokmål (nb)<br />
Norwegian (no)<br />
Norwegian Nynorsk; Nynorsk, Norwegian (nn)<br />
</td>
</tr>
<tr>
<td>
<a title="Oman" href="/country-flags/oman/">
<img src="/static/images/flags/om.png" width="50" /> Oman
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Pakistan" href="/country-flags/pakistan/">
<img src="/static/images/flags/pk.png" width="50" /> Pakistan
</a>
</td>
<td>
English (en)<br />
Urdu (ur)<br />
</td>
</tr>
<tr>
<td>
<a title="Palau" href="/country-flags/palau/">
<img src="/static/images/flags/pw.png" width="50" /> Palau
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Palestine" href="/country-flags/palestine/">
<img src="/static/images/flags/ps.png" width="50" /> Palestine
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Panama" href="/country-flags/panama/">
<img src="/static/images/flags/pa.png" width="50" /> Panama
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Papua New Guinea" href="/country-flags/papua-new-guinea/">
<img src="/static/images/flags/pg.png" width="50" /> Papua New Guinea
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Paraguay" href="/country-flags/paraguay/">
<img src="/static/images/flags/py.png" width="50" /> Paraguay
</a>
</td>
<td>
Guarani (gn)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Peru" href="/country-flags/peru/">
<img src="/static/images/flags/pe.png" width="50" /> Peru
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Philippines" href="/country-flags/philippines/">
<img src="/static/images/flags/ph.png" width="50" /> Philippines
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Pitcairn Islands" href="/country-flags/pitcairn-islands/">
<img src="/static/images/flags/pn.png" width="50" /> Pitcairn Islands
</a>
</td>
<td>
English (en)<br />
Pitcairn (pn)<br />
</td>
</tr>
<tr>
<td>
<a title="Poland" href="/country-flags/poland/">
<img src="/static/images/flags/pl.png" width="50" /> Poland
</a>
</td>
<td>
Polish (pl)<br />
</td>
</tr>
<tr>
<td>
<a title="Portugal" href="/country-flags/portugal/">
<img src="/static/images/flags/pt.png" width="50" /> Portugal
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Puerto Rico" href="/country-flags/puerto-rico/">
<img src="/static/images/flags/pr.png" width="50" /> Puerto Rico
</a>
</td>
<td>
English (en)<br />
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Qatar" href="/country-flags/qatar/">
<img src="/static/images/flags/qa.png" width="50" /> Qatar
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Republic of the Congo" href="/country-flags/republic-of-the-congo/">
<img src="/static/images/flags/cg.png" width="50" /> Republic Of The Congo
</a>
</td>
<td>
French (fr)<br />
Lingala (ln)<br />
</td>
</tr>
<tr>
<td>
<a title="Romania" href="/country-flags/romania/">
<img src="/static/images/flags/ro.png" width="50" /> Romania
</a>
</td>
<td>
Romanian; Moldavian; Moldovan (ro)<br />
</td>
</tr>
<tr>
<td>
<a title="Russian Federation" href="/country-flags/russian-federation/">
<img src="/static/images/flags/ru.png" width="50" /> Russian Federation
</a>
</td>
<td>
Russian (ru)<br />
</td>
</tr>
<tr>
<td>
<a title="Rwanda" href="/country-flags/rwanda/">
<img src="/static/images/flags/rw.png" width="50" /> Rwanda
</a>
</td>
<td>
English (en)<br />
French (fr)<br />
Kinyarwanda (rw)<br />
</td>
</tr>
<tr>
<td>
<a title="Réunion" href="/country-flags/reunion/">
<img src="/static/images/flags/re.png" width="50" /> Réunion
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Saint Barthélemy" href="/country-flags/saint-barthelemy/">
<img src="/static/images/flags/bl.png" width="50" /> Saint Barthélemy
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Saint Helena, Ascension and Tristan da Cunha" href="/country-flags/saint-helena-ascension-and-tristan-da-cunha/">
<img src="/static/images/flags/sh.png" width="50" /> Saint Helena, Ascension And Tristan Da Cunha
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Saint Kitts and Nevis" href="/country-flags/saint-kitts-and-nevis/">
<img src="/static/images/flags/kn.png" width="50" /> Saint Kitts And Nevis
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Saint Lucia" href="/country-flags/saint-lucia/">
<img src="/static/images/flags/lc.png" width="50" /> Saint Lucia
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Saint Martin" href="/country-flags/saint-martin/">
<img src="/static/images/flags/mf.png" width="50" /> Saint Martin
</a>
</td>
<td>
Dutch (nl)<br />
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Saint Pierre and Miquelon" href="/country-flags/saint-pierre-and-miquelon/">
<img src="/static/images/flags/pm.png" width="50" /> Saint Pierre And Miquelon
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Saint Vincent and the Grenadines" href="/country-flags/saint-vincent-and-the-grenadines/">
<img src="/static/images/flags/vc.png" width="50" /> Saint Vincent And The Grenadines
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Samoa" href="/country-flags/samoa/">
<img src="/static/images/flags/ws.png" width="50" /> Samoa
</a>
</td>
<td>
English (en)<br />
Samoan (sm)<br />
</td>
</tr>
<tr>
<td>
<a title="San Marino" href="/country-flags/san-marino/">
<img src="/static/images/flags/sm.png" width="50" /> San Marino
</a>
</td>
<td>
Italian (it)<br />
</td>
</tr>
<tr>
<td>
<a title="Sao Tome and Principe" href="/country-flags/sao-tome-and-principe/">
<img src="/static/images/flags/st.png" width="50" /> Sao Tome And Principe
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Saudi Arabia" href="/country-flags/saudi-arabia/">
<img src="/static/images/flags/sa.png" width="50" /> Saudi Arabia
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Senegal" href="/country-flags/senegal/">
<img src="/static/images/flags/sn.png" width="50" /> Senegal
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Serbia" href="/country-flags/serbia/">
<img src="/static/images/flags/rs.png" width="50" /> Serbia
</a>
</td>
<td>
Serbian (sr)<br />
</td>
</tr>
<tr>
<td>
<a title="Seychelles" href="/country-flags/seychelles/">
<img src="/static/images/flags/sc.png" width="50" /> Seychelles
</a>
</td>
<td>
English (en)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Sierra Leone" href="/country-flags/sierra-leone/">
<img src="/static/images/flags/sl.png" width="50" /> Sierra Leone
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Singapore" href="/country-flags/singapore/">
<img src="/static/images/flags/sg.png" width="50" /> Singapore
</a>
</td>
<td>
Chinese (zh)<br />
English (en)<br />
Malay (ms)<br />
Tamil (ta)<br />
</td>
</tr>
<tr>
<td>
<a title="Sint Eustatius" href="/country-flags/sint-eustatius/">
<img src="/static/images/flags/bq.png" width="50" /> Sint Eustatius
</a>
</td>
<td>
Dutch (nl)<br />
</td>
</tr>
<tr>
<td>
<a title="Sint Maarten (Dutch part)" href="/country-flags/sint-maarten-dutch-part/">
<img src="/static/images/flags/sx.png" width="50" /> Sint Maarten (Dutch Part)
</a>
</td>
<td>
Dutch (nl)<br />
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Slovakia" href="/country-flags/slovakia/">
<img src="/static/images/flags/sk.png" width="50" /> Slovakia
</a>
</td>
<td>
Slovak (sk)<br />
</td>
</tr>
<tr>
<td>
<a title="Slovenia" href="/country-flags/slovenia/">
<img src="/static/images/flags/si.png" width="50" /> Slovenia
</a>
</td>
<td>
Slovenian (sl)<br />
</td>
</tr>
<tr>
<td>
<a title="Solomon Islands" href="/country-flags/solomon-islands/">
<img src="/static/images/flags/sb.png" width="50" /> Solomon Islands
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Somalia" href="/country-flags/somalia/">
<img src="/static/images/flags/so.png" width="50" /> Somalia
</a>
</td>
<td>
Arabic (ar)<br />
Somali (so)<br />
</td>
</tr>
<tr>
<td>
<a title="South Africa" href="/country-flags/south-africa/">
<img src="/static/images/flags/za.png" width="50" /> South Africa
</a>
</td>
<td>
Afrikaans (af)<br />
English (en)<br />
Ndebele, South; South Ndebele (nr)<br />
Sotho, Southern (st)<br />
Swati (ss)<br />
Tsonga (ts)<br />
Tswana (tn)<br />
Venda (ve)<br />
Xhosa (xh)<br />
Zulu (zu)<br />
</td>
</tr>
<tr>
<td>
<a title="South Georgia and the South Sandwich Islands" href="/country-flags/south-georgia-and-the-south-sandwich-islands/">
<img src="/static/images/flags/gs.png" width="50" /> South Georgia And The South Sandwich Islands
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="South Korea" href="/country-flags/south-korea/">
<img src="/static/images/flags/kr.png" width="50" /> South Korea
</a>
</td>
<td>
Korean (ko)<br />
</td>
</tr>
<tr>
<td>
<a title="South Sudan" href="/country-flags/south-sudan/">
<img src="/static/images/flags/ss.png" width="50" /> South Sudan
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Spain" href="/country-flags/spain/">
<img src="/static/images/flags/es.png" width="50" /> Spain
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Sri Lanka" href="/country-flags/sri-lanka/">
<img src="/static/images/flags/lk.png" width="50" /> Sri Lanka
</a>
</td>
<td>
Sinhala; Sinhalese (si)<br />
Tamil (ta)<br />
</td>
</tr>
<tr>
<td>
<a title="Sudan" href="/country-flags/sudan/">
<img src="/static/images/flags/sd.png" width="50" /> Sudan
</a>
</td>
<td>
Arabic (ar)<br />
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Suriname" href="/country-flags/suriname/">
<img src="/static/images/flags/sr.png" width="50" /> Suriname
</a>
</td>
<td>
Dutch (nl)<br />
</td>
</tr>
<tr>
<td>
<a title="Svalbard and Jan Mayen" href="/country-flags/svalbard-and-jan-mayen/">
<img src="/static/images/flags/sj.png" width="50" /> Svalbard And Jan Mayen
</a>
</td>
<td>
Norwegian (no)<br />
</td>
</tr>
<tr>
<td>
<a title="Sweden" href="/country-flags/sweden/">
<img src="/static/images/flags/se.png" width="50" /> Sweden
</a>
</td>
<td>
Swedish (sv)<br />
</td>
</tr>
<tr>
<td>
<a title="Switzerland" href="/country-flags/switzerland/">
<img src="/static/images/flags/ch.png" width="50" /> Switzerland
</a>
</td>
<td>
French (fr)<br />
German (de)<br />
Italian (it)<br />
</td>
</tr>
<tr>
<td>
<a title="Syrian Arab Republic" href="/country-flags/syrian-arab-republic/">
<img src="/static/images/flags/sy.png" width="50" /> Syrian Arab Republic
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Taiwan, Province of China" href="/country-flags/taiwan-province-of-china/">
<img src="/static/images/flags/tw.png" width="50" /> Taiwan, Province Of China
</a>
</td>
<td>
Chinese (zh)<br />
</td>
</tr>
<tr>
<td>
<a title="Tajikistan" href="/country-flags/tajikistan/">
<img src="/static/images/flags/tj.png" width="50" /> Tajikistan
</a>
</td>
<td>
Russian (ru)<br />
Tajik (tg)<br />
</td>
</tr>
<tr>
<td>
<a title="Tanzania, United Republic of" href="/country-flags/tanzania-united-republic-of/">
<img src="/static/images/flags/tz.png" width="50" /> Tanzania, United Republic Of
</a>
</td>
<td>
English (en)<br />
Swahili (sw)<br />
</td>
</tr>
<tr>
<td>
<a title="Thailand" href="/country-flags/thailand/">
<img src="/static/images/flags/th.png" width="50" /> Thailand
</a>
</td>
<td>
Thai (th)<br />
</td>
</tr>
<tr>
<td>
<a title="Timor-Leste" href="/country-flags/timor-leste/">
<img src="/static/images/flags/tl.png" width="50" /> Timor-Leste
</a>
</td>
<td>
Portuguese (pt)<br />
</td>
</tr>
<tr>
<td>
<a title="Togo" href="/country-flags/togo/">
<img src="/static/images/flags/tg.png" width="50" /> Togo
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Tokelau" href="/country-flags/tokelau/">
<img src="/static/images/flags/tk.png" width="50" /> Tokelau
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Tonga" href="/country-flags/tonga/">
<img src="/static/images/flags/to.png" width="50" /> Tonga
</a>
</td>
<td>
English (en)<br />
Tonga (Tonga Islands) (to)<br />
</td>
</tr>
<tr>
<td>
<a title="Trinidad and Tobago" href="/country-flags/trinidad-and-tobago/">
<img src="/static/images/flags/tt.png" width="50" /> Trinidad And Tobago
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Tunisia" href="/country-flags/tunisia/">
<img src="/static/images/flags/tn.png" width="50" /> Tunisia
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Turkey" href="/country-flags/turkey/">
<img src="/static/images/flags/tr.png" width="50" /> Turkey
</a>
</td>
<td>
Turkish (tr)<br />
</td>
</tr>
<tr>
<td>
<a title="Turkmenistan" href="/country-flags/turkmenistan/">
<img src="/static/images/flags/tm.png" width="50" /> Turkmenistan
</a>
</td>
<td>
Russian (ru)<br />
Turkmen (tk)<br />
</td>
</tr>
<tr>
<td>
<a title="Turks and Caicos Islands" href="/country-flags/turks-and-caicos-islands/">
<img src="/static/images/flags/tc.png" width="50" /> Turks And Caicos Islands
</a>
</td>
<td>
English (en)<br />
Turks and Caicos Creole English (tch)<br />
</td>
</tr>
<tr>
<td>
<a title="Tuvalu" href="/country-flags/tuvalu/">
<img src="/static/images/flags/tv.png" width="50" /> Tuvalu
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Uganda" href="/country-flags/uganda/">
<img src="/static/images/flags/ug.png" width="50" /> Uganda
</a>
</td>
<td>
English (en)<br />
Swahili (sw)<br />
</td>
</tr>
<tr>
<td>
<a title="Ukraine" href="/country-flags/ukraine/">
<img src="/static/images/flags/ua.png" width="50" /> Ukraine
</a>
</td>
<td>
Ukrainian (uk)<br />
</td>
</tr>
<tr>
<td>
<a title="United Arab Emirates" href="/country-flags/united-arab-emirates/">
<img src="/static/images/flags/ae.png" width="50" /> United Arab Emirates
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="United Kingdom" href="/country-flags/united-kingdom/">
<img src="/static/images/flags/gb.png" width="50" /> United Kingdom
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="United States" href="/country-flags/united-states/">
<img src="/static/images/flags/us.png" width="50" /> United States
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="United States Minor Outlying Islands" href="/country-flags/united-states-minor-outlying-islands/">
<img src="/static/images/flags/um.png" width="50" /> United States Minor Outlying Islands
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Uruguay" href="/country-flags/uruguay/">
<img src="/static/images/flags/uy.png" width="50" /> Uruguay
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Uzbekistan" href="/country-flags/uzbekistan/">
<img src="/static/images/flags/uz.png" width="50" /> Uzbekistan
</a>
</td>
<td>
Russian (ru)<br />
Uzbek (uz)<br />
</td>
</tr>
<tr>
<td>
<a title="Vanuatu" href="/country-flags/vanuatu/">
<img src="/static/images/flags/vu.png" width="50" /> Vanuatu
</a>
</td>
<td>
Bislama (bi)<br />
English (en)<br />
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Venezuela" href="/country-flags/venezuela/">
<img src="/static/images/flags/ve.png" width="50" /> Venezuela
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Vietnam" href="/country-flags/vietnam/">
<img src="/static/images/flags/vn.png" width="50" /> Vietnam
</a>
</td>
<td>
Vietnamese (vi)<br />
</td>
</tr>
<tr>
<td>
<a title="Virgin Islands, British" href="/country-flags/virgin-islands-british/">
<img src="/static/images/flags/vg.png" width="50" /> Virgin Islands, British
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Virgin Islands, U.S." href="/country-flags/virgin-islands-us/">
<img src="/static/images/flags/vi.png" width="50" /> Virgin Islands, U.S.
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Wallis and Futuna" href="/country-flags/wallis-and-futuna/">
<img src="/static/images/flags/wf.png" width="50" /> Wallis And Futuna
</a>
</td>
<td>
French (fr)<br />
</td>
</tr>
<tr>
<td>
<a title="Western Sahara" href="/country-flags/western-sahara/">
<img src="/static/images/flags/eh.png" width="50" /> Western Sahara
</a>
</td>
<td>
Spanish; Castilian (es)<br />
</td>
</tr>
<tr>
<td>
<a title="Yemen" href="/country-flags/yemen/">
<img src="/static/images/flags/ye.png" width="50" /> Yemen
</a>
</td>
<td>
Arabic (ar)<br />
</td>
</tr>
<tr>
<td>
<a title="Zambia" href="/country-flags/zambia/">
<img src="/static/images/flags/zm.png" width="50" /> Zambia
</a>
</td>
<td>
English (en)<br />
</td>
</tr>
<tr>
<td>
<a title="Zimbabwe" href="/country-flags/zimbabwe/">
<img src="/static/images/flags/zw.png" width="50" /> Zimbabwe
</a>
</td>
<td>
English (en)<br />
Ndebele, North; North Ndebele (nd)<br />
Shona (sn)<br />
</td>
</tr>
<tr>
<td>
<a title="Åland Islands" href="/country-flags/aland-islands/">
<img src="/static/images/flags/ax.png" width="50" /> Åland Islands
</a>
</td>
<td>
Swedish (sv)<br />
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer id="footer">
<div class="footer-content">
<div class="container">
<div class="row">
<div class="col-lg-4">
<div class="widget">
<div class="widget-title">FlagPictures.com</div>
<p class="mb-3">National flags of all 197 independent countries of the world represented in alphabetical order. Always up-to-date information.</p>
<p class="text-muted">
<small>Last updated on 2025-01-01</small>
</p>
<p>Flag Pictures Supported By <a title="adat.ae" href="https://www.adat.ae" target="_blank">ADAT.ae</a></p>
</div>
</div>
<div class="col-lg-8">
<div class="row">
<div class="col-lg-3">
<div class="widget">
<div class="widget-title">Discover</div>
<ul class="list p-0">
<li><a title="About FlagPictures" href="/about-us/">About Us</a></li>
<li><a title="Contact FlagPictures" href="/contact-us/">Contact Us</a></li>
<li><a title="Privacy policy of FlagPictures" href="/privacy/">Privacy Policy</a></li>
<li><a title="Blogs" href="/blogs/">Blogs</a></li>
<li><a title="Continents" href="/continents/">Continents</a></li>
<li><a title="All country flags" href="/country-flags/">Countries</a></li>
<li><a title="Capital cities of all countries in the world" href="/world-capital-cities/">Capital Cities</a></li>
<li><a title="World organizations" href="/organizations/">Organizations</a></li>
</ul>
</div>
</div>
<div class="col-lg-3">
<div class="widget">
<div class="widget-title">Countries</div>
<ul class="list p-0">
<li><a title="National Flowers" href="/countries/national-flowers/">National Flowers</a></li>
<li><a title="National Animals" href="/countries/national-animals/">National Animals</a></li>
<li><a title="National Sports" href="/countries/national-sports/">National Sports</a></li>
<li><a title="National Libraries" href="/countries/national-libraries/">National Libraries</a></li>
<li><a title="National Birds" href="/countries/national-birds/">National Birds</a></li>
<li><a title="National Food" href="/countries/national-food/">National Food</a></li>
<li><a title="National Motto" href="/countries/national-motto/">National Motto</a></li>
<li><a title="National Airlines" href="/countries/national-airlines/">National Airlines</a></li>
<li><a title="National Anthems" href="/countries/national-anthems/">National Anthems</a></li>
<li><a title="Number of Universities" href="/countries/number-of-universities/">Number of Universities</a></li>
</ul>
</div>
</div>
<div class="col-lg-3">
<div class="widget">
<div class="widget-title">&nbsp;</div>
<ul class="list p-0">
<li><a title="Countries No Longer Exists" href="/countries/no-longer-exists/">Countries No Longer Exists</a></li>
<li><a title="Countries Religions" href="/countries/religions/">Countries Religions</a></li>
<li><a title="ountries Languages" href="/countries/languages/">Countries Languages</a></li>
<li><a title="National Currencies" href="/countries/currencies/">National Currencies</a></li>
<li><a title="Countries Independence" href="/countries/independence/">Countries Independence</a></li>
<li><a title="Countries Independence Day" href="/countries/independence-day/">Countries Independence Day</a></li>
<li><a title="Countries Independence Leader" href="/countries/independence-leader/">Countries Independence Leader</a></li>
<li><a title="Countries Population" href="/countries/population/">Countries Population</a></li>
<li><a title="Flag Colors" href="/countries/flag-colors/">Flag Colors</a></li>
<li><a title="Flag Proportions" href="/countries/flag-proportions/">Flag Proportions</a></li>
</ul>
</div>
</div>
<div class="col-lg-3">
<div class="widget">
<div class="widget-title">&nbsp;</div>
<ul class="list p-0">
<li><a title="Country names in Arabic" href="/countries/name-in-arabic/">Country names in Arabic</a></li>
<li><a title="Country names in French" href="/countries/name-in-French/">Country names in French</a></li>
<li><a title="Country names in Japanese" href="/countries/name-in-japanese/">Country names in Japanese</a></li>
<li><a title="Country names in Hindi" href="/countries/name-in-hindi/">Country names in Hindi</a></li>
<li><a title="Country names in Italian" href="/countries/name-in-italian/">Country names in Italian</a></li>
<li><a title="Country names in Spanish" href="/countries/name-in-spanish/">Country names in Spanish</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="copyright-content">
<div class="container">
<div class="copyright-text text-center">&copy; 2025 FlagPictures. All Rights Reserved.</div>
</div>
</div>
</footer>
<!-- end: Footer -->
</div>
<div id="cookieNotify" class="modal-strip cookie-notify background-dark" data-delay="3000" data-expire="1" data-cookie-name="cookiebar2020_1" data-cookie-enabled="true">
<div class="container">
<div class="row">
<div class="col-lg-8 text-sm-center sm-center sm-m-b-10 m-t-5">This website uses cookies to ensure you get the best experience on our website. <a href="/privacy/" class="text-light"><span> More info <i class="fa fa-info-circle"></i></span></a></div>
<div class="col-lg-4 text-right sm-text-center sm-center">
<button type="button" class="btn btn-rounded btn-light btn-outline btn-sm m-r-10 modal-close">Decline</button>
<button type="button" class="btn btn-rounded btn-light btn-sm modal-confirm">Got it!</button>
</div>
</div>
</div>
</div>
<!-- end: Body Inner -->
<!-- Scroll top -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous" defer />
<script src="/static/js/jquery-3.6.0.min.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script>
$(document).ready(function() {
window.setTimeout(function(){
$.getScript("https://cse.google.com/cse.js?cx=c531d5c9fe3324054");
$.getScript("https://www.googletagmanager.com/gtag/js?id=UA-173055406-1");
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-173055406-1');
var tag = document.createElement("script");
tag.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
tag.setAttribute('data-ad-client', 'ca-pub-7332778060983980');
document.getElementsByTagName("head")[0].appendChild(tag);
}, 5000);
});
</script>
</body>
</html>

84
scripts/reset-project.js Executable file
View File

@ -0,0 +1,84 @@
#!/usr/bin/env node
/**
* This script is used to reset the project to a blank state.
* It moves the /app, /components, /hooks, /scripts, and /constants directories to /app-example and creates a new /app directory with an index.tsx and _layout.tsx file.
* You can remove the `reset-project` script from package.json and safely delete this file after running it.
*/
const fs = require("fs");
const path = require("path");
const root = process.cwd();
const oldDirs = ["app", "components", "hooks", "constants", "scripts"];
const newDir = "app-example";
const newAppDir = "app";
const newDirPath = path.join(root, newDir);
const indexContent = `import { Text, View } from "react-native";
export default function Index() {
return (
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center",
}}
>
<Text>Edit app/index.tsx to edit this screen.</Text>
</View>
);
}
`;
const layoutContent = `import { Stack } from "expo-router";
export default function RootLayout() {
return <Stack />;
}
`;
const moveDirectories = async () => {
try {
// Create the app-example directory
await fs.promises.mkdir(newDirPath, { recursive: true });
console.log(`📁 /${newDir} directory created.`);
// Move old directories to new app-example directory
for (const dir of oldDirs) {
const oldDirPath = path.join(root, dir);
const newDirPath = path.join(root, newDir, dir);
if (fs.existsSync(oldDirPath)) {
await fs.promises.rename(oldDirPath, newDirPath);
console.log(`➡️ /${dir} moved to /${newDir}/${dir}.`);
} else {
console.log(`➡️ /${dir} does not exist, skipping.`);
}
}
// Create new /app directory
const newAppDirPath = path.join(root, newAppDir);
await fs.promises.mkdir(newAppDirPath, { recursive: true });
console.log("\n📁 New /app directory created.");
// Create index.tsx
const indexPath = path.join(newAppDirPath, "index.tsx");
await fs.promises.writeFile(indexPath, indexContent);
console.log("📄 app/index.tsx created.");
// Create _layout.tsx
const layoutPath = path.join(newAppDirPath, "_layout.tsx");
await fs.promises.writeFile(layoutPath, layoutContent);
console.log("📄 app/_layout.tsx created.");
console.log("\n✅ Project reset complete. Next steps:");
console.log(
"1. Run `npx expo start` to start a development server.\n2. Edit app/index.tsx to edit the main screen.\n3. Delete the /app-example directory when you're done referencing it."
);
} catch (error) {
console.error(`Error during script execution: ${error}`);
}
};
moveDirectories();

17
tsconfig.json Normal file
View File

@ -0,0 +1,17 @@
{
"extends": "expo/tsconfig.base",
"compilerOptions": {
"strict": true,
"paths": {
"@/*": [
"./*"
]
}
},
"include": [
"**/*.ts",
"**/*.tsx",
".expo/types/**/*.ts",
"expo-env.d.ts"
]
}