2017-09-21 1 views
0

저는 완전히 i18n입니다. 이제 번역을 위해 내 React Native 앱을 구조화하기 시작했습니다.i18n 파일을 모듈화하는 방법

응용 프로그램의 대부분의 메타 데이터는 특정 모듈의 구조를 설명하는 json 파일로 주문형 서버에서 제공됩니다. 전형적인 클라이언트는 약 5에서 50 개의 "모듈"을 Redux 저장소에로드 할 수 있습니다.

하나의 모듈 형이 (간체)처럼 보이는이 순간이 내 찌르기이기 때문에 내가 json으로의 마지막에 18N을 추가 한

{ 
    id: 5, 
    modifiedAt: new Date('2017-02-22T09:50:50.212+0100'), 
    name: 'Module name', 
    version: '1.0.0', 
    definition: { 
    preconditions: {}, 
    actions: {}, 
    effects: {}, 
    fieldDefinitions: { 
     room: { 
     title: 'Field title for "room"', 
     warning: 'Room is missing', 
     helpText: 'Enter room id/name', 
     type: 'string', 
     isRequired: true, 
     }, 
    ui: { 
     title: 'Module title, i.e. title on input form', 
     menuItem: { 
     iconName: 'md-settings', 
     iconLibrary: 'Ionicons', 
     iconColor: null, 
     sortOrder: 99, 
     }, 
     sections: [ 
     { 
      id: 'ed472749-ec3d-4b72-9ce9-f88ee703b2cf', 
      title: 'Installation', 
      isRequired: true, 
      formFields: ['room', ...], 
     }, 
     { 
      id: 'c070bfdf-88f1-423a-8854-b47b154c2359', 
      title: 'Photo before started repair', 
      isRequired: true, 
      sectionType: 'media', 
     } 
     ], 
    }, 
    }, 
    jsonSchema: { 
    //schema to validate form output before saving 
    //also used by API before saving to database 
    }, 
    i18n: { 
    en: { 

    }, 
    de: { 

    } 
    } 
}; 

. 모듈은 특정 고객을 위해 맞춤식으로 제작 될 수 있습니다. 각 모듈에 i18n을 캡슐화하는 것이 좋을 것이라고 생각합니다.

잘 설명되어 있고 Express 사이트를 번역해야 할 때도 반응식 i18next를 사용하려고합니다.

또한 각 i18n 파일을로드 할 때 namespace-id로 사용할 수있는 고유 한 GUID를 각 모듈에 제공하려고합니다.

i18n 파일을 모듈화하는 합리적인 방법입니까?

i18n 튜토리얼을 검색했지만 언어 관련 튜토리얼로 끝납니다. 누구나 선택할 수있는 구조, 이름 공간 사용법, 모듈화 방법 등에 대한 좋은 토론을 통해 i18n 입문서를 추천 할 수 있습니까?

답변

1

i18n 파일은 지형지 물 주위에 개인적으로 이름이 붙여집니다. 모듈 당 파일로 분할하는 것은 나쁘지 않습니다. 그러나 작아지면 더 큰 파일로 병합 할 수 있습니다 ... 실제로 프로젝트의 크기에 달려 있습니다.

우리는 https://docs.locize.com/namespaces.html에 파일로 침에 대한 몇 가지 문서/도움말을 만들어 (locize.com을 - 인 서비스 i18next 층과 i18next (나 같은 같은 사람에 의해 제공 등)))

+0

감사합니다! 필자는 항상 i18next를 싱글 톤으로 사용해야합니까, 아니면 각 모듈에 대해 새로운 i18next를 만드는 것이 합리적일까요? 그렇지 않으면 내 모듈 정의의 각 문자열 앞에 "unique-namespace-guid :"를 자동으로 주입해야한다고 생각합니다. 모든 문자열 앞에 GUID 접두사를 붙이면서 모듈 작성자를 괴롭 히고 싶지 않습니다. – Michael

+0

우리는 https://github.com/i18next/react-i18next와 i18next -> translate hoc의 단일 인스턴스를 사용하여 기본적으로 t 함수가 목록의 첫 번째 네임 스페이스를 사용하도록 수정합니다 – jamuhl

관련 문제