Task: Add i18n translator and factory for translatable for text formatter and default factory
This commit is contained in:
@@ -3,8 +3,8 @@ import 'package:cubetiq/text.dart';
|
||||
void main(List<String> args) {
|
||||
var text1 = 'Hello, {0}, then do this it by {1}!';
|
||||
var text2 = 'Hello, {firstName}, then do this it by {lastName}!';
|
||||
var result1 = TextFormatter(text1).format(['Sambo', 'Chea']);
|
||||
var result2 = TextFormatter(text2).decorate({
|
||||
var result1 = TextFormatter(text1).format(args: ['Sambo', 'Chea']);
|
||||
var result2 = TextFormatter(text2).decorate(params: {
|
||||
'firstName': 'Sambo',
|
||||
'lastName': 'Chea',
|
||||
});
|
||||
|
||||
36
example/cubetiq_translator_example.dart
Normal file
36
example/cubetiq_translator_example.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
import 'package:cubetiq/text.dart';
|
||||
import 'package:cubetiq/i18n_translator.dart';
|
||||
|
||||
void main(List<String> args) {
|
||||
var text = 'Your name is {name}!';
|
||||
// Before set provider
|
||||
var result = StringUtils.decorator(text, translate: true, params: {
|
||||
'name': 'Sambo Chea',
|
||||
});
|
||||
print('Result Before => $result');
|
||||
|
||||
TranslatorFactory.setProvider(TranslatorProviderExample());
|
||||
|
||||
// After set provider
|
||||
result = StringUtils.decorator(text, translate: true, params: {
|
||||
'name': 'Sambo Chea',
|
||||
});
|
||||
print('Result After => $result');
|
||||
}
|
||||
|
||||
class TranslatorProviderExample implements TranslatorProvider {
|
||||
@override
|
||||
bool hasKey(String key) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
String translate(String key,
|
||||
{Map<String, dynamic>? params, String? fallback}) {
|
||||
if (key == 'Your name is {name}!') {
|
||||
return 'ឈ្មោះរបស់អ្នកគឺ {name}!';
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user