私は国際化に関するいくつかの有益な助言を含んでいるW3Cの記事「Re-using Strings in Scripted Content」を読んでいましたが、DRY(あなた自身を繰り返さないでください)原則繰り返しコードを削除するあなた自身を国際化と対比しないでください
彼らの例を取るために、私たちはこのようないくつかのコードを持っているかもしれません...
print "The printer is ";
if (printer.working) {
print "on.\n";
} else {
print "off.\n";
}
print "The stapler is ";
if (stapler.working) {
print "on.\n";
} else {
print "off.\n";
}
私の本能は、次のように大まかに重複を排除するだろう...
report-state(printer, "printer");
report-state(stapler, "stapler");
function report-state(name, object) {
print "The "+name+" is ";
if (object.working) {
print "on\n";
} else {
print "off\n";
}
}
...そうすることで、スペイン語にローカライズする必要がある場合には、コードの難しさが生じます。なぜなら、これらの2つのケースでは、「on」という単語が明らかに異なるからです。
私の質問は、他の開発者がDRYの原則とコードの国際化のバランスをどのように近づけているのでしょうか?
私の一部は、国際化が極端なプログラミング「you arent gonna need it」の1つであると主張したいと考えています。ただし、DRYの原則を念頭に置いてリファクタリングすることは、必要なときに機能を実装するのを容易にすることで、これをバランスさせることになっています。
参照します例: '$ t(プリンタ)がオンです。ということで、プリンタという言葉が1ヵ所にあります。 – jamuhl