Task: Add i18n translator and factory for translatable for text formatter and default factory
This commit is contained in:
37
test/cubetiq_i18n_test.dart
Normal file
37
test/cubetiq_i18n_test.dart
Normal file
@@ -0,0 +1,37 @@
|
||||
import 'package:cubetiq/i18n_translator.dart';
|
||||
import 'package:cubetiq/src/xlog/xlog.dart';
|
||||
import 'package:cubetiq/text.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
test('test translate function', () {
|
||||
var text1 = 'Hello, my name is {0}!';
|
||||
var result1 = TextFormatter(text1).translate().format(args: ['Sambo']);
|
||||
XLog.success(result1);
|
||||
|
||||
expect('Hello, my name is Sambo!', result1);
|
||||
|
||||
TranslatorFactory.setProvider(TranslatorProviderExample());
|
||||
|
||||
result1 = TextFormatter(text1).translate().format(args: ['Sambo']);
|
||||
XLog.success(result1);
|
||||
expect('ឈ្មោះរបស់អ្នកគឺ Sambo!', result1);
|
||||
});
|
||||
}
|
||||
|
||||
class TranslatorProviderExample implements TranslatorProvider {
|
||||
@override
|
||||
bool hasKey(String key) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
String translate(String key,
|
||||
{Map<String, dynamic>? params, String? fallback}) {
|
||||
if (key == 'Hello, my name is {0}!') {
|
||||
return 'ឈ្មោះរបស់អ្នកគឺ {0}!';
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
}
|
||||
@@ -4,10 +4,10 @@ import 'package:test/test.dart';
|
||||
void main() {
|
||||
test('text formatter function format', () {
|
||||
var text1 = 'Hello, {0}!';
|
||||
var result1 = TextFormatter(text1).format(['Sambo']);
|
||||
var result1 = TextFormatter(text1).format(args: ['Sambo']);
|
||||
|
||||
var text2 = 'Hello, {name}!';
|
||||
var result2 = TextFormatter(text2).decorate({'name': 'Chea'});
|
||||
var result2 = TextFormatter(text2).decorate(params: {'name': 'Chea'});
|
||||
|
||||
expect('Hello, Sambo!', result1);
|
||||
expect('Hello, Chea!', result2);
|
||||
|
||||
Reference in New Issue
Block a user