arb_translator_gen_z 2.0.0
arb_translator_gen_z: ^2.0.0 copied to clipboard
Modern CLI tool for translating ARB localization files into 100+ languages with enterprise features like retry logic, rate limiting, and validation.
// Copyright (c) 2024, Saurav Khanal. All rights reserved.
// Use of this source code is governed by a MIT license that can be
// found in the LICENSE file.
/// Main example demonstrating basic usage of arb_translator_gen_z.
///
/// This example shows:
/// - Basic translation of ARB files
/// - Configuration options
/// - Error handling
library;
import 'dart:io';
import 'package:arb_translator_gen_z/arb_translator_gen_z.dart';
Future<void> main() async {
print('π ARB Translator Gen Z - Basic Example');
print('======================================\n');
try {
// Create translator instance with default configuration
final config = TranslatorConfig();
final translator = ArbTranslator(config);
// Create sample ARB file if it doesn't exist
final sampleArbFile = File('app_en.arb');
if (!await sampleArbFile.exists()) {
await sampleArbFile.writeAsString('''
{
"@@locale": "en",
"appTitle": "Hello World",
"@appTitle": {
"description": "The title of the application"
},
"welcomeMessage": "Welcome to our app!",
"@welcomeMessage": {
"description": "Welcome message shown to users"
},
"buttonText": "Get Started",
"@buttonText": {
"description": "Text for the main action button"
}
}
''');
print('β
Created sample ARB file: ${sampleArbFile.path}');
}
// Translate to multiple languages
final targetLanguages = ['es', 'fr', 'de', 'ja'];
print('π Translating to: ${targetLanguages.join(', ')}');
for (final lang in targetLanguages) {
print('\nπ Translating to $lang...');
final outputPath = await translator.generateArbForLanguage(
sampleArbFile.path,
lang,
);
print('β
Translation complete: $outputPath');
}
print('\nπ All translations completed successfully!');
print('π Check the generated ARB files.');
} catch (e) {
print('β Error: $e');
exit(1);
}
}