저는 검도와 함께 i18next 라이브러리를 사용하고 있으며 내 앱의 검도 UI 웹 부분에서 예상대로 작동하는 데 문제가 없었지만 모바일은 다른 이야기입니다. 내가 init 함수에서 내 i18n 함수를 호출 할 수 있다고 생각하고 "데이터 - i18n"내 템플릿의 특성을 아무 문제없이 채울 수 있지만 ...보기가 끝날 때까지 뷰 요소에 액세스 할 수없는 것처럼 보입니다. 완전히 내장/바운드입니다 ... 그래서, ListView에 대한 "DataBound"이벤트에 i18n 코드를 넣으려고했지만 목록이 렌더링/새로 고침 될 때마다 불필요한 코드가 많이 실행되는 것처럼 보입니다.검도 모바일에서 문자열을 올바르게 현지화하는 방법은 무엇입니까?
더 나은 방법에 대한 생각? 나는 이것 때문에 레이아웃을 현지화하는 길조차 시작하지 않았다.
다음은 뷰 자체에 대한 내 템플릿입니다 :
<div id="dashboard-meeting" data-role="view" data-model="dashViewModel" data-bind="events:{init:meetingListInit,show:meetingListShow}" data-layout="drawer-layout" data-title="By Meeting"> <ul id="meeting-list" class="meetingList"></ul> <div class="no-data" style="display:none;">No Data</div> </div>
이 목록의 행 항목 템플릿입니다 ...
<script type="script/x-kendo-template" id="meeting-item">
<a data-item-id="#=meetingID#" href="\#meeting-details?id=#=meetingID#" data-transition="slide:left">
<h3 class="time">#= startTime #</h3>
<h3 class="counts"><span class="hc" data-i18n="dashboard.headCountText"></span>: #=headCount# | Total: #=totalCount#</h3>
<h2>#=meetingName#</h2>
</a>
</script>
그리고 여기 내 뷰 모델입니다 :
var dashViewModel = kendo.observable({
headCountText : "Head Count",
meetingListInit : function(e){
var meetingList = $("#meeting-list").kendoMobileListView({
dataSource: bymeetingData,
pullToRefresh: true,
template: $('#meeting-item').html(),
dataBound: function(e){
console.log("Data Bound");
i18n.init(lang_options).done(function() {
//dashViewModel.set("headCountText", $.t("dashboard.headCount"));
//console.log("this list init'd" , $.t("dashboard.headCount"))
//$("#meeting-list").i18n();
$(".hc").text($.t("dashboard.headCount"));
});
}
}).data("kendoMobileListView");
},
meetingListShow : function(e){
//bymeetingData.read();
$("#meeting-list").data("kendoMobileListView").refresh();
}
});
내 init 코드의 내 의견에서 볼 수 있듯이 초기화 함수를 통해 지역화 된 데이터 모델 텍스트 문자열에 "head count"에 대한 목록 항목 요소의 텍스트를 바인딩하려고했습니다. 하지만 그건 묶어 두지 않을 것입니다. 그래서 나는 그것을 포기하고이 길을갔습니다.
안녕하세요, 저는 검도 스틱으로 가득 찼으므로 실제로 귀하의 웹 사이트를 수색하고있었습니다. 그러나 나는 당신이 제안하고있는 것의 다른 버전을 시도했다고 확신합니다 (비록 당신이 더 간단 하긴하지만). 내 모임 항목 템플릿을 data-bind = "text : headCount"로 내 뷰 모델의 텍스트에 몇 가지 이유로 가져올 수 없었습니다 ... 왜 그런 식으로 작동하지 않을지에 대한 생각은 무엇입니까 ?? – btbJosh
'data-role = "listview"'로 선언적으로하는 대신 위젯을 초기화하기 위해'.kendoMobileListView()'를 사용했기 때문이라고 생각합니다. 나는 위젯이 MVVM 바인딩/초기화되지 않은 경우 자식 요소가 MVVM을 바인딩하지 않는다고 생각합니다. – CodingWithSpike
아! 나는 그 길로 가고 그 선언적 접근법을 사용하여 몇 가지 것을 시도하고 다시보고 할 것이다. – btbJosh