Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@nimbos/i18n
Advanced tools
@nimbos/i18n
A função de internacionalização permite salvar as strings do sistema de maneira centralizada e manutenivel alem de permitir a mudança de linguagem em runtime.
Após regisdtrar um conjunto de chaves
import t from '@nimbos/i18n';
//registrando
t.register('pt-BR', {
hello_world: 'Olá Mundo'
});
O uso pode ser feito da seguinte forma
import t from '@nimbos/i18n';
const localized = t('hello_world');
console.log(localized); //Olá Mundo
Para cenários onde existem váriaveis dentro das mensagem, elas podem ser definidas como váriaveis (nomeadas) e parametros (numerados).
Como no exemplo:
import t from '@nimbos/i18n';
//registrando
t.register('pt-BR', {
hello_world: 'Olá {name}'
});
O uso pode ser feito da seguinte forma
import t from '@nimbos/i18n';
const localized = t('hello_world', { name: 'Mundo' });
console.log(localized); //Olá Mundo
Exemplo de uso com parametros:
import t from '@nimbos/i18n';
//registrando
t.register('pt-BR', {
hello_world: 'Olá {0}' //o nomero é sequencial, {1}, {2}, {3}...
});
O uso pode ser feito da seguinte forma
import t from '@nimbos/i18n';
let parametro = 'Mundo';
const localized = t('hello_world', parametro);
console.log(localized); //Olá Mundo
Esse modo é menos legivel e pode gerar confusões, use com cautela
Para cenários onde temos contagem de elementos, podemos usar a variavel ou parametro para contagem
Exemplo:
import t from '@nimbos/i18n';
//registrando
t.register('pt-BR', {
items_count: ['Sem Items!', 'Apenas um Item!', 'São {count} Items!']
});
O uso pode ser feito da seguinte forma
import t from '@nimbos/i18n';
const localizedNone = t('hello_world', { count: 0 });
const localizedOne = t('hello_world', { count: 1 });
const localizedMany = t('hello_world', { count: 2 });
console.log(localizedNone); //Sem Items!
console.log(localizedOne); //Apenas um Item!
console.log(localizedMany); //São 2 Items!
O número de items acompanha os items do array, se existirem 4 items, por exemplo, será o primeiro para 0 o segundo para 1 o terceiro para 2 e o quarto para todos os outros O mesmo ocorreria para 2 itens, o primeiro para 0 e o segundo para todos os outros
A contagem inteligente funciona para as props com os seguintes nomes:
Ou para o primeiro item de um array
Exemplo de uso com varios idiomas:
import t from '@nimbos/i18n';
//registrando
t.register('pt-BR', {
hello_world: 'Olá Mundo' //o nomero é sequencial, {1}, {2}, {3}...
});
//registrando
t.register('en-US', {
hello_world: 'Hello World' //o nomero é sequencial, {1}, {2}, {3}...
});
O uso pode ser feito da seguinte forma
import t from '@nimbos/i18n';
let parametro = 'Mundo';
const localizedPTBR = t('hello_world');
t.lang('en-US');
const localizedENUS = t('hello_world');
console.log(localizedPTBR); //Olá Mundo
console.log(localizedENUS); //Hello World
Pode ser usado como função:
import t from '@nimbos/i18n'
<div>
<h1>{t`view.title`}</h1>
<p>{t('view.present', { name: user.name, email: user.email })}</p>
<span>{t('statistics.online_users', onlineUsers)}</span>
</div>
Ou como componente:
import {T} from '@nimbos/i18n'
// ou
//import {I18n} from '@nimbos/i18n'
<div>
<h1><T>view.title</T></h1>
<p>
<T
name={user.name}
email={user.email} >
view.present
</T>
</p>
<span><T params={[onlineUsers]}>statistics.online_users</T> </span>
</div>
FAQs
Pacote de i18n para o projeto nimbos
We found that @nimbos/i18n demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.