2012-07-11 2 views
3

ember-skeleton을 사용하여 시작한 Ember 응용 프로그램을 구축하고 있습니다. 즉, 빌드 도구 체인으로 Rake Pipeline을 사용하고 있습니다. ember-i18n을 사용하고 있으며 CLDR.pluralForm 기능이 없다는 경고가 지속적으로 발생합니다.Ember 응용 프로그램에 CLDR.js 라이브러리를 포함하려면 어떻게합니까?

ember-i18n이 app/vendor/ 디렉토리에 사용하는 CLDR plural functions을 추가하고 그 파일을 내 Assetfile에 추가했습니다. 코드가 ember-i18n 코드 이전에 app.js에 포함되어 있는지 확인했습니다. 나는 또한 내 main.js에서 적절한 require 라인을 추가했습니다 :

require('plurals'); 
require('ember-i18n'); 

그럼에도 불구하고, 엠버 - 국제화를주고 경고를. 다음 코드가 발생합니다 :

if (typeof CLDR !== "undefined" && CLDR !== null) { 
    pluralForm = CLDR.pluralForm; 
} 

if (pluralForm == null) { 
    Ember.Logger.warn("CLDR.pluralForm not found. Em.I18n will not support count-based inflection."); 
} 

내 앱에 CLDR이 정의되어 있는지 어떻게 확인합니까?

+0

문제를 설명하기 위해 간단한 피들러를 함께 사용할 수 있습니까? – SciSpear

+0

jsfiddle이 실제로 이것을 명확히 할 지 확신하지 못합니다. 왜냐하면 문제는 내가 라이브러리를 필요로했기 때문이라고 생각했기 때문입니다. 그러나, 나는 시험해 보았다. 그리고 그것은 밝았다. 이 작품은 : http://jsfiddle.net/pjmorse/SWcaX/ (경고를 콘솔을 확인, 나는 아무것도 얻지 않는다) 그리고 이것은하지 않는다 : http://jsfiddle.net/pjmorse/VdwtK/ (You ' 콘솔에 경고가 표시됩니다.) 차이점은 Ember의 버전입니다. 1.0pre가 작동하고 몇 주 전에 끝난 버전은 작동하지 않습니다. – pjmorse

+0

또한 내 앱을 Ember 1.0pre로 업그레이드해도 jsfiddle 에서처럼 경고가 사라지지 않습니다. – pjmorse

답변

3

다른 누구도 가지고 있지 않기 때문에 문제를 직접 디버깅하는 경우 몇 가지를 살펴 보겠습니다.

사이트에 표시되는 메시지가 피들러에서와 동일하면 파일이 순서가 잘못되어 발생합니다. 꽤 많은 "복수형"은 "i18n"플러그인 전에로드해야합니다. linked files의 순서를 뒤집 으면 오류가 발생합니다.

나는 브라우저에서 실제로 처음로드되는 것을보기 위해 각 파일에 debugger; 문을 던져서 틀렸다는 것을 확인하려고 할 것입니다.

귀하의 require('plurals') 때문에 requirejs (github is down for maintenance)를 사용하고 있다고 가정 할 예정입니다. 그래서 지금은 실제로 엠버 스켈 톤을 검사 할 수 없습니다 ... 그래서 앞으로 수정 될 수 있습니다.) 이 주장이 사실이라면 '복수형'은 'i18n'의 의존성이라고 선언해야합니다.

"종속성을 표현하지 않으면 RequireJS가 스크립트를 비동기 적으로, 순서가 맞지 않아 속도가 빠르기 때문에로드 오류가 발생할 수 있습니다." - RequireJS API

이것은 define을 추가하거나 "심"하고, 당신은 아마 하나에 두 통화를 포장 끝날 것을 의미합니다; 이러한 (이상) 예제는 RequireJS 사이트에서 찾을 수 있습니다.

죄송합니다. 도움이되지 않지만 실제로 보지 않은 경우 죄송합니다. 문제를 디버그하는 것이 어렵습니다.

EDIT : 엠버 스켈 톤을 보면, 나는 requireJS가 보이지 않습니다. 나는 실제로 레이크를 사용하지 않았다. (우리는 nodeJS에서 파이프 라인을 작성했다.) 그럼 실제로 레이크에 require "blaw"을 가진 파일을 연결하려고하는지 또는 실제로 둘 다 사용하려고한다면 .... 나는 이제 이 대답은 도움이되지 않을 수도 있습니다.