npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rtk-translate

v1.0.39

Published

'rtk-translate' - é uma biblioteca de tradução leve e intuitiva para React. Projetada para simplicidade e eficiência, ela permite que desenvolvedores integrem suporte multilíngue aos seus projetos React de maneira rápida e sem complicações.

Downloads

55

Readme

🌍 RTK - Translate (React Kit Translate)

RTK - Translate é uma biblioteca criada para simplificar a tradução de seu site, portfólio, software e muito mais. Projetada para ser simples, intuitiva e prática. Integre-a facilmente em seus projetos e suporte quantos idiomas desejar.


📦 Instalação

  • Usando npm:
npm install rtk-translate
  • Usando yarn:
yarn add rtk-translate

🚀 Como começar

1. Configuração Inicial

Envolva o componente principal da sua aplicação com o TranslationProvider e passe as propriedades necessárias:

import { TranslationProvider } from 'rtk-translate';

function App() {
  return (
    <TranslationProvider 
        storageKey='sua-chave-no-storage' // Chave usada para salvar o idioma selecionado no storage.
        languages={...} // Forneça seus idiomas e traduções aqui. Veja o exemplo abaixo.
        defaultLanguage="seu-idioma-default" // Idioma padrão da aplicação.
        availableLanguages={['pt', 'en', ...]} // Idiomas que você disponibilizou nas traduções. Exemplo abaixo.
    >
      <MyComponent />
    </TranslationProvider>
  );
}

📝 Propriedades do TranslationProvider

| Propriedade | Tipo | Descrição | | -------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------- | | storageKey | string | Usado para salvar o idioma atual no localStorage, ela é opcional, caso não seja passada será salvo com a chave rtk::language. | | languages | object | Objeto contendo os idiomas, chaves de identificação e as traduções desejadas. | | defaultLanguage | string | Define um idioma padrão para o seu projeto, caso não seja passado será usado o valor default pt. | | availableLanguages | string[] | Array contendo todos os idiomas disponíveis no seu array languages. |

Exemplo de languages:

const languages = {
  pt: {
    heading: 'Título 1',
    subheading: 'Subtítulo A',
    buttonLabel: 'Clique Aqui',
    contactUs: 'Fale Conosco'
  },
  en: {
    heading: 'Title 1',
    subheading: 'Subheading A',
    buttonLabel: 'Click Here',
    contactUs: 'Contact Us'
  },
  fr: {
    heading: 'Titre 1',
    subheading: 'Sous-titre A',
    buttonLabel: 'Cliquez ici',
    contactUs: 'Contactez-nous'
  },
  es: {
    heading: 'Título 1',
    subheading: 'Subtítulo A',
    buttonLabel: 'Haz clic aquí',
    contactUs: 'Contáctenos'
  }
  // ...
}

Exemplo de availableLanguages:

const availableLanguages = ['pt', 'en', 'fr', 'es'];

2. Uso dentro dos componentes

Exemplo de uso com select:

import { useTranslation } from 'rtk-translate';

function SellectLang() {
  const { translateText, setCurrentLanguage, currentLanguage } = useTranslation();

  const handleLanguageChange = (event) => {
    setCurrentLanguage(event.target.value);
  };

  return (
  <div>
      // Exemplo de uso com um select padrão para mudar o idioma
      <select onChange={handleLanguageChange} defaultValue={currentLanguage}>
        <option value="en">English</option>
        <option value="pt">Português</option>
        <option value="fr">Français</option>
        <option value="es">Español</option>
      </select>
      <div>
        <h1>{translateText('heading')}</h1> // traduz o texto com a chave 'heading'
        <h2>{translateText('subheading')}</h2> // traduz o texto com a chave 'subheading'
        <button>{translateText('buttonLabel')}</button> // traduz o texto com a chave 'buttonLabel'
        <a href="/contact">{translateText('contactUs')}</a> // traduz o texto com a chave 'contactUs'
      </div>
    </div>
  );
}

Exemplo de uso com botões:

⚠️ o onClick precisa ter uma callback, conforme o código abaixo!

import { useTranslation } from 'rtk-translate';

function ButtonsLang() {
  const { setCurrentLanguage } = useTranslation();

  const handleLanguageChange = (lang) =>  setCurrentLanguage(lang);

  return (
    <section>
      <ul>
        <li><button onClick={() => handleLanguageChange('pt')}>🇧🇷 PT-BR</button></li>
        <li><button onClick={() => handleLanguageChange('en')}>🇺🇸 EN</button></li>
      </ul>
    </section>
  )
}

3. Componente LanguageSelect

O componente LanguageSelect é um seletor de idiomas desenvolvido para facilitar a experiência de internacionalização no seu site. Ele foi projetado pensando na usabilidade e eficiência, por isso apresenta as seguintes características:

  • Idioma e Bandeira: Cada opção no dropdown é representada pelo nome do idioma e uma bandeira correspondente, tornando visualmente intuitivo para os usuários. Se preferir uma abordagem mais minimalista, é possível ocultar o nome e exibir apenas a bandeira.

  • Pesquisa Rápida: Sabendo que alguns sites podem suportar uma extensa lista de idiomas, um campo de pesquisa foi incorporado ao dropdown. Ao clicar no seletor, um input é renderizado no topo do menu dropdown, permitindo que os usuários digitem e filtrem rapidamente para encontrar o idioma desejado.

⚠️ O nome e o input funcionam em conjunto, ou seja, se o nome do idioma estiver oculto, o input de pesquisa também será oculto. Para exibir o input de pesquisa, o nome do idioma deve estar visível.

Utilize o LanguageSelect para oferecer uma navegação fluída e uma experiência de usuário enriquecedora, independente do número de idiomas que seu site suporta.

Exemplo de uso do componente LanguageSelect:

import { LanguageSelect, useTranslation } from 'rtk-translate';

// import o arquivo css 
import 'rtk-translate/dist/index.css'

function MyComponent() {
  const { translateText, setCurrentLanguage, currentLanguage, validLanguages } = useTranslation();

  return (
    <div>
      <LanguageSelect
        selected={currentLanguage}
        onChange={setCurrentLanguage}
        availableLanguages={validLanguages}
        // isNameVisible={true}
        // showSearchInput={true}
      />
      <div>
        <h1>{translateText('heading')}</h1>
        <h2>{translateText('subheading')}</h2>
        <button>{translateText('buttonLabel')}</button>
        <a href="/contact">{translateText('contactUs')}</a>
      </div>
    </div>
  );
}

📝 Propriedades do componente LanguageSelect

| Propriedade | Tipo | Descrição | | -------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | selected | string | Idioma atual do site, pode ser obtido através da propriedade currentLanguage do useTranslation(). | | onChange | function | Função que muda o idioma atual do site. Pode ser obtida através da propriedade setCurrentLanguage do useTranslation(). | | availableLanguages | string[] | Array que a rtk-translate já validou com base nos seus idiomas fornecidos ao TranslationProvider. É disponibilizado através da propriedade validLanguages do useTranslation(). | | isNameVisible | boolean | Booleano que define se o nome do idioma será renderizado junto com a bandeira, o valor default é true. | | showSearchInput | boolean | Booleano que define se o campo de pesquisa será renderizado no dropdown, o valor default é true. |

📝 Propriedades do useTranslation()

| Propriedade | Tipo | Descrição | | -------------------- | ---------- | ------------------------------------------------------------------------------------------------------------ | | translateText | function | Função que retorna a tradução correspondente à chave fornecida. Recebe a chave do texto que deseja traduzir. | | setCurrentLanguage | function | Função que define o idioma atual do site. Recebe o novo idioma desejado como parâmetro. | | currentLanguage | string | Representa o idioma atual em uso no site. | | validLanguages | string[] | Array de idiomas validados pela rtk-translate, com base nos idiomas fornecidos ao TranslationProvider. |

🎨 Classes CSS para Customização do componente LanguageSelect

Aqui estão as classes CSS que você pode sobrescrever para personalizar a aparência do componente LanguageSelect:

| Classe | Descrição | Sobrescrição Sugerida | | ---------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------ | | .rtk-language-selector | Estilização geral do seletor de idioma. | .rtk-language-selector { ... !important; } | | .rtk-current-language | Estilo do idioma atual exibido. | .rtk-current-language { ... !important; } | | .rtk-current-language > img | Estilo da imagem/bandeira do idioma atual. | .rtk-current-language > img { ... !important; } | | .rtk-languages-dropdown | Estilo do menu dropdown que lista os idiomas. | .rtk-languages-dropdown { ... !important; } | | .rtk-languages-dropdown .rtk-language-option > img | Estilo da imagem/bandeira nos itens do dropdown. | .rtk-languages-dropdown .rtk-language-option > img { ... !important; } | | .rtk-language-option, .rtk-language-no-results | Estilo dos itens individuais no dropdown. | .rtk-language-option { ... !important; } | | .rtk-language-option:last-child | Estilo para o último item no dropdown. | .rtk-language-option:last-child { ... !important; } | | .rtk-language-option:hover | Estilo hover dos itens no dropdown. | .rtk-language-option:hover { ... !important; } | | .rtk-language-input-search | Estilo do campo de busca no dropdown. | .rtk-language-input-search { ... !important; } |


Como contribuir

Para contribuir com o projeto, leia o arquivo CONTRIBUTING.md


Mais infos


Dúvidas, sugestões e melhorias

Se você tiver dúvidas, quiser relatar um bug ou solicitar novos recursos, por favor, abra uma issue no nosso repositório, ou conecte-se comigo no Linkedin - Vitor Nogueira


Referências


Licença

Rtk Translate is MIT licensed.


Agradecimentos

Este projeto utiliza a biblioteca React Flag Kit, cujo copyright é detido por Bowtie AB e está licenciada sob a licença MIT. Detalhes sobre esta licença podem ser encontrados em MIT licensed.


🔗 Veja uma demonstração ao vivo aqui.


⭐️ Este README foi gerado a partir do Gerador de README drag in drop. Experimente aqui: Code Mark