나는 즉시 반응 할 수 있어야하는 Electron React/Redux 응용 프로그램을 개발 중입니다. 현재 우리는 일부 문자열을 상수 (대화 상자 내용과 같은 React 구성 요소가 아닌 구성 요소의 경우)로 저장하고 템플릿에서 생성 된 메뉴를 가지고 있습니다 (아래 참조).전자 응용 프로그램에서 언어 변경 (i18n 반응)
import T from 'i18n-react';
T.setTexts({
menu: {
file: {
label: '&File',
new: '&New...',
open: '&Open...',
// etc.
}
}
});
이것은 다음의 템플릿이 될 것입니다 : 우리는 현재 사용중인 사용하기 쉬운 듯 이것은 우리의 메뉴에 대한 영어 번역을로드의 예 등을 복수화 같은 일부 고급 기능입니다 지원 라이브러리를 국제화을-반응 메뉴 :
const template = [{
label: T.translate('menu.file.label'), //'&File'
submenu: [{
label: T.translate('menu.file.new'), //'&New...'
accelerator: 'Ctrl+N',
click:() => { /*some code*/ },
}],
// etc.
}]
const menu = Electron.remote.Menu.buildFromTemplate(template)
Electron.remote.Menu.setApplicationMenu(menu)
문제는 번역 된 문자열이 일반 상수 문자열이라는 것입니다. 따라서 T.setTexts를 사용하여 즉석에서 언어를 변경하면 문자열이 변경되지 않습니다.
React.render(
<T.span text={{ key: "greeting", myName: "i18n-react" }}/>,
document.getElementById('content')
);
하지만 어떻게 내가 전자 메뉴를 설득 않는 등 대화 상자가 변경하려면 다음 반응 구성 요소는 객체 (문서에서 예)뿐만 아니라 문자열을 저장하기 때문에, (아마도) 미세입니까?