Web apps Localization
Usually, webapps keep localized strings in JSON files. It's a native for web.
{
"hello": "Hello",
"world": "World"
}
Whenever you want you can extract localized strings from our service to your Web project.
You can do it manually via web-interface, using API, or shell script.
Web-interface
Open you project settings, select [JSON], choose a language(s) and click export.
API
try {
const response = await fetch('https://api.localize.to/v1/language/en?apikey=PROJECT_API_KEY')
const json = await response.json()
console.log(json)
.catch (error) {
console.log(error)
}
Shell script
Example below downloads six different languages to the src/resources/ folder.
#!/bin/sh
target_path="src/resources"
apikey="{YOUR_PROJECT_API_KEY}"
base_url="https://localize.to/api/v1"
declare -a langs=("en" "de" "ru" "uk" "fr" "es")
for lang in "${langs[@]}"
do
echo $lang
name="${target_path}/${lang}.json"
request="${base_url}/language/${lang}?apikey=${apikey}"
curl -o ${name} ${request}
done
Example for React, i18next, react-i18next
import i18n from 'i18next'
import { initReactI18next } from 'react-i18next'
import en from './resources/en.json'
import de from './resources/de.json'
import ru from './resources/ru.json'
import uk from './resources/uk.json'
import fr from './resources/fr.json'
import es from './resources/es.json'
const resources = {
en: { translation: en },
de: { translation: de },
fr: { translation: fr },
ru: { translation: ru },
uk: { translation: uk },
es: { translation: es },
}
const userLocale = null //detectLocale()
i18n
.use(initReactI18next)
.init({
resources,
lng: userLocale||'en',
fallbackLng: 'en',
keySeparator: false, // we do not use keys in form messages.welcome
interpolation: {
escapeValue: false // react already safes from xss
}
})
export default i18n