mineral_i18n

Last updated:

0 purchases

mineral_i18n Image
mineral_i18n Images
Add to Cart

Description:

mineral i18n

🌐 I18n #
The i18n module has been designed exclusively for the Mineral framework, it allows you to translate your textual content through yaml files.
Register the module #
After installing the module, please register it within ./src/main.dart following the scheme below :
import 'package:mineral/core.dart';
import 'package:mineral/core/services.dart';
import 'package:mineral_i18n/mineral_i18n.dart';

void main () async {
final kernel = Kernel(
intents: IntentService(all: true),
packages: PackageService([
I18n(['fr', 'en'])
]),
);

await kernel.init();
}
copied to clipboard
Translate your textual content #
As a first step, please create a lang folder containing {lang}.yaml translation files.
We consider the following software structure :
lang/
foo/
fr.yaml
en.yaml
copied to clipboard
The files will contain the following keys :
# lang/foo/fr.yaml
bar: bar en français !
copied to clipboard
# lang/foo/en.yaml
bar: bar in english !
copied to clipboard
Then we can use the t() function to translate our key path.
import 'package:mineral_i18n/mineral_i18n.dart';

class Foo extends MineralEvent<Ready> with Translation {
Future<void> handle (Ready event) async {
final String sentence = t(Lang.fr, 'foo.bar');
print(sentence); // bar en français !

final String sentence = t(Lang.en_GB, 'foo.bar');
print(sentence); // bar in english !
}
}
copied to clipboard
Injecting variables #
The i18n module integrates the possibility of using variables thanks to special characters which will be replaced by the associated variable.
We consider the file lang/foo/en.yaml as containing the following key set :
bar: {framework} is my favourite framework !
copied to clipboard
Our string is now waiting for a variable named xx which we will give it when we call the t() function.
import 'package:mineral_i18n/mineral_i18n.dart';

class Foo extends MineralEvent<Ready> with Translation {
Future<void> handle (Ready event) async {
final String sentence = t(Lang.en_GB, 'foo.bar', { 'framework': 'Mineral' });
print(sentence); // Mineral is my favourite framework !
}
}
copied to clipboard
Using package commands #
The i18n package provides you with a series of commands that you can discover via the help menu.
In order to use these commands, you will need to add the package to the CLI as follows:
// mineral file
import 'package:mineral/cli.dart';
import 'package:mineral_i18n/mineral_i18n.dart';

Future<void> main (List<String> arguments) async {
final i18n = I18n(['fr', 'en']);
final cli = CommandLineInterface(packages: [i18n]);

await cli.handle(arguments);
}
copied to clipboard
The commands issued by the package are now available

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.