durandal アプリケーションのローカライズに取り組んでいます。私はすでにアプローチを選択しています - ビューが持つ可能性のあるすべての文字列を含むモジュールをすべてのページで共有しています。
私のシェルでは、定義しています
router.map([
{ route: ['', 'search'], title: i18n.search, moduleId: 'viewmodels/search/index', nav: true },
{ route: "employees", title: i18n.employeesList, moduleId: "viewmodels/employees/index", nav: false },
{ route: "details/:id", title: i18n.details, moduleId: "viewmodels/details/index", nav: false }
// ...
]);
プロパティは、次のi18n
ような文字列を含む ko.observables です。
i18n = {
search: ko.observable("search"),
employeesList: ko.observable("employeesList"),
details: ko.observable("Details")
}
これは私のナビゲーションバーをうまく印刷します
<ul class = "nav navbar-nav" data-bind = "foreach: router.navigationModel">
<li data-bind = "css: { active: isActive }">
<a data-bind = "attr: { href: hash }, text: title"></a>
</li>
</ul>
ただし、ドキュメントのタイトルを変更すると、機能しません。
ここで私は durandal が document.title を設定することについて何かを見つけましたtitle
。title
文字列よりも。
durandal が document.title を変更するために使用するメソッドや、移動時に document.title を変更する他の方法をオーバーライドする方法はありますか?