Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.4.0

language_pickers

Ele gera seletores de idioma para você no Flutter. Você pode usá-lo livremente de várias maneiras.

Downloads em 30 dias
62
Curtidas
16
Pontos Pub
160

Instalar pacote

flutter pub add language_pickers

Visão geral do pacote

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

Language Pickers é um pacote Flutter que simplifica a criação de seletores de idioma. Ele fornece widgets pré-construídos e personalizáveis para seleção de idiomas, permitindo internacionalização em aplicativos com esforço mínimo. O pacote foi projetado para ser flexível e fácil de integrar, permitindo que desenvolvedores implementem rapidamente funcionalidades de escolha de idioma em diversos contextos de interface. Suporta múltiplos idiomas e pode ser usado em formulários, telas de configurações ou qualquer interface que exija seleção de idioma. O pacote é de código aberto e está livremente disponível para uso em projetos pessoais e comerciais.

Casos de uso

  • Configuração de localização do aplicativo
  • Seleção de preferência de idioma do usuário
  • seletor de idioma da tela de configurações
  • Entradas de formulário multilíngues
  • Interfaces de aplicativos internacionalizadas

Principais recursos

  • widgets de seleção de idioma pré-construídos
  • Componentes de interface personalizáveis
  • Integração fácil com o Flutter
  • Suporte à internacionalização
  • Open source e gratuito para uso

Indicado para

  • Desenvolvedores de aplicativos multilíngues
  • Designers de interface precisando de ferramentas de seleção de idioma
  • Projetos que exigem implementação rápida de i18n
  • Iniciantes do Flutter explorando seletores
  • Aplicativos voltados para públicos globais

Considerações

  • Requer manipulação manual da lógica de alternância de idioma
  • Sem suporte de tradução embutido
  • Limitado à seleção de UI, não gerenciamento de dados de idioma
  • Pode ser necessário pacotes adicionais para i18n completo
  • Comportamento específico do plataforma não documentado explicitamente

README original

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

language_pickers

It's package for Dart and Flutter.

It makes language select pickers for you in Flutter. You can use it freely in lots of ways.

And specially thanks to Figen Güngör(@figengungor), who is opened the source code of 'country_pickers'. Lots of source codes are from country_pickers GitHub Repository, so works are very easy. Thanks again.

Upgrading from 0.3.x

0.4.0 does not break your code. The old API still works, it only warns you. Here is what to move to:

0.3.x 0.4.0
defaultLanguagesList (List<Map<String, String>>) Languages.defaultLanguages (List<Language>)
languagesList: myMaps languages: myLanguages
LanguagePickerUtils.getLanguageByIsoCode('ko') Language.fromIsoCode('ko')
— Languages.korean, Languages.english, …

One behaviour changed: an unknown ISO code now throws an ArgumentError instead of an Exception. ArgumentError is an Error, so on Exception catch no longer catches it.

Every Language also has a nativeName now, and Language implements == and hashCode, so you can put it in a Set or use it as a Map key.

Getting Started

LanguagePickerDropdown example
import 'package:language_pickers/language_pickers.dart';

Language _selectedDropdownLanguage = Language.fromIsoCode('ko');

// It's sample code of Dropdown Item.
// nativeName is the name written in the language itself, e.g. '한국어'.
Widget _buildDropdownItem(Language language) {
  return Row(
    children: <Widget>[
      SizedBox(
        width: 8.0,
      ),
      Text("${language.name} (${language.nativeName})"),
    ],
  );
}


// Builder
LanguagePickerDropdown(
                    initialValue: 'ko',
                    itemBuilder: _buildDropdownItem,
                    onValuePicked: (Language language) {
                      _selectedDropdownLanguage = language;
                      print(_selectedDropdownLanguage.name);
                      print(_selectedDropdownLanguage.isoCode);
                    },
                  ),
Narrowing the languages down
LanguagePickerDropdown(
  languages: const <Language>[
    Languages.korean,
    Languages.english,
    Languages.japanese,
  ],
),
LanguagePickerDropdownController example

The controller lets you read and change the selection from outside the picker.

final controller =
    LanguagePickerDropdownController(initialValue: Languages.korean);

@override
void dispose() {
  controller.dispose();
  super.dispose();
}

// Builder
LanguagePickerDropdown(controller: controller),

// Somewhere else
controller.selectIsoCode('ja');   // the dropdown follows
print(controller.value.name);     // reads the current selection
LanguagePickerDialog example
import 'package:language_pickers/language_pickers.dart';

Language _selectedDialogLanguage =
      Language.fromIsoCode('ko');

// It's sample code of Dialog Item.
Widget _buildDialogItem(Language language) => Row(
    children: <Widget>[
      Text(language.name),
      SizedBox(width: 8.0),
      Flexible(child: Text("(${language.isoCode})"))
    ],
  );

void _openLanguagePickerDialog() => showDialog(
    context: context,
    builder: (context) => Theme(
        data: Theme.of(context).copyWith(primaryColor: Colors.pink),
        child: LanguagePickerDialog(
            titlePadding: EdgeInsets.all(8.0),
            searchCursorColor: Colors.pinkAccent,
            searchInputDecoration: InputDecoration(hintText: 'Search...'),
            isSearchable: true,
            title: Text('Select your language'),
            onValuePicked: (Language language) => setState(() {
                  _selectedDialogLanguage = language;
                  print(_selectedDialogLanguage.name);
                  print(_selectedDialogLanguage.isoCode);
                }),
            itemBuilder: _buildDialogItem)),
  );
LanguagePickerCupertino example
import 'package:language_pickers/language_pickers.dart';

Language _selectedCupertinoLanguage = Language.fromIsoCode('ko');

// It's sample code of Cupertino Item.
void _openCupertinoLanguagePicker() => showCupertinoModalPopup<void>(
  context: context,
  builder: (BuildContext context) {
    return LanguagePickerCupertino(
      pickerSheetHeight: 200.0,
      onValuePicked: (Language language) => setState(() {
            _selectedCupertinoLanguage = language;
            print(_selectedCupertinoLanguage.name);
            print(_selectedCupertinoLanguage.isoCode);
          }),
    );
  });

Widget _buildCupertinoItem(Language language) => Row(
    children: <Widget>[
      Text("+${language.name}"),
      SizedBox(width: 8.0),
      Flexible(child: Text(language.name))
    ],
  );

Information

If a name or a native name is wrong, please make some issues on GitHub.

The names and the native names are based on the public ISO 639-1 code table. Where the table lists several native writings for one language, this package keeps one representative writing, so that it fits in a dropdown.

Credits

Developed by gomgom(GitHub @gomgom).

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.