2017-12-04 5 views
0

기본 언어가 영어 인 반응 네이티브 애플리케이션이 있습니다. 사용자가 영어에서 다른 언어로 언어를 변경할 수있는 프로필 페이지가 있습니다. 사용자가 언어 변경 사항을 저장하면 제목, 서랍 내비게이션 이름 등의 언어가 모두 사용자가 선택한 언어로 변경되어야합니다. 우리가 어떻게 반응 할 때이 기능을 구현할 수 있습니까? 사전에전체 반응 언어 변경 네이티브 앱

감사

당신은이 패키지를 사용할 수 있습니다

답변

5

:

// src/i18n/locales/en.js 
export default { 
    greeting: 'Hi!' 
}; 

// src/i18n/locales/es.js 
export default { 
    greeting: 'Hola!' 
}; 

// src/i18n/locales/jp.js 
export default { 
    greeting: 'Konichiwa!' 
}; 

그런 다음 해당 파일을 가져옵니다 일단 당신이해야 할 모든 예를 들어, 로케일 파일을 정의하는 것입니다 설치 https://github.com/AlexanderZaytsev/react-native-i18n

을 다음과 같이 i18n 지원을위한 구성을 설정하십시오.

// src/i18n/index.js 
import I18n from 'react-native-i18n'; 
import en from './locales/en'; 
import es from './locales/es'; 
import jp from './locales/jp'; 

I18n.fallbacks = true; 

I18n.translations = { 
    en, 
    es, 
    jp, 
}; 

export default I18n; 
기본적으로

import I18n from 'src/i18n'; 

class Demo extends React.Component { 
    render() { 
    return (
     <Text>{I18n.t('greeting')}</Text> 
    ) 
    } 
} 

이 장치의 로케일을 사용합니다,하지만 당신은 그것을 덮어 쓰려면 : 1,363,210

그리고 마지막으로는 다음과 같이 당신의 구성 요소를 사용합니다. 사용자가 스페인어 로켈와 장치를 가지고 있지만, 일본어를 사용하려면 예를 들어, 같은 것을 할 수 있습니다

I18n.locale = 'jp'; 

을가 Konichiwa!을 렌더링하면 I18n.t('greeting')를 호출 할 때마다. 이제부터는 앱에 텍스트를 렌더링 할 때 항상 I18n.t을 사용해야합니다.

관련 문제