पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv2.3.0

csv_localizations

LocalizationsDelegate पर आधारित एक न्यूनतम CSV स्थानीयकरण पैकेज।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
103
लाइक
8
Pub अंक
150

पैकेज इंस्टॉल करें

flutter pub add csv_localizations

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

CSV फ़ाइलों के उपयोग से ऐप अनुवाद प्रबंधित करने के लिए हल्का फ्लटर पैकेज, LocalizationsDelegate फ्रेमवर्क पर आधारित। यह डेवलपर्स को ऐप के संसाधनों में संग्रहीत CSV फ़ाइलों को पढ़कर भाषा अनुवाद को डायनामिक रूप से लोड और स्विच करने की अनुमति देता है। इस पैकेज के द्वारा विभिन्न भाषाओं के लिए की-वैल्यू जोड़े को संगठित करने का एक साफ और संरचित तरीका प्रदान करके अंतरराष्ट्रीयकरण को सरल बनाया गया है, जिसमें जटिल सेटअप या बॉयलरप्लेट कोड की आवश्यकता नहीं होती है। न्यूनतम ओवरहेड के साथ सीधे स्थानीयकरण की आवश्यकता वाले ऐप्स के लिए आदर्श।

उपयोग

  • बहुभाषी ऐप सामग्री का प्रबंधन
  • CSV फ़ाइलों से अनुवाद लोड कर रहे हैं
  • डायनामिक भाषा स्विचिंग का समर्थन करना
  • अनुवाद कार्य प्रवाह को सरल बनाना
  • मौजूदा संपत्ति-आधारित स्थानीयकरण के साथ एकीकरण
  • अनुवादकों के साथ आसान सहयोग सुनिश्चित करना

मुख्य विशेषताएँ

  • CSV-आधारित अनुवाद संग्रह
  • LocalizationsDelegate पर आधारित
  • आवश्यक न्यूनतम कॉन्फ़िगरेशन
  • कई प्लेटफॉर्म का समर्थन करता है
  • Flutter संपत्तियों के साथ आसान एकीकरण
  • गतिशील भाषा लोडिंग

इनके लिए उपयुक्त

  • छोटे से मध्यम आकार के एप्लिकेशन
  • गैर-तकनीकी अनुवादकों वाली टीमें
  • सरलता को प्राथमिकता देने वाले प्रोजेक्ट
  • स्टैटिक अनुवाद सामग्री वाले ऐप्स
  • जटिल i18n समाधानों से बचने वाले विकासकर्ता
  • डेटा प्रबंधन के लिए CSV का उपयोग करने वाले प्रोजेक्ट

विचार योग्य बातें

  • बड़े पैमाने पर अनुवाद परियोजनाओं के लिए आदर्श नहीं है
  • हाथ से CSV फ़ाइल प्रबंधन की आवश्यकता है
  • बहुवचन और प्रारूपण के लिए सीमित समर्थन
  • कोई निर्मित अनुवाद संपादन उपकरण नहीं
  • सरल की-मान अनुवाद के लिए सबसे उपयुक्त
  • रनटाइम अनुवाद अपडेट का समर्थन नहीं करता है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

csv_localizations

A minimal CSV localization package for Flutter.

Store translations for multiple languages in a single CSV file.

One language per column - one translation per row.

Install

Add csc_localizations and flutter_localizations to your pubspec.yaml.

dependencies:
  flutter_localizations:
    sdk: flutter
  csv_localizations: <last-version>

Add a single CSV file asset to your pubspec.yaml.

flutter:
  assets:
    - assets/translations.csv

Add CsvLocalizationsDelegate and supported locales to MaterialApp.

MaterialApp(
  localizationsDelegates: [
    // delegate from flutter_localization
    ...GlobalMaterialLocalizations.delegates,
    // delegate from csv_localizations
    CsvLocalizationsDelegate(path: 'assets/translations.csv'),
  ],
  supportedLocales: [
    Locale('en'),
    Locale('nb'),
  ],
}
Note on iOS

Add supported locales to ios/Runner/Info.plist as described here

Example:

<key>CFBundleLocalizations</key>
<array>
	<string>en</string>
	<string>nb</string>
</array>

Format

A CSV file is a simple table-as-a-text-file with comma separated values as columns and new lines as rows.

In our case columns represents translations for a specific language and rows represent translations for a given key.

First row are supported language/country codes. First column are keys for localized values.

Example table:

key en nb
Hi Hi Hei
Dog Dog Hund
Cat Cat Cat

Tip (1) wrap multiline strings in quotation marks

Example CSV:

key,en,nb
Hi,Hi,Hei
Dog,Dog,Hund
Cat,Cat,Katt
my_img,assets/en.png,assets/nb.png

Tip (2) keys can point to local assets like images

API

Translate text using:

CsvLocalizations.instance.string('Hi')

Or add a String extension:

extension LocalizedString on String {
  String tr(BuildContext context) => CsvLocalizations.instance.string(this);
}

We don't want to pollute the String API by default

Now you could easily translate strings like this:

'Hi'.tr(context)

Note if a value does not exists for a given key, we return the key itself

We also support num, int and double via:

CsvLocalizations.instance.numValue('my_num')

CsvLocalizations.instance.intValue('my_int')

CsvLocalizations.instance.doubleValue('my_double')

Configurations

We support all the configurations from the csv package.

You can set it via CsvLocalizationsConfigurations when creating the CsvLocalizationsDelegate.

Here are the default configurations:

  const CsvLocalizationsConfigurations({
    this.fieldDelimiter = ',',
    this.textDelimiter = '"',
    this.textEndDelimiter = '"',
    this.eol = '\n',
    this.convertEmptyTo = '',
    this.allowInvalid = true,
    this.shouldParseNumbers = true,
  });

Example

See example

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 1 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।