excel_localization

Last updated:

0 purchases

excel_localization Image
excel_localization Images
Add to Cart

Description:

excel localization

Excel Localization #

A tool which automatically generates Flutter localization resources from CSV and Excel files.
This is especially useful as any team member can edit the CSV/Excel file, with the subsequent translations imported into the project via a terminal command. Basic variables (strings and integers) are supported, however neither genders nor plurals are planned to be supported. If you require such functionality, consider using arb_generator.
Note that plugin only works with null safety.
Special thanks for motivation : Click here
Getting Started #
In order to use the excel_localization package, please provide your translations in a CSV or Excel file. For CSV files, delimiters , and ; have been tested to work.
Here you can see samle of csv how user need to arrange data



keys
fr
en
en_GB
hi




plainText
Bonjour le monde!
Hello world!
Hello world!
हैलो वर्ल्ड!


welcome
Bienvenu %name$s!
Welcome %name$s!
Welcome %name$s!
स्वागत%name$s!


favoriteColor
Quelle est votre couleur préférée?
What is your favorite color?
What is your favourite colour?
आपका पसंदीदा रंग कौनसा है?



Localizations can be specified for a region by appending the country code.
Add dependency #
dependencies:
flutter_localizations:
sdk: flutter

dev_dependencies:
excel_localization:
copied to clipboard
Note that excel_localization requires dart sdk >= 2.12.
Define Settings #
Settings for excel_localization must set in your project's pubspec.yaml file. input_file_path is the only required parameter.
excel_localization:
input_file_path: "lang.csv"
output_dir: "lib"
file_name: "i18n"
class_name: "I18n"
delimiter: ","
start_index: 1
depend_on_context: true
use_single_quotes: false
replace_no_break_spaces: false
expose_get_string: false
expose_loca_strings: false
expose_locale_maps: false
generate_comments: false
comment_languages: []
copied to clipboard



Setting
Default
Description




input_file_path
N/A
Required. A path to the input CSV/Excel file.


output_dir
lib
A directory to generate the output file.


file_name
i18n
A filename for the generated file.


class_name
I18n
A class name for the generated file.


delimiter
,
CSV files only: a delimited to separate columns in the input CSV file.


start_index
1
The column index where translations begin (i.e. column index of default language).


depend_on_context
true
Whether the generated localizations should depend on BuildContext


use_single_quotes
false
Whether the generated file should use single or double quotes for strings.


replace_no_break_spaces
false
Whether no break spaces (\u00A0) should be replaced with normal spaces (\u0020).


expose_get_string
false
The default value for whether a getString method should be exposed.


expose_loca_strings
false
The default value for whether a locaStrings getter should be exposed.


expose_locale_maps
false
The default value for whether a localeMaps getter should be exposed.


generate_comments
false
Whether documentation comments should be used to display translations.


comment_languages
[]
Languages that are displayed in the comments. Empty -> All languages are used.



Run package #
Make sure that your current working directory is the project root.
flutter pub get
flutter pub run excel_localization
copied to clipboard
Update iOS Info.plist #
For iOS, ios/Runner/Info.plist needs to be updated with an array of the languages that the app will supports:
<key>CFBundleLocalizations</key>
<array>
<string>fr</string>
<string>en</string>
<string>hi</string>
</array>
copied to clipboard
For more information, see Internationalizing Flutter apps.
Use the i18n generated file #
The package used your input file in order to generate a file named file_name in output_dir you provided. The following example uses the default class_name I18n with a dependency on BuildContext.
Firstly, add the I18nDelegate to your delegates:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorKey: I18n.languageKey, //<== This is require if you like to call words without context
localizationsDelegates: [

const I18nDelegate(),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: I18nDelegate.supportedLocals,
home: Home(),
);
}
}
copied to clipboard
Then use the generated I18n class!
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('excel localization sample"'),
),
body: Center(
child: Column(
children: <Widget>[
Text(I18n.of(context).plainText),
Text(I18n.of(context).welcome(name: 'Simran')),
Text(I18n.of(context).favoriteColor),
// To access variable without con the way is given below just replace of(context) to translate keyword
// Make sure you add navigatorkey parameter in MaterialApp or GetMaterialApp
Text(I18n.translate.plainText),
Text(I18n.translate.welcome(name: 'Simran')),
Text(I18n.translate.favoriteColor),
],
),
),
);
}
copied to clipboard
Please see example for more information.
Material Localizations #
Supporting a language (i.e. ga or cy) not included in GlobalMaterialLocalizations requires adding a material localization class and delegate. Although this is out of the scope of this package, a warning is logged to the console during code generation. More info.
Rules and functionalities #
Locale #
Locales are specified in the top row and are expected to be given in the form en or en_US.
Default language #
The column at start_index is considered the default language. This means that:

If this column does not have a value, the loca key instead will be used.
If another language does not have translations for a given key, the value of the default language will be used.

Keys #
Each loca key must begin with a lowercase letter, after which any combinations of lowercase, uppercase, digits or underscores are valid.
Variables #
In order to include variables in loca strings, they need to be written in the format %<VAR NAME>$<VAR TYPE>. Presently only integers and strings are supported as variable types.

%myVariable$d (d stands for an int)
%myVariable$s (s stands for a String)

All variables are required. Consider the key welcome from example. The generated function signature is
String welcome({
required String name,
})
copied to clipboard
Note that if the variable's name starts with a number, the generated variable name will be var<VAR NAME>. So, for instance, %1$d would become var1.
You can also watch youtube Video to understand this plugin #

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.