Мне нужно локализовать TabViewItem title , когда TabView используется в качестве основной навигации с элементами Frame (приложение, созданное с помощью Nativescript Sidekick -> General -> TypeScript -> Tab Navigation).
Для локализацииЯ использую плагин nativescript-localize со следующей инициализацией в app.ts
для использования в шаблоне:
import * as app from "tns-core-modules/application";
import { localize } from "nativescript-localize";
app.getResources().L = localize;
app.run({ moduleName: "app-root" });
И app-root.xml
имеет следующее содержимое:
<TabView androidTabsPosition="bottom">
<TabViewItem title="{{ L('catalog') }}">
<Frame defaultPage="pages/catalog/catalog-page"></Frame>
</TabViewItem>
<TabViewItem title="{{ L('notifications') }}">
<Frame defaultPage="pages/notifications/notifications-page"></Frame>
</TabViewItem>
</TabView>
Если я использую следующую конструкцию {{ L('catalog') }}
на последних страницах с инициализированной bindingContext
, тогда все работает как положено.Но в TabView верхнего уровня эта конструкция не работает.Я думаю, что это потому, что не инициализирован bindingContext
, но как я могу инициализировать его для TabView верхнего уровня.
Для тестирования и создания прототипов я создаю Playground - TabView верхнего уровня .В этой игровой площадке вместо плагина nativescript-localize я использую функцию, которая возвращает текст, и, как вы можете видеть, он успешно выполняется в home-page.xml
, но не выполняется в app-root.xml
.