149. interpolation

少し工夫が必要  - 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 "

常にもっといい方法を求めよう。

(2)
(58)