mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-19 05:58:50 +02:00
* spanish: some necessary, minor rewording for new background sync strings
* en: fix unmetered network typo
* languages: add guarani
Adds strings_gn.arb file.
* fix: remove `,` from beginning and end of file
* tl_constant: add `gn` value
* flags: add guarani (PY) flag
Adds _gn.png_ file.
* languages: add guarani
* localeCountryCode: fix guarani value to 3 letters (grn); making it cohesive with all others
* res/values: replace strings_gn.arb file for appropriate one
* guarani: remove unnecessary `,` at the beginning and end of file
* guarani: fix a lot of syntax errors...
* guarani: remove all remaining trails of Spanish translation; fix all wrongly translated `${}` values back to English
* fix: gn translation
* ci: add ci check for translations
* Update .github/workflows/are_translations_sane.yml
* res/values: adds fixed `strings_gn.arb` file
* res/values: undoes wrong GN=>ES translations on file
* res/values: fix missing `}` for `strings_gn.arb`
* res/values: adds revised `strings_gn.arb` file
* res/values: adds revised `strings_gn.arb` file
* res/values: adds revised `strings_gn.arb` file
---------
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
96 lines
2.3 KiB
Dart
96 lines
2.3 KiB
Dart
import 'package:cake_wallet/generated/locales.dart';
|
|
import 'package:devicelocale/devicelocale.dart';
|
|
import 'package:intl/intl.dart';
|
|
|
|
class LanguageService {
|
|
static const Map<String, String> supportedLocales = {
|
|
'en': 'English',
|
|
'de': 'Deutsch (German)',
|
|
'es': 'Español (Spanish)',
|
|
'fr': 'Français (French)',
|
|
'gn': 'Guarani (Guarani)',
|
|
'hi': 'हिंदी (Hindi)',
|
|
'ja': '日本 (Japanese)',
|
|
'ko': '한국어 (Korean)',
|
|
'nl': 'Nederlands (Dutch)',
|
|
'pl': 'Polski (Polish)',
|
|
'pt': 'Português (Portuguese)',
|
|
'ru': 'Русский (Russian)',
|
|
'uk': 'Українська (Ukrainian)',
|
|
'zh': '中文 (Chinese)',
|
|
'hr': 'Hrvatski (Croatian)',
|
|
'it': 'Italiano (Italian)',
|
|
'th': 'ภาษาไทย (Thai)',
|
|
'ar': 'العربية (Arabic)',
|
|
'tr': 'Türkçe (Turkish)',
|
|
'my': 'မြန်မာ (Burmese)',
|
|
'bg': 'Български (Bulgarian)',
|
|
'cs': 'čeština (Czech)',
|
|
'ur': 'اردو (Urdu)',
|
|
'id': 'Bahasa Indonesia (Indonesian)',
|
|
'yo': 'Yorùbá (Yoruba)',
|
|
'ha': 'Hausa Najeriya (Nigeria)',
|
|
'tl': 'Filipino (Tagalog)',
|
|
'hy': 'Հայերեն (Armenian)',
|
|
'vi': 'Tiếng Việt (Vietnamese)',
|
|
};
|
|
|
|
static const Map<String, String> localeCountryCode = {
|
|
'en': 'usa',
|
|
'de': 'deu',
|
|
'es': 'esp',
|
|
'fr': 'fra',
|
|
'gn': 'grn',
|
|
'hi': 'ind',
|
|
'ja': 'jpn',
|
|
'ko': 'kor',
|
|
'nl': 'nld',
|
|
'pl': 'pol',
|
|
'pt': 'prt',
|
|
'ru': 'rus',
|
|
'uk': 'ukr',
|
|
'zh': 'chn',
|
|
'hr': 'hrv',
|
|
'it': 'ita',
|
|
'th': 'tha',
|
|
'ar': 'sau',
|
|
'tr': 'tur',
|
|
'my': 'mmr',
|
|
'bg': 'bgr',
|
|
'cs': 'czk',
|
|
'ur': 'pak',
|
|
'id': 'idn',
|
|
'yo': 'nga',
|
|
'ha': 'hau',
|
|
'tl': 'phl',
|
|
'hy': 'arm',
|
|
'vi': 'vnm',
|
|
};
|
|
|
|
static final list = <String, String>{};
|
|
|
|
static const defaultLocale = 'en';
|
|
|
|
static void loadLocaleList() {
|
|
supportedLocales.forEach((key, value) {
|
|
if (locales.contains(key)) {
|
|
list[key] = value;
|
|
}
|
|
});
|
|
}
|
|
|
|
static Future<String> localeDetection() async {
|
|
try {
|
|
var locale = await Devicelocale.currentLocale ?? '';
|
|
locale = Intl.shortLocale(locale);
|
|
|
|
if (list.keys.contains(locale)) {
|
|
return locale;
|
|
}
|
|
return LanguageService.defaultLocale;
|
|
} catch(_) {
|
|
return LanguageService.defaultLocale;
|
|
}
|
|
}
|
|
}
|