149. interpolation

JavaScript
お役に立つのか?

トータルで - accepted /- tried

i18nを対応したことありますか?

i18next を例にしよう。普通の場合は、キーとラベルの管理は別れている。このように:

{
  "evaluation": "BFE.dev is {{evaluation}}"
}

必要な場所で、キーを指定してデータを渡せば欲しい文字列が得られる。

t('evaluation', {evaluation: 'fantastic'});
// "BFE.dev is fantastic"

では、似ている関数t()を作ってください、以下は条件

1. {{}} を区切り文字にする

もっとシンプルに言えば、新規の{{が現れたら、次の}}が現れるまでの文字は全部プロパティー名として扱う。 以外の場合は、区切り文字として扱わない。

t('BFE.dev is {{{evaluation}', {evaluation: 'fantastic'});
// "BFE.dev is {{{evaluation}"

t('BFE.dev is {{{evaluation}}}', {'{evaluation': 'fantastic'});
// "BFE.dev is fantastic}"

t('BFE.dev is {{evalu ation}}', {'evalu ation': 'fantastic'});
// "BFE.dev is fantastic"

2. dataが渡されない、またはプロパティーが存在しない場合は、から文字にする。

t('BFE.dev is {{evaluation}}');
// "BFE.dev is "

15分間以内で解いてみて

ディスカス(14)