2022-11-01 08:23:35 +01:00
|
|
|
// SPDX-FileCopyrightText: 2022 Iconica
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
|
2022-09-20 11:04:00 +02:00
|
|
|
import 'package:flutter/material.dart';
|
2022-11-29 09:43:55 +01:00
|
|
|
import 'package:flutter_form_wizard/utils/providers.dart';
|
2022-09-20 11:04:00 +02:00
|
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
|
|
|
|
abstract class TranslationService {
|
|
|
|
TranslationService._();
|
|
|
|
|
|
|
|
String translate(
|
|
|
|
BuildContext context,
|
|
|
|
String key, {
|
|
|
|
List<String>? params,
|
|
|
|
});
|
|
|
|
|
|
|
|
String number(double value);
|
|
|
|
}
|
|
|
|
|
|
|
|
typedef Translator = String Function(
|
|
|
|
String, {
|
|
|
|
List<String>? params,
|
|
|
|
});
|
|
|
|
|
|
|
|
class ShellTranslationService implements TranslationService {
|
|
|
|
@override
|
|
|
|
String number(double value) {
|
|
|
|
return value.toStringAsFixed(2);
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
String translate(BuildContext context, String key, {List<String>? params}) {
|
|
|
|
return key;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Translator getTranslator(BuildContext context, WidgetRef ref) {
|
|
|
|
try {
|
|
|
|
var translator = ref.read(translationServiceProvider).translate;
|
|
|
|
return (
|
|
|
|
String key, {
|
|
|
|
List<String>? params,
|
|
|
|
}) {
|
|
|
|
return translator(context, key, params: params);
|
|
|
|
};
|
|
|
|
} catch (e) {
|
|
|
|
return (
|
|
|
|
String key, {
|
|
|
|
List<String>? params,
|
|
|
|
}) {
|
|
|
|
return key;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|