Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.3.0

csv_localizations

Um pacote de localização CSV mínimo construído sobre LocalizationsDelegate.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
103
Curtidas
8
Pontos Pub
150

Instalar pacote

flutter pub add csv_localizations

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote leve do Flutter para gerenciar traduções de aplicativos usando arquivos CSV, construído sobre o framework LocalizationsDelegate. Permite aos desenvolvedores carregar e alternar entre traduções de idiomas dinamicamente ao ler arquivos CSV armazenados nos recursos do aplicativo. O pacote simplifica a internacionalização fornecendo uma maneira limpa e estruturada de organizar pares chave-valor para diferentes idiomas sem exigir configuração complexa ou código boilerplate. Ideal para aplicativos que precisam de localização simples com pouco custo operacional.

Casos de uso

  • Gerenciando conteúdo de aplicativo multilíngue
  • Carregando traduções de arquivos CSV
  • Apoio à troca dinâmica de idioma
  • Simplificando fluxos de trabalho de tradução
  • Integração com localização baseada em ativos existentes
  • Facilitar a colaboração fácil com tradutores

Principais recursos

  • Armazenamento de tradução baseado em CSV
  • Construído no LocalizationsDelegate
  • Configuração mínima necessária
  • Suporta múltiplas plataformas
  • Integração fácil com ativos do Flutter
  • Carregamento dinâmico de idioma

Indicado para

  • Aplicativos pequenos a médios
  • Equipes com tradutores não técnicos
  • Projetos que priorizam a simplicidade
  • Aplicativos com conteúdo de tradução estático
  • Desenvolvedores evitando soluções complexas de i18n
  • Projetos usando CSV para gerenciamento de dados

Considerações

  • Não é ideal para projetos de tradução em grande escala
  • Requer gerenciamento manual de arquivos CSV
  • Suporte limitado para pluralização e formatação
  • Nenhum ferramenta de edição de tradução integrada
  • Mais adequado para traduções simples de chave-valor
  • Não trata atualizações de tradução em tempo de execução

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.