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';
|
|
|
|
|
|
|
|
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
|
2024-02-06 15:24:53 +01:00
|
|
|
String number(double value) => value.toStringAsFixed(2);
|
2022-09-20 11:04:00 +02:00
|
|
|
|
|
|
|
@override
|
2024-02-06 15:24:53 +01:00
|
|
|
String translate(BuildContext context, String key, {List<String>? params}) =>
|
|
|
|
key;
|
2022-09-20 11:04:00 +02:00
|
|
|
}
|
|
|
|
|
2023-03-28 10:20:12 +02:00
|
|
|
Translator getTranslator(BuildContext context) {
|
2022-09-20 11:04:00 +02:00
|
|
|
try {
|
2023-03-28 10:20:12 +02:00
|
|
|
var translator = ShellTranslationService().translate;
|
2022-09-20 11:04:00 +02:00
|
|
|
return (
|
|
|
|
String key, {
|
|
|
|
List<String>? params,
|
2024-02-06 15:24:53 +01:00
|
|
|
}) =>
|
|
|
|
translator(context, key, params: params);
|
|
|
|
} on Exception catch (_) {
|
2022-09-20 11:04:00 +02:00
|
|
|
return (
|
|
|
|
String key, {
|
|
|
|
List<String>? params,
|
2024-02-06 15:24:53 +01:00
|
|
|
}) =>
|
|
|
|
key;
|
2022-09-20 11:04:00 +02:00
|
|
|
}
|
|
|
|
}
|