Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.7.0

json_localizations

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

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
36
Curtidas
2
Pontos Pub
150

Instalar pacote

flutter pub add json_localizations

Visão geral do pacote

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

Um pacote leve de localização baseado em JSON construído sobre o LocalizationsDelegate do Flutter. Permite gerenciar facilmente strings localizadas carregando traduções a partir de arquivos JSON, suportando múltiplos idiomas e troca dinâmica de idioma. Projetado para simplicidade e integração com o sistema de internacionalização do Flutter, permite que desenvolvedores mantenham arquivos de tradução limpos e legíveis sem configurações complexas. Ideal para aplicativos que exigem suporte multilíngue simples com mínimo overhead.

Casos de uso

  • Suporte a aplicativos multilíngues
  • Mudança dinâmica de idioma
  • Gerenciamento de arquivos de tradução simples
  • Incorporando traduções em recursos
  • Solução leve de localização
  • Fallback de localização personalizável

Principais recursos

  • arquivos de tradução baseados em JSON
  • Estende LocalizationsDelegate
  • Suporta múltiplos idiomas
  • Integração fácil de ativos
  • Mínimo boilerplate
  • Tratamento de localidade de fallback

Indicado para

  • Aplicativos pequenos a médios
  • Desenvolvedores em busca de simplicidade
  • Projetos com traduções estáticas
  • Equipes que usam JSON para localização
  • Aplicativos que precisam de i18n básico
  • Prototipagem rápida

Considerações

  • Não ideal para fluxos de trabalho de tradução em grande escala
  • Nenhum ferramenta de edição de tradução integrada
  • Gerenciamento manual de arquivos JSON
  • Suporte limitado para pluralização
  • Nenhuma extração automática de chave
  • Requer configuração manual de localidade

README original

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

json_localizations

A minimal JSON localization package for Flutter.

Use a JSON file/object per language to represent key/value pairs for localizing your app.

Install

Add json_localizations and flutter_localizations as dependencies to your pubspec.yaml.

dependencies:
  flutter_localizations:
    sdk: flutter
  json_localizations:
Add a JSON file per language

Add a JSON file per language you support in an asset path and describe it in your pubspec.yaml

flutter:
  assets:
    - assets/json_translations/

The JSON file name must match exactly the combination of language and country code described in supportedLocales.

That is Locale('en', 'US') must have a corresponding assetPath/en-US.json file.

Add JsonLocalizationsDelegate to MaterialApp

Add JsonLocalizationsDelegate to MaterialApp and set supportedLocales using language/country codes.

MaterialApp(
  localizationsDelegates: [
    // delegate from flutter_localization
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
    // delegate from json_localizations
    JsonLocalizationsDelegate('assets/json_translations'),
  ],
  supportedLocales: [
    Locale('en'),
    Locale('nb'),
  ],
}

Note on iOS

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

Example:

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

Format

Example JSON file:

{
	"hello": "hello",
	"bye": "bye",
	"items": [ "one", "two", "three" ],
	"count": 1
}

Tip: You can store any json type given a key, like a string, an array of strings, or a number

API

Get a value for the current language using:

JsonLocalizations.of(context)?.value('hello')

We keep the API simple, but you could easily add an extension method to String:

extension LocalizedString on String {
  String tr(BuildContext context) => JsonLocalizations.of(context)!.value(this);
}

So you could write:

'hello'.tr(context)

Example

See example.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.